Configuring your Permissions Configuration
Configuring your Permissions Configuration
Configuring your permissions for simply modular is about as standard as your typical permissions plugin. Here is the Guest example:
Groups: Guest: default: true perm2add2: simplymodular.groupset.guest requiresConsole: false prefix: '' invisibilityLevel: 0 isOPType: false restricted: true listName: '&8Guests' globalPermissions: {} worldPermissions: world: {} world_nether: {} world_the_end: {} inherits: {}
Here is a breakdown of what everything means:
default: true/false value. The default group. There can be only ONE default group. This is the group that everyone joins whenever they first join the server. While there can only be one of these, there also MUST be one.
perm2add2: String value. This is the permission required to add or remove someone to this group. While some users may be able to promote guests to members, you do not want your moderators to be able to promote someone to administrator, so you gate what groups your staff can add users to with these additional permissions. As a side function, this permission is also required to add or remove permissions from the group.
requiresConsole: true/false value. this means whether or not to require the console to promote someone to this group. it is useful to use this for the highest tier groups (such as admin or owner), to prevent the case of compromised admin accounts promoting other users to the admin groups.
prefix: String value. the prefix is used with the built in chat system as a name prefix. leave blank for if you don't want a group to have a prefix.
invisibilityLevel: Integer (number) value that denotes whether or not someone can see another invisible user. If their invisibility level is equal to, or greater, than another users invisibility level, they will be able to see them, target them, and will be alerted whenever they come online (invisible or not).
isOPType: true/false value. Flags the group as an operator/moderator type group.
restricted: true/false value. This should only be true if you want to restrict the group from doing basic gameplay, such as breaking/building blocks and the like. Useful for preventing new players from being able to damage the server.
listName: String value. This is the name of the group displayed in the /list command. For instance, if you want users of the Admin group to be displayed as "Admins", you can do so here. can be flagged with color using ampersands (&).
globalPermissions: String List value. Lists all of the global permissions for this group.
worldPermissions: List here all of the world specific permissions for your server.
inerhits: String value. List the different groups that this group inherits permissions from. Only superficial (non-inherited) permissions from sub-groups are inherited. (for instance, if user inherits guests permissions, and then moderator inherits from user, it will only inherit user's specific permissions, and not the inherited permissions from guest)
World Specific Permissions
If you have different permissions per world, for instance, maybe one world is pvp, and another is pvp-free, you will need to specify the permissions in each world. In order to understand how to do this, you'll need to understand how the permission system builds the permissions list. It does so like this:
Inherited Group, Global Positive Permissions Inherited Group, Global Negative Permissions Top Level Group, Global Positive Permissions Top Level Group, Global Negative Permissions Inherited Group, World Specific Positive Permissions Inherited Group, World Specific Negative Permissions Top Level Group, World Specific Positive Permissions Top Level Group, World Specific Negative Permissions Player Personal, Global Positive Permissions Player Personal, Global Negative Permissions
- note: I will probably at some point allow for player world specific permissions.
This is the list, ranging from least, to most important in terms of what permissions override eachother. I know it may seem fairly complex. If there are any issues with permissions; lets say you create a group that inherits another group, but the permissions arent quite working the way you think they are, remmeber this list, and then use the /hasperm command on the target player to see how exactly the permission went from allowed to disallowed or vice/versa along the way. It can help troubleshoot permissions issues!
In order to add a world specific permission, you'll need to add an entry into the worldPermissions node in the group. For instance, if you create a world called PvPWorld, you will need to add pvp permissions there, right? You can do this:
Groups: Member: worldPermissions: PvPWorld: - <insert pvp permission here>
Now, lets say you need to disable a permission. This one is very simple, just add a negative permission! You can do so by just putting a hyphen before the permission, like so:
- -this.is.a.negative.permission
Comments