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.

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of asofold asofold Nov 09, 2014 at 14:41 UTC - 0 likes

    For those using the players.yml file with RSP 1.9.0: RSP 1.9.0 only recognizes player names in lower-case. Once a player is recognized, the data section is stored by UUID instead, and the name (in whatever-case) will be stored within that section for easier by-hand editing.

    So if you put players in there by name, ensure the names are put in lower-case and have them join soon (/rsp reload will do it too).


    Edit: Fixed in 1.9.1.

    Last edited Nov 09, 2014 by asofold

    BFAK:asofold,90573112,4305cd44b773216e4e4b4865b3831dcc3c507c15087fb5cfeebd9392050724fc

    NoCheatPlus
    Latest release (1.7.2-1.7.10, approved) NoCheatPlus 3.11.1-RC-sMD5NET-b743
    (Development builds: Jenkins)

  • Avatar of asofold asofold Oct 29, 2014 at 10:26 UTC - 0 likes

    @Si7VdeR: Go

    Did you read this:
    http://dev.bukkit.org/bukkit-plugins/rsp-region-specific-permissions/pages/examples/advanced/negating/

    (See links above in the description.)

    You need to give and take that permission entierly in RSP, for the world where to remove it based on a region. How complicated it is, depends on what you need.

    A "simple" example would be, if all players have the permission everywhere in the world, except in that (or several) regions:

    # Handle permissions inside of RSP (transient permissions):
    transient-groups:
      BedSpawn:
      - essentials.bed.spawn
      NoBedSpawn
      - -essentials.bed.spawn
    # Define side conditions of manipulating groups:
    permdefs:
      DefBedSpawn:
        # Priority 0 is the default value, it can be left out.
        priority: 0
        have-inside:
          groups:
          - BedSpawn
      DefNoBedSpawn:
        # Set a higher priority, to ensure removal.
        priority: 100
        have-inside:
          groups:
          - NoBedSpawn
    # Finally tell RSP where to apply changes to permissions:
    links:
      WorldName:
        # Add the permission everywhere with __global__:
        __global__:
        - DefBedSpawn
        SpawnRegionName:
        - DefNoBedSpawn
    

    The reason why you have to do adding and removeing inside of RSP is, that Bukkit does not allow reliable overriding of other plugins permissions in a reasonable way (i would have to wreck their PermissionAttachment registration, with undefined consequences, i can't just tell Bukkit "RSP overrides it", well i can try, but Bukkit will ignore it usually, while telling another permission plugin often fails, because those have not implemented reliable overriding either), thus RSP allows specifying priorities internally.

    Now there is an inaccuracy built into RSP for performance reason, roughly 4 blocks. If it's ok for people to lose that permission when 4,5 blocks inside of spawn and to gain it 4,5 blocks outside (or like 12 seconds waiting), then you needn't change anything. Of course it's possible to use a filter permission, to control who has the bedspawn permission in the first place, but you have to tell what you need/want.

    Last edited Oct 29, 2014 by asofold
  • Avatar of Si7VdeR Si7VdeR Oct 28, 2014 at 20:55 UTC - 0 likes

    @asofold: Go

    This plugin is exactly what I need: "Region Specific Permissions (RSP) allows to add and remove permissions dynamically, using WorldGuard regions as reference. "

    I need to be able to remove permissions when people enter a certain region. But seriously your configuration makes no sense, how can I make it so in my region named: Spawn people have the permissions : - essentials.bed.spawn That is all I need, add permissions when people enter certain regions and remove the permissions when they leave.

  • Avatar of asofold asofold Aug 04, 2014 at 21:22 UTC - 0 likes

    @killerbyte12: Go

    What is the reason for not using them as region owners in the first place? Are region owners not to build on their regions but to use stuff? ''USeing essentials.build might mean they can build from either side (outside/inside) so that never will be too much accurate.

    Using RSP means you have to set the regions where they gain permissions in the config, unless you rely on region owners and members for triggers instead of the region name.

    So right now i am not entirely sure what you want to reach (regardless of the techique usee)... you have players who are to build on certain regions without being owner !?

  • Avatar of killerbyte12 killerbyte12 Aug 04, 2014 at 13:45 UTC - 0 likes

    First of all Ill just let you know that I need this done on a 1.6.4 modded server using the PEX permission system.

    When a player enters a region:

    - Take the essentials.build permission

    - If their IGN matches the name of the region either do nothing or re-give the essentials.build perm

    ( So it would need to work in that order)

    When a player leaves a region:

    - Give essentials.build permission

    My technique to have them be owner:

    Each region will be named after the "owner". When a player enters a region it takes the build perm first but then gives it to who evers name matches the name of the region. Therefore if your name matches the name of the region you just entered, the build perm is taken away but immedietly returned. If your name doesnt match the region name, it isnt given back untill you leave that region.

    Get what Im trying to do?

  • Avatar of asofold asofold Aug 04, 2014 at 10:36 UTC - 0 likes

    @killerbyte12: Go

    I just need more details!

    What kind of permission do you want ot give/take? What is the technique to have them be "owner" (a group added as owner?, bypass permissions ?)?

  • Avatar of killerbyte12 killerbyte12 Aug 03, 2014 at 12:54 UTC - 0 likes

    Wow, my comment sounds really rude now. Sorry for that.

    I was looking to have a permission removed from players when they enter any region The permission then needs to be given back to the player when they leave that region.

    To have owners without actually adding them as owners through wg, I need to be able to exempt certain players (not groups) of having that permission taken away in their "owned" region.

  • Avatar of asofold asofold Aug 03, 2014 at 12:19 UTC - 0 likes

    @killerbyte12: Go

    Oh some people do understand, some before reading the examples some before asking me, some after reading/askin.

    What do you want to do?

  • Avatar of killerbyte12 killerbyte12 Aug 03, 2014 at 12:15 UTC - 0 likes

    Noone can understand how to configure your plugin...

  • Avatar of asofold asofold Aug 02, 2014 at 12:57 UTC - 0 likes

    @ShadedPL: Go

    I tried to add it directly, but i think i was afraid of the (non existent) API back then.

    Are you running Vault? If you don't minf Vault, there should be a chance that RSP and GroupManager work together.

    However, if you only use simple "temporary" permission, like within a region, then your permission plugin does not matter at all. All you need is to give the player a "filter permission", so RSP can decide if the player is to be added extra permission on entering a region - if no filtering is necessary (player/rank-specific), then RSP can be run without permissions plugin.

Table of contents

  1. 1 Maintenance Phase

Facts

Date created
Jan 11, 2012
Categories
Last update
Nov 09, 2014
Development stage
Mature
License
GNU Lesser General Public License version 3 (LGPLv3)
Curse link
Region specific permissions
Downloads
11,323
Recent files

Authors