InfiniteClaims
InfiniteClaims is a plot management plugin made easy. Paired with the InfinitePlots world generator, and the WorldEdit/WorldGuard API's, InfiniteClaims aims to make creative or competitive worlds easier for server administrators everywhere.
Notice!
InfiniteClaims is being discontinued. This is happening due to myself and wide_load (developer of InfinitePlots) working to combine InfinitePlots and InfiniteClaims into one plugin. We will be merging into a new updated version of InfinitePlots so that you don't have to download a whole new plugin, but just an update to one, and delete the other.
A lot of the features from InfiniteClaims will be carried over, and some features you guys have wanted for a while have already been implemented within the Alpha version of the new InfinitePlots.
Due to this, there will be no further releases of InfiniteClaims after the 2.1.3 beta release. I will be focusing on the new and better plugin, so no bug fixes will be released. I will try to provide support during this time for issues with the plugin, just so that you can still function until the new plugin, but generally if 2.1.3 is having an issue but 2.1.2 wasn't.. then I would recommend you stick with the 2.1.2 release.
Once the new plugin is released I will provide support on the InfinitePlots ticket system and comments on how to convert the plots from this plugin to the InfinitePlots system, as well as outlining how to convert the plots on this page as well. Thanks for all the support and I hope you stick with me during the merger, cause I promise you'll love the new plots system :)
Features
- Plots are automatically sized to fill the whole (physical) plot. This is based off the InfinitePlots size, and can vary between worlds. These plots extend from one block above bedrock, to the world height limit.
- Automatic or manual plot creation. If allowed the first time they enter a InfinitePlots world the player will have a plot automatically created. Or as an alternative you can force users to read some rules near spawn, and then use a command to manual create a plot.
- Plot teleportation: Your own plot, another players plot, a plot in another world, the options are limitless (actually they are limited)
- Easy member management! Easily add members to a plot to help you build, and then remove them when you're done. Tired of your friends messing up your plot? Remove them all and build alone!
- Quick plot regeneration if you ever want to start from scratch! After much delay, plot reseting is finally available!
- Plot identification done simple…Signs! You can place signs on the entrance, corners, or both of each plot. You can also change the colors of the sign text, or the plot owner message.
- And more!
Install
Installation is easy! Just add the InfiniteClaims.jar file to the same plugin folder that InfinitePlots.jar, WorldGuard.jar, and WorldEdit.jar are in and restart your server.
WARNING: If you do not have WorldGuard, InfinitePlots, or WorldEdit installed, InfiniteClaims will not start. After this a InfiniteClaims folder should be available containing config.yml. If you would like to see an extended explanation of what the config.yml file contains follow this link:
Configuration & Permissions Explained.
If you like to live life on the edge then make sure the following value matches what is in your InfinitePlots config.yml or you'll notice issue's with plot teleportation and sign placement.
plots:
height: 20
Finally if you would like to prevent players from building or breaking blocks on the pathways between each plot, run the following command in your plot world(s):
# Thats two _'s with no space inbetween, should be able to copy and paste the command
/rg flag __global__ build deny
Commands
Please go to this page for a complete breakdown of
commands
Permissions
Below is a list of all possible permissions. At the moment permissions have only been tested with PermissionsEx.
- iclaims.* - Parent node of all InfiniteClaims permissions
- iclaims.help - Granted by default
- iclaims.plot.* - Parent node of all plot permissions
- iclaims.plot.auto - Allows for automatic plot assignment. To prevent automatic plot assignment, do not give this permission to players.
- iclaims.plot.tp - Allows you to teleport to your plot, or another players plot from any world.
- iclaims.plot.new - Allows you to claim a new plot, if you have not already reached the maximum number of plots allowed.
- iclaims.plot.list - Allows you to see a list of all your plots.
- iclaims.plot.info - Allows you to get information about your plot,
- iclaims.plot.manage.* - Grants access to all plot management commands
- iclaims.plot.manage.addmember - Allows you to add a player to your plot, so that they can help you build.
- iclaims.plot.manage.removemember - Allows you to remove players from your plot, so that they cannot build/destroy blocks on your plot.
- iclaims.plot.manage.reset - Allows you to reset your own plot, removing anything built on it.
- iclaims.plot.manage.remove - Allows you to delete your own plot, removing everything built, and your right to build on it.
- iclaims.plot.admin.* - Grants all access to plot administration commands.
- iclaims.plot.admin.info - Allows you to use the Admin Info command.
- iclaims.plot.admin.remove - Allows you to remove other players plots, removing anything they built and their build rights on that plot.
- iclaims.plot.admin.removemember - Allows you to remove members from any players plot.
- iclaims.plot.admin.addmember - Allows you to add members from any players plot.
For more detailed examples of permissions and their respective commands, visit the
commands page.
GroupManager Compatibility
So I finally did some testing with GroupManager and discovered that by itself, InfiniteClaims does not work with GroupManager. But there is a way to make it work, if you run the EssentialsGroupBridge that comes packaged with EssentialsGroupManager, than everything works fine. Sorry if this resolution doesn't work for everyone but I am not going to rework permission checks just for one Permissions plugin.
Notice for MultiWorld User
As of InfiniteClaims version 2.1.0 MultiWorld is still not supported, and will not work. I am continuing to work on resolving this issue, and besides bug fixes, will mainly be working on this issue for the next release. At the moment getting InfiniteClaims to work with MultiWorld honestly breaks a ton of things and almost requires a complete rewrite of InfiniteClaims, please be patient with me as I work on this issue, and maybe even ask the MultiWorld dev to speak to me about a possible solution.
Bug Reports / Suggestions
If you find a bug, encounter a problem or have a suggestion, please fill out a ticket via the Tickets link above. I will do my best to keep up with the comments section, but tickets would be the best way to go.
The link above will direct you to an external ticket system. When submitting a ticket please try to make sure the target version lines up with the version you are running. You can get this by running the command
/version InfiniteClaims from the console.
Note: I recommend that you sign up for an account on the new ticket site, that way you can receive emails when there are updates on your issues you submit.
Metrics
As of version 2.1.0, InfiniteClaims collects data using the same Metrics API much like Essentials and many more plugins. If you would like to opt-out you can do so by modifying the opt-out value to true, in the
plugins/Metrics/config.yml file. Though I would like to ask you not to because the information I gather, from the plugins usage helps me judge where it's being used the most (so I can focus localization efforts there), how many plots the plugin is generating to know how well the plugin is performing, and some other curiosity-sakes pieces of info (such as what the claims worlds are named, which is currently not pulling data properly). If you have an questions about InfiniteClaims metrics usage, or suggestions of other things I could try to gather please don't hesitate to ask.
Important Links
If you need to report a bug/issue and have server logs please use a paste server like pastie or pastebin. I will provide the links below to make it easier but for now on if you post server logs in the comments I will ignore it.
Notice!
As of Nov. 12th, 2012 I will no longer be taking, assisting, or acknowledging bugs or issue/help request in the comments section of this page. I would like to keep the comment section clean with only questions about InfiniteClaims, as in how to use it, and other things like that. If you have a issue that you think is small then you can ask for help but I
withhold the right to delete comments if you ignore this, and especially if you paste console output in your comment. If you have an idea for InfiniteClaims please use the tickets system, and create a New Feature issue.
Donate!
Did you know that my coding operation is powered by tons of cute kittens? Well now you do! And they need lots of food! So if you like what myself and my cute kitten coding army have done so far, give the donate button a click and it will be much appreciated!
Special Thanks
Thanks to Flapcraft, Steamhead_Gaming, LulzSek, tmad40blue, FernFerret (helped with commands), hskrasek, and most of all wide_load cause without his InfinitePlots plugin, this all wouldn't have come to fruition.
InfinitePlots 0.8.1, InfiniteClaims 2.1.3
org.bukkit.command.CommandException: Unhandled exception executing command 'iclaims' in plugin InfiniteClaims v2.1.3-SNAPSHOT
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:186)
at org.bukkit.craftbukkit.v1_4_R1.CraftServer.dispatchCommand(CraftServer.java:514)
at net.minecraft.server.v1_4_R1.PlayerConnection.handleCommand(PlayerConnection.java:980)
at net.minecraft.server.v1_4_R1.PlayerConnection.chat(PlayerConnection.java:898)
at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:853)
at net.minecraft.server.v1_4_R1.Packet3Chat.handle(Packet3Chat.java:44)
at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290)
at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113)
at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39)
at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30)
at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598)
at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224)
at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494)
at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427)
at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849)
Caused by: java.util.IllegalFormatConversionException: d != java.lang.Double
at java.util.Formatter$FormatSpecifier.failConversion(Unknown Source)
at java.util.Formatter$FormatSpecifier.printInteger(Unknown Source)
at java.util.Formatter$FormatSpecifier.print(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.lang.String.format(Unknown Source)
at com.hskrasek.InfiniteClaims.utils.IClaimsMessages.getFormattedMessage(IClaimsMessages.java:200)
at com.hskrasek.InfiniteClaims.utils.IClaimsMessages.getMessage(IClaimsMessages.java:192)
at com.hskrasek.InfiniteClaims.utils.InfiniteClaimsUtilities.plotAssigner(InfiniteClaimsUtilities.java:365)
at com.hskrasek.InfiniteClaims.commands.NewPlotCommand.runCommand(NewPlotCommand.java:49)
at com.pneumaticraft.commandhandler.CommandHandler.checkAndRunCommand(CommandHandler.java:279)
at com.pneumaticraft.commandhandler.CommandHandler.processFoundCommands(CommandHandler.java:143)
at com.pneumaticraft.commandhandler.CommandHandler.locateAndRunCommand(CommandHandler.java:93)
at com.pneumaticraft.commandhandler.CommandHandler.locateAndRunCommand(CommandHandler.java:71)
at com.hskrasek.InfiniteClaims.InfiniteClaims.onCommand(InfiniteClaims.java:139)
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
... 15 more
Command typed : /iclaims newplot
17:12:06 [WARNING] WorldEdit: Failed to do NMS access for direct NBT data copy
java.lang.NoClassDefFoundError: net/minecraft/server/v1_4_6/NBTBase
at com.sk89q.worldedit.bukkit.BukkitWorld.getBlock(BukkitWorld.java:1183)
at com.sk89q.worldedit.EditSession.rawGetBlock(EditSession.java:407)
at com.sk89q.worldedit.EditSession.getBlock(EditSession.java:361)
at com.sk89q.worldedit.bukkit.BukkitWorld.regenerate(BukkitWorld.java:276)
at com.hskrasek.InfiniteClaims.utils.InfiniteClaimsUtilities.regeneratePlot(InfiniteClaimsUtilities.java:450)
at com.hskrasek.InfiniteClaims.commands.PlotManagementResetCommand.runCommand(PlotManagementResetCommand.java:49)
at com.pneumaticraft.commandhandler.CommandHandler.checkAndRunCommand(CommandHandler.java:279)
at com.pneumaticraft.commandhandler.CommandHandler.processFoundCommands(CommandHandler.java:143)
at com.pneumaticraft.commandhandler.CommandHandler.locateAndRunCommand(CommandHandler.java:93)
at com.pneumaticraft.commandhandler.CommandHandler.locateAndRunCommand(CommandHandler.java:71)
at com.hskrasek.InfiniteClaims.InfiniteClaims.onCommand(InfiniteClaims.java:139)
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:186)
at org.bukkit.craftbukkit.v1_4_R1.CraftServer.dispatchCommand(CraftServer.java:514)
at net.minecraft.server.v1_4_R1.PlayerConnection.handleCommand(PlayerConnection.java:980)
at net.minecraft.server.v1_4_R1.PlayerConnection.chat(PlayerConnection.java:898)
at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:853)
at net.minecraft.server.v1_4_R1.Packet3Chat.handle(Packet3Chat.java:44)
at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290)
at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113)
at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39)
at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30)
at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598)
at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224)
at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494)
at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427)
at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849)
Caused by: java.lang.ClassNotFoundException: net.minecraft.server.v1_4_6.NBTBase
at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:70)
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 27 more
Command typed : /icplot reset plot1
2013-02-01 09:20:01 [INFO] This server is running CraftBukkit version git-Bukkit-1.4.7-R1.0-b2624jnks (MC: 1.4.7) (Implementing API version 1.4.7-R1.0)
2013-02-01 09:20:04 [INFO] [InfiniteClaims] Loading InfiniteClaims v2.1.3-SNAPSHOT 2013-02-01 09:20:04 [INFO] [InfiniteClaims] Setting up multiple plot permissions 2013-02-01 09:20:04 [INFO] [InfiniteClaims] Registered permission: iclaims.plot.max.donor 2013-02-01 09:20:04 [INFO] [InfiniteClaims] Registered permission: iclaims.plot.max.vip 2013-02-01 09:20:04 [INFO] [InfiniteClaims] Registered permission: iclaims.plot.max.default 2013-02-01 09:20:04 [SEVERE] null initializing InfiniteClaims v2.1.3-SNAPSHOT (Is it up to date?) java.lang.NullPointerException at com.hskrasek.InfiniteClaims.utils.IClaimsEconomy.<init>(IClaimsEconomy.java:21) at com.hskrasek.InfiniteClaims.InfiniteClaims.onLoad(InfiniteClaims.java:91) at org.bukkit.craftbukkit.v1_4_R1.CraftServer.loadPlugins(CraftServer.java:244) at org.bukkit.craftbukkit.v1_4_R1.CraftServer.<init>(CraftServer.java:217) at net.minecraft.server.v1_4_R1.PlayerList.<init>(PlayerList.java:55) at net.minecraft.server.v1_4_R1.DedicatedPlayerList.<init>(SourceFile:11) at net.minecraft.server.v1_4_R1.DedicatedServer.init(DedicatedServer.java:104) at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:399) at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849)
Paste this place because Tickets page not available ((
@leongrdic
2.1.3 has been tested against 1.4.7 and it works, there are slight bugs but I would read the description/caveat of that file.
@AssRealm
I dont know what version number #11 is of InfinitePlots. If you use version 0.8.1 though everything works just fine, just will throw errors on the WorldInit due to Bukkits API changes.
http://pastebin.com/mVSEWHpe
http://pastebin.com/jg7T7zTG
InfinitePlots 1.4.7 #11, InfniteClaims 1.4.7 2.1.3, Craftbukkit 1.4.7 R1.0
Can you please update to 1.4.7??
Guys I have been working on some stuff in the background, planning some things and I plan on making a comment and updating the page soon with some important information regarding InfiniteClaims and future of the plugins. Dont worry nothing bad! All good things in my opinion :)
@iMontouch Thanks :) @photocritic I will be working on the 1.4.7 update shortly. I would say.. expect it by the end of this week.
Please update to 1.4.7 )) Very nice plugin! I use it on my serv ))
@heatseekerbunge okay, thank you for the reply. Take your time ;)
@AssRealm
For starters that error would be occurring if you were using version 0.8.1 of InfinitePlots. After that 1.4.7 testing has not been done for InfiniteClaims.
@iMontouch
I have not tested the plugin for 1.4.7 yet so I do not know if it works or not, I have been to busy with school.
Just some weird errors r occouring when i type in /iclaims
No plotmanagement during CB 1.4.7 yet?
I am using the newest version (tryd older ones too) Help.. please! :)
1.4.7 R0.1, Infinite Plots #6
11:18:56 PM [SEVERE] Exception in thread "pool-1-thread-1" 11:18:56 PM [SEVERE] org.apache.commons.lang.UnhandledException: Plugin InfiniteClaims v2.1.2 generated an exception while executing task 2 at org.bukkit.craftbukkit.v1_4_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:56) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NoClassDefFoundError: uk/co/jacekk/bukkit/infiniteplots/PlotsGenerator at com.hskrasek.InfiniteClaims.utils.InfiniteClaimsUtilities.getInfiniteClaimsWorlds(InfiniteClaimsUtilities.java:710) at com.hskrasek.InfiniteClaims.utils.InfiniteClaimsUtilities.getTotalNumberPlots(InfiniteClaimsUtilities.java:785) at com.hskrasek.InfiniteClaims.InfiniteClaims$1.getValue(InfiniteClaims.java:172) at org.mcstats.Metrics.postPlugin(Metrics.java:387) at org.mcstats.Metrics.access$500(Metrics.java:68) at org.mcstats.Metrics$1.run(Metrics.java:255) at org.bukkit.craftbukkit.v1_4_R1.scheduler.CraftTask.run(CraftTask.java:53) at org.bukkit.craftbukkit.v1_4_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53) ... 3 more Caused by: java.lang.ClassNotFoundException: uk.co.jacekk.bukkit.infiniteplots.PlotsGenerator at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:80) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 11 more
I apologize for the lack of replies guys, been busy starting off a new semester and working on a paid project so let me go through all of these.
@rbos
The problem is the algorithm is going to try and claim the previous creative world area as a "plot", unless you create a WorldGuard region over the whole thing. That may work but I honestly don't know how well it would work, it is what I would say "experimental", so I cannot really support it or help you to much on the matter.
@rbos
What Flapcraft suggest is most likely the issue, the only way plots could be claimed twice is if the previous WorldGuard region file was missing.
@SynthRack
Is it displaying a message to the player? If they reached the max plots it should be saying "you cannot claim the any more plots" or something along that line. If it is erroring out, then it would say an internal server error occurred. I would check the debug.log within the InfiniteClaims plugin folder and see what it says from there. If nothing comes out of it could you make a ticket, if you havent already, so that I can track the issue from there?
We're having a problem on our server where no one can claim new plots. All other commands work, all plots are intact as they should be, but /iclaims newplot doesn't do anything, not even for admins. No errors get thrown. We're running v2.1.2 on bukkit 1.4.6r0.3 .
@rbos
please check if there are any worldguard regions created, i my case my server deleted them because i called my world: plot but the folder in worldguard was called Plot. When i moved to a new host it deleted all of my worldguard regions, so infiniteclaims started to regive people the same plot.
I have several players complaining about overwritten plots now. :/
This is weird, I have two players, "a" and "b". 'a' has a plot with coordinates 107.0, 68.0, but when 'b' does /iclaims newplot, it gives him that very same plot.
I am using multiverse. Right now I have two InfinitePlot worlds; "plotcreative", which I generated from scratch and is correctly assigning plots to new players (though I had a bug where the plugin assigned plots starting at the origin and overlaid plots atop other plots, but that may have just been due to me unloading/reloading the plugin a couple times; we'll see how that turns out), and "creative", which is my old creative world that I'd like to let InfiniteClaims handle by doing plots around the edge.
How does IC detect where a new plot should be located? Would it have to scan the entire map in a spiral to find an unclaimed area? If so, could I just create one giant plot covering a 2km*2km area to fool IC into thinking that the area is already assigned?
@rbos
Honestly.. I have never heard of anyone doing this. So the only reason I could think that the new plots are not being created is because the plugin doesnt think the world is an InfinitePlots world. Are you using MuliWorld by chance?