Landlord
Update: 3/22/2016
Quote from Jcdesimp:Hello Landlord Users,
First off I would like to say that this plugin is not abandoned. However I may not be able to actively maintain it for a few months. I'm very busy with things at the moment. I would like to point out that landlord is open source on Github. I encourage anyone who sees any issues and feels like putting the effort in to fork it and share their fix with the world.
I realize that many of you rely on this plugin and some things may have been broken with the release of 1.9. I apologize for any inconvenience this may have caused and hope the impact it has on your servers is minimal.
Hopefully I'll be able to start contributing again soon. Thank you for using Landlord!
- Jcdesimp
Purpose
Landlord aims to keep the minecraft experience simple and fluid for players while also protecting their land. The idea is for this plugin to protect player builds with minimal gameplay interference, while also allowing them to tweak the protection details in a simple and user-friendly way.
Functionality
Players claim land in chunks at a time for a configurable cost. That's all a player needs to do to protect their builds within that chunk. Each area of claimed land will have a very basic permissions system that players can choose to tweak with but also not touch if it isn't desired. The system is based on simple ranks: "Everyone" and "Friends"
Default player land permissions resemble the following:
Rank | Build | Hurt Animals | Open Containers | Open Doors | TNT Damage |
---|---|---|---|---|---|
Everyone | No | No | No | No | No |
Friends | Yes | Yes | Yes | Yes | Yes |
Rank | Use Redstone | PvP | |||
Everyone | No | No | |||
Friends | Yes | Yes |
Land owners can run a simple command that will open an "Inventory GUI" resembling the table above where users can click each element and toggle the "Yes" or "No" of each perm.
Please note that Landlord requires Java 8 to function properly.
Commands
(Aliases: /landlord, /land, /ll)
- /land help [Page #] - Display help reference
- /land claim (or buy) - Claim the chunk you are standing in.
- /land unclaim (or sell) [x,z] [world] - Unclaim the current, or specified, land. (If you own it)
- /land addfriend <player> - Add specified player as a friend of this land. (If you own it)
- /land unfriend <player> - Remove specified player from this land's friend list. (If you own it)
- /land friendall <player> - Add specified player as a friend to all your currently owned land.
- /land unfriendall <player> - Remove specified player as a friend from all your currently owned land
- /land friends - View the friends of this land. (If you own it)
- /land manage - Brings up the permissions management for this chunk. (If you own it)
- /land list [Page #] - List your owned land.
- /land info - Get basic information about this current land.
- /land map - Toggle the land map display.
- /land reload - Administrative command to reload the landlord config file.
- /land listplayer <player> - Administrative command to list land owned by specified player.
- /land clearworld <world> [player] - Administrative command to clear an entire world or all land owned by specified player in the specified world. Clearing an entire world can only be done form the console.
Permissions
- landlord.use - Required to use any commands, true by default.
- landlord.limit.override - Allows unlimited land ownership.
- landlord.limit.extra - Allow player to own up to "limits.extra" in the config.yml.
- landlord.limit.extra2 - Allow player to own up to "limits.extra2" in the config.yml.
- landlord.limit.extra3 - Allow player to own up to "limits.extra3" in the config.yml.
- landlord.limit.extra4 - Allow player to own up to "limits.extra4" in the config.yml.
- landlord.limit.extra5 - Allow player to own up to "limits.extra5" in the config.yml.
- landlord.player.* - Permission for all player permissions below allowed by default for players.
- landlord.player.own - permission for plot ownership (claim, unclaim, manage, friends, etc.).
- landlord.player.map - permission to use the land map.
- landlord.player.info - Permission to use /land info.
- landlord.admin.* - Permission for all administrative functions (enabled for OPs by default).
- landlord.admin.unclaim - permission to unclaim land you do not own.
- andlord.admin.list -permission to use /land listplayer to view other players' land.
- landlord.admin.manage - Permission to use /land manage and edit permissions on others' land.
- landlord.admin.clearworld - Permission to use /land clearworld.
- landlord.admin.bypass - Bypass whatever player permissions are on a claimed land. (Block breaking, animal kills, etc.)
- landlord.admin.reload - Permission to use /land reload.
- landlord.admin.friends - View friends of anyone's land.
- landlord.admin.modifyfriends - Permission to add/remove friends of anyone's land.
Metrics
This plugin makes use of Hidendra's plugin metrics system. The following information is collected and sent to mcstats.org unless opted out:
- A unique identifier
- The server's version of Java
- Whether the server is in offline or online mode
- Plugin's version
- Server's version
- OS version/name and architecture
- core count for the CPU
- number of players online
- Metrics version You can opt out of sending Metrics by editing plugins/Plugin Metrics/config.yml and changing opt-out to true.
@lathame
For something as simple as that I feel like that might be overcomplicating the primary concern of the plugin.
Well, I have a quick suggestion that should be pretty simple to implement. Do you think you could add a super-simple gui for claiming that is optional? Something like a green wool block by a red wool block, confirming if the user wants to claim the chunk they're standing in.
Ah, didn't even read the comments. Suggested this in a ticket. ;)
@elkidz
The option to regenerate chunks on unclaim is already implemented, so adding this likely won't be that difficult, it's on the todo list for a future release.
Idea: Inactive players (offline since x days) will lose their protected chunks... and reflorestation of that chunks? (like the worldedit command [/ /regen ]).
@elkidz
I plan on adding this in the future. I have no experience with language files/localization but it is planned.
@technowix
Hey there! If you're worried about performance I assure you it performs quite well. The most intensive part os the map and I worked hard to optimize it, plus you can disable it entirely if you feel the need. Owned land is not in the form of worldguard regions, world guard is not required for the plugin to work, but it has the capability to detect worldguard regions and let's you, as a server owner, control whether or not players can claim land that intersects them. The protection system is all internal, allowing for diverse control from both the admins and players while also keeping it very simple with the clickable interface for land management.
if you want to try it for yourself we have it running on my server: mc.canvasgaming.com
@lathame
Good to hear! I'm open to any suggestions you have as well.
Can you add a language file for change the gui menu ? :3
Hey, great work guy ! (Sorry for my english, i'm... not english :'D) But, i'm very scare about performance and compat' , so i have some question :'3 : - How work the protection system ? They create a pre-configured Wordguard region or they just protect the chunk with a self-cooking protection system ? :/ (hard to make, for avoid bug, and i think the better choice is Worldguard xD) - Plan for "upkeep" system ? for take on the defined time some money for the protection (vault <3 and async upkeep for performance) - Alliance system ? With that, if player want to beat them together, they can x) with friends of course - And other thing.. is more a "Idea" topic, sorry for making that in a "question" xD good day ! :3
AWESOME plugin. Been waiting for something like this for a long time.
@ItsTrigger
Latest Github release should fix this. Will be available here when bukkit approves it.
Just been testing out the 1.0.0 build to show my staff how the system works, I had problems adding anyone who'd only joined the test server for the first time, with an error saying the player was unrecognised. This was when using the addfriend function.
Similarly, unclaiming one of their chunks yielded this message:
Possibly a side-effect of using the getName method, I've seen this a long time ago when I was making a death-message override plugin.
EDIT: BukkitDev cuts the image off, view in a new tab for the full text.
@delsolsi213
A permission to bypass the land limit is in the next release, along with more configurable limits.
@Jcdesimp
well can you add that option? if the player has x permission he can bypass the limit and buy Extra claim blocks with in game money?
Great plugin! Keep it up!
@ItsTrigger
I'm probably going to implement something similar to what you describe here. Playing around with the other method was, as you stated, inefficient. So basically this will just be like what we have now but with more "extra land" permission nodes.
@Layania
The issue with this is that not all permissions plugins support dynamic permissions, and by giving the nodes an arbitrary integer scale is generally frowned upon as it can be very slow.
What would the maximum value be? Say you support up to 1,000 blocks, your code would be similar to:
Which you'd have to iterate through 1000 times every time a player claims in order to work out their maximum claims. It gets very slow on busy servers.
Perhaps my explanation before wasn't clear enough, but it does solve the problem by defining set values, and only iterating through the possible values. I named my list after common groupings found on servers, but that doesn't mean they're tied directly to groups.
If the config had a section like:
The Java code that would need to be written for this would only need to iterate through as many entries as are in chunkUpgrades. These nodes could be given by admins to groups (such as Landlord.limit.vip above to give 50 chunks) or bought as upgrades using systems like BossShop or Buycraft).
EDIT: This method does allow you to specify multi-world permissions for different limits too, just give people different configured nodes in different worlds.
@Layania
I've been considering doing it this way for a while but it could be tricky to use and to code. I'll keep playing around with different ideas though.
@ItsTrigger
It was better to use permissions like
maxchunk.10
maxchunk.5
and manage them in permissions groups
We can also control in wich world we add more chunks :)