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.
I've made a region using WorldGuard named "Bank" and I want to allow the default and trusted groups to use the /sell command while in the bank. Can someone review my rsp.yml?
@asofold
Don't think so.
@Pixiyo
Is it necessary ?
Update! <3
@livengoodb
Via Vault it should work.
@Vlaminations
Possible in principle yes, however it would need handling that individual permission within RSP only - negating a permission that has been set by another plugin usually does not work well, even if using the permission plugins groups to negate it, due to uncertain order of groups-processing.
So using transient groups with permdef-priority settings should be the way to do this, the "real" permission groups will then just contain a "filter-permission" to indicate which players are checked to have the permission (there is an example in the examples section linked above).
@TWSSYesterday
You should try setting something like this:
You would have to replace WorldName by the actual worlds name and add a link for each RegionName for each arena. MCMMOPERM... also have to be replaced by the permissions to have inside of arenas.
In order to add the links automatically for all arenas extra plugin-code would be necessary, so one has to add each arena manually.
Is it possible to take a permission when somebody enters a WorldGuard region and give it back when they go out.
@TWSSYesterday
I don't know anything about MobArena... you need to know at least what you want to happen :) - which permissions to have inside of what region?
@TWSSYesterday
I assume so, otherwise there would be more requests. Currently the development version still has some problems, so i am reluctant to upload.
I made it! I'm so happy ! Thank you for helping me and also for creating this wonderful plugin!
@Lightoner
Did you check out the example: http://dev.bukkit.org/bukkit-plugins/rsp-region-specific-permissions/pages/examples/simple/generic/
You would need to alter the region and world name potentially and change/add the permissions to the timetest group.
Just focus on the transient-groups + permdefs + links entries of the example.
(If you want RSP to monitor moving exactly you might have to set lazy-dist to 0, otherwise RSP will allow an uncertainty of that many blocks as lazy-dist is set to.)
Hi, I want make 2 permissions (essentials.sethome ; essentials.home) on a region of world guard. I have just start my server. How should I do please Thx ! I'm not american, I don't understand this plugin
@obscurehero
That describes what is going on roughly, and probably is a good description for understanding the logic behind RSP. The permdefs are more like a grouping/configuration layer above permission groups which then can be from an external plugin.
My "quick" slightly more detailed version: Players moving is monitored and unless lazy-dist postpones checking until moving farther or until timeout happens, the regions the player is inside of are determined and matched against the regions the player had previously been inside of. By that RSP knows which regions are new and which are outdated, consequently it can check the permdef adding/removal on base of which permdefs are linked to those regions. The actions like "have-inside" are translated to adding/removing permission groups based on if the permdef was just added or just removed.
If i removed the permdefs and link parts and added all the configuration and region-linking to group definitions (like PEX 2 might allow at least by officially suggested syntax), then one might have to define multiple groups for different sets of settings but with the same underlying permissions (or external permission groups...). Could be the future, because it would be easy to overview one group quickly. I would need to add group inheritance to allow slightly cleaner setups. Maybe i should translate some setup to a new one for comparison.
I still have no clue concerning the problems with your setup, will probably re-read everything and do some testing soon.
@weidncol
Please use code tags
<<code YAML>> ... <</code>>
or link a paste.Please also specify what permissions you want to use, then it will be easier to help out. For instance ModifyWorld would demand giving permissions to be allowed to use items, in effect one might have to give and remove permissions in RSP - if the other plugin uses present permissions to deny use of items, then it would be more simple to configure with RSP.
@weidncol
Bad paste. Use pastbin or the code feature. This is all in the documentation that's been written. However, basically you just need 'permdefs' where you define your definitions. So I do use 'noRentDef' as one and then I define things underneath that. You don't need filter-perm, its optional and it basically only applies that definition to a player if they have the filter-perm permission. "links" basically links the worlguard regions with your permdefs.
You can think of the plugin as going through a few operations. First, it looks at the links and determines which regions its going to be monitoring. Then it checks these regions for players entering or exiting them against the permdefs linked to the regions. If everything checks out, then it performs the operations you've defined (in my case have-inside). Within this operation it passes permissions groups to players. In this case, its the groups defined in 'transient-groups'.
That's my understanding at least.
@obscurehero
permdefs: noRentDef: priority: 0 have-inside: groups: - noRenting createShopSmall: filter-perm: rsp.shop.small priority: 10 have-inside: groups: - useShop createShopMedium: filter-perm: rsp.shop.medium priority: 20 have-inside: groups: - useShop createShopLarge: filter-perm: rsp.shop.large priority: 30 have-inside: groups: - useShop rentLoft: filter-perm: rsp.rent.loft priority: 50 - useLoft transient-groups: useShop: - ChestShop.shop.create - simpleregionmarket.signs.use.* useLoft: - simpleregionmarket.signs.use.* - -ChestShop.shop.create noRenting: - -ChestShop.shop.create - -simpleregionmarket.signs.use.*
So here you have noRentDef as your region, correct? You have noRenting as the group, but do I need to have the filter-perm? What does that even do exactly? I would like for somebody to explain exactly what each part of the config does please.
@weidncol
The easiest way to help you might be if you type out what you'd like to do. Basically, though, you can use regions to assign RSP groups which contain permissions. These are called 'permdefs'. Permdefs are then 'linked' to worldguard regions. It's best if the user doesnt' receive the permissions that you'll be passing via RSP. All permissions handling of those nodes should be done through this plugin, ideally.
Otherwise, the documentation is relatively straightforward. You can see below I put my own pastebin of my config if that helps at all.
@asofold
Well I am currently using modifyworld to ban items in the entire world, but I want to use NoItem for spawn ban items. I need help on how to setup the rsp config and make it work with PEX.
@asofold
Yep. I have 1.4.1; Any chance we can chat in IRC or something. I'd like to get to the root of this sooner rather than later. Only if your'e available.
Thanks!
@obscurehero
Are you using the latest RSP version ? (just to be sure)
@weidncol
You have a plugin that can deny items?
If you have to give players permissions to use all items from the start it might get a little complicated, so knowing where to start is important. Also did you use RSP with anythign else with that server mod, does it work at all?
@asofold So that perm proves hard to test if you can't rent a region to place anything, but anyway, I tried another permission and it gets passed when you enter the region but gets removed within a few seconds. You get the permission back again if you walk out and back into the region, but again after a few seconds it gets removed.
I even tried to disable the group that's supposed to negate the permissions by default to just see if the have-inside works. Should I try a different type? Maybe an issue with that one?
I also tried removing bPermissions autosave, but reenabled that. I'm still troubleshooting.
EDIT: remove-exit doesn't work it gives a stack trace saying REMOVE_EXIT not yet supported basically.