Region specific permissions
Region Specific Permissions (RSP) allows to add and remove permissions dynamically, using WorldGuard regions as reference. Also useful to limit your worlds to a rectangular or circular zone around an arbitrary center! Currently you need WorldGuard for regions.
Maintenance Phase
Due to timing constraints i might not add much to this plugin, but can keep it updated.
I might implement some features of pex to make this a fully featured permissions plugin, t would be somewhat optional and RSP still would be able to use hooking into other plugins. However that is quite a task and i am not sure if i will do it, or if i want to rely on another permissions plugin, since pex might time out.
Quick links: Installation | Configuration | Commands | Troubleshooting | Examples
Internals: Performance | Progress | Changelog | Source Code on GitHub
REQUIREMENTS:
- WorldGuard
Since version 1.1.0 you don't need a permissions plugin anymore to operate RSP.
Compatible permissions plugins:
- PermissionsEx or
- bPermissions or
- Since 0.12.0:
Vault, linking to another permissions plugin - however it is not guaranteed, that your permission plugin supports adding or removing groups during runtime. Furthermore you might have to alter the RSP settings to achieve compatibility via Vault.
Should work without adaption (or despite): PermissionsBukkit (RSP 0.12.0)
This plugin actually adds and removes permission groups, either those defined by the permissions plugin or those given in the RSP configuration in the transient-groups section.
Actually RSP has more to it than "just" permission adaption for regions, it also allows to confine your worlds to circular or rectangular areas with arbitrary center, to limit your maps.
See the Configuration link for more specific information and the Troubleshooting link for examples and hints. Both sections are under review and will be updated more or less soon.
@IKilledTheDevil
That's what WorldGuard is for in the first place - you can add members and owners to regions - you can set regions (plots) inside of container regions (town), so you would usually not need to protect streets inside the town extra.
RSP would only be needed to control certain permissions in relation to regions, but that typically goes for permissions like flying - building is handled by WorldGuard already on base of region membership and ownership. Not sure i get your point, but it looks like you would minimally only need WorldEdit and WorldGuard.
There are other plugins to add kinds of convenience to creating plots, setting a lot of flags to them (e.g. mob damage, chest-access, whatever), auto-create plots with torches, put them for sale... but that is another topic.
Edit: For container regions i usually set a priority < 0, e.g. -1, in order to conveniently add plots inside, which then will not conflict with the container region. I am usually not using the region-parent feature of WorldGuard, because i want plots to stay rather, even if i should delete the container region.
@asofold
It's like you said, I want the city to be one big square with roads and other stuff the players can't mess with but have places the they can build on.
@IKilledTheDevil
RSP is not made for building permissions, you should use WorldGuard for that, simply.
If i understand right you just want to have players only on their own plots?
Usually you could make a big region for the city, for convenience set the priority to -1 . Then you create the regions for the plots (default priority is 0). This way you can add a player as owner or member of a plot and the player then can build there.
Not sure about roads : do you want players to build on roads as well ?
So say I built a city on my server that had plots of lands for players to build the homes on, using this plugin would I be able to set the individual plots as there own regions and set the roads and other public buildings as there own single region and then grant build permissions to owners of the plots while leaving the rest of the city untouchable?
@LHfreeman
I also forgot:
For some cases you can just scrap the interfacing and use RSP as add-in plugin, just to add some permissions inside of regions. For most typical cases you don't need to have RSP manipulate permissions groups of the core permissions plugin - i don't know what you are planning to do, though.
@LHfreeman
Disregarding other features as well as coverage of special cases and performance tweaks in RSP, doesn't zpermissions have a region-feature already? Certainly i could add it.
Have you already discarded the option to use Vault to have RSP interface to zPermissions?
Can you add this for zpermission, too?
@Chinimala
Oh yes, thank you for the feedback - wildcard permissions are not supported withing RSP, because they need more hacks to be applied to even work. RSP can only handle existing permission nodes.
I used the RSP transcient-groups (it was difficult, the plugin doesn't understand the ".*" of modifyworld @.@) but now it works. Thank you.
@Chinimala
If you define permissions only in RSP transient-groups, then RSP can handle priorities. However you have to set the priorities always for permdefs, you can not set a priority for a group of permissions.
So if it is about removal and adding of permissions at the same time, then setting priorities will help.
How would your players normally get into either group ? You might be able to work with remove-enter...
I created an other group who just contains the filter permissions and added it to a citadin and it works. Thank you. Temporary, I gave this group to all of my members, but that would be better if we didn't have to put each member in 2 groups (2 times, since they become villageois, then become citadins).
My problem was written in configuration : "remove-exit These groups also will be removed when a player is checked out, for instance on logout."
Do you know how to make a group more important than an other ? Then, when a player is in this group and an other, the restrictions (-modifyworld...) would be applied from this group.
I tried to change the position of the group in my pex config, to change the rank, to remove the rank, but the one who is applied is still the group who is at the top of the list of his groups, and when RSP adds a group to a member, it puts it on the bottom of the list.
Sorry if I'm not clear !
@Chinimala
One more thing: Try to make a base-group for each class (Citadins, Villageois) that players always have and that contains the filter permission. This group can be manually assigned (i don't know how you sort in peoples ...), by choice of sign-commands, or by RSP with add-enter (and to remove the other remove-enter).
Then the other permdefs can rely on that filter permission from the base group - otherwise it could happen that a group gets removed and with the group the filter permission is gone also, so all is removed.
Not entirely sure if this does it, but it should be checked if this is the case or will work if you do it.
@eHECUBUS
Thanks, some parts are still hacky (adding of permissions), on the long run i might still try to make it a "full" permissions plugin, depending on the future of PEX as well.
Great plugin. Glad I googled before I started working on a region permissions plugin. I like the ability to change permissions when a player enters a region and the transient permission groups to add permissions only in certain regions. Both very useful.
Thanks!!!
Here is my RSP config : http://pastebin.com/aCWDvTbR (and still the same pex : http://pastebin.com/xziEFNew).
I did other tests, so a member loose his group after exactly 5 minutes when he is in a region he owns. I tried to remove my auth plugin (because a member gets logged out after 5 minutes), but it changed nothing. I don't think I have an other plugin who does something after 5 minutes.
@Chinimala
Please just post the configuration as it is now, so i know what i am talking about .).
Thank you, I corrected it (and restarted the server). But the problem is still there.
@Chinimala
Sorry for noticing this late, but there seems to be a config-mistake:
Under links you write
_global_
instead of__global__
- you need 2 underscores each side, just like with__owner__
.Not sure this is a display error of the paste, please check your configuration.
The "/rsp info" gives always the same thing :
Outside his region, in the nether or in the normal world : [RSP] Info: playerData=6 | parked=1 | checkedOut=47 | permdefs=8 | linked=3/757 in 3 words | permissions=rsp-pex | test: lazydist=0
Inside his region : [RSP] Info: playerData=6 | parked=0 | checkedOut=47 | permdefs=8 | linked=3/757 in 3 words | permissions=rsp-pex | test: lazydist=0 links: owner(Fairy_Earth)
And while disconnected, with "not online" at the end.
The "parked" part changed between 0, 1 and 2, always 2 when disconnected, but I didn't understand the logic anywhere else.
It seems they become visitor only if they disconnect in their region. But one member told me otherwise.
If it helps you to see on the server, I can give you the perms you want.
@Chinimala
Thanks, i will have a look, currently i have no clue.
If you can you could log the output of "RSP info PLAYERNAME" in a region, then in nether, after quick re-login and after login with delay (when the groups are removed).
That could give us some more insight, because it shows some internals.
I don't have a "nether group" ? There's just a "normal group" and a "special group" for each rank (citadin and villageois here).
Here is the rsp config : http://pastebin.com/rzm6eW58 and here is the pex config : http://pastebin.com/xziEFNew