An overview of the Group Manager permissions plugin. This article will help you install the Essentials plugin, add players to permissions groups, and configure permission groups. It will also cover adding the permissions for compatible plugins to existing groups using the Lockette plugin as an example.
Installing the Essentials plugins
- Log into Multicraft
- Click on your Server
- Click on Plugins
- Click on install for Essentials.jar, EssentialsChat.jar, EssentialsGroupBridge.jar, EssentialsGroupManager.jar, EssentialsProtect.jar, and EssentialsSpawn.jar.
Default Groups and Adding a Player to a Group
- Default (Guest group, new players join automatically)
- Builder (Basic group that lets a player build)
- Admin
- Moderator (Full Bukkit and Essentials rights)
- Owner (Everything! - More than an Op)
To place users to the desired groups - Either from the Multicraft console or as a player with Operator status (or relevant GroupManager permissions) in the game:
- /manuadd {player} {group}
To remove a player from their group (Players with no group will be moved to the 'Default' group):
- /manudel {player}
- /manuaddsub {player} {group}
- /manudelsub {player} {group}
- /manwhois {player}
Group Structure and Group YAML files
Groups are defined by a global group file and local group file for each world:
- /plugins/GroupManager/globalgroups.yml (Example)
- /plugins/GroupManager/worlds/world/groups.yml (Example)
You can edit these files from within Multicraft using the web FTP client - How To: FTP Access
The globalgroups.yml defines the global groups and the explicit permissions contained in each one. The local groups.yml defines the local groups by listing the global groups as inheritances. When adding new permissions for a plugin it is best practice to add the permissions to a global group and then set a local group as an inheritor. Groups inherit permissions only and do not inherit any other attributes.
If you edit the files while your Minecraft server is running the changes will not take place until you force GroupManager to load them. The command to do this is:
- /manload
Creating and Editing Groups
To add/delete a group (Prefix a groupname with g: to make it a global group):
- /mangadd {group}
- /mangdel {group} (orphaned players get moved to group Default)
- /mangaddi {group1} {group2}
- /mangdeli {group1} {group2}
- /listgroups
- /mangaddp {group} {permission}
- /mangdelp {group} {permission}
- /manglistp {group}
- /mangcheckp {group} {permission}
Group Variables
Each local group, in addition to permissions and inheritances, also defines a few extra variables:
- prefix (Text to appear before group members' names in the chat. Colour codes can be used)
- build (Set to true or false, if true then group members are allowed to build and destroy blocks)
- suffix (Text to appear after group members' names. Colour codes can be used)
To change a group variable:
- /mangaddv {group} {variable} {value}
To remove a variable from a group (in case you mis-typed a variable name in the command above)
- /mangdelv {group} {variable}
To list the variables in a group:
- /manglistp {group}
- /mangcheckv {group} {variable}
If you are unable to build while a member of a group, use '/mangcheckv {group} build' to make sure that it is set to true. use '/mangaddv {group} build true' to set it to true. When setting prefixes and suffixes using the commands you cannot enter any whitespace characters (e.g. space), use a dash or underscore instead. If you want a space to appear you will have to edit the groups.yml file. If you enter a colour code (chart for reference), any text following it will be in that colour, including the chat message and suffix.
A full list of GroupManager commands can be found at the Essentials Wiki.
Adding Permissions from Another Plugin (Lockette)
This section will go through the process of adding the permission nodes of a plugin to GroupManager. We will be using Lockette as an example as it doesn't have too many nodes, only needs those nodes split into 2 main groups, and is a pretty useful door and chest protection plugin too. This walkthrough assumes that you have already installed the Lockette plugin, refer to How To: Installing a Plugin Using Multicraft Control Panel.
Step 1: Find a list of Permission Nodes for the Plugin
Most plugins will come with a readme file which will have this list in it. Failing that you can always hunt for it online. A quick Google of 'Lockette Minecraft' gave me a link to the Bukkit thread for Lockette. In there I found, within the Advanced Settings section, the list of permission nodes:
- lockette.user.create.* - Permission required to create a protected container or door. Possible sub-nodes include chest, dispenser, furnace, and door. (The permission lockette.create.all is still supported, but obsolete.)
- lockette.admin.create.* - Allows admins to create containers and doors for other users. Possible sub-nodes include chest, dispenser, furnace, and door. Leave line 2 blank for the default behavior or enter the name of your choice. Capitalization matters.
- lockette.admin.break - Allows breaking protection on containers.
- lockette.admin.bypass - Allows opening of any locked door.
- lockette.admin.snoop - Allows peeking in protected containers. (The setting allow-admin-snoop must be true.)
- lockette.admin.reload - Allows use of the reload command.
Looking at that list we can see that there are commands that we want all users to have, and some that only Admins should have. The plugin author has also set them up in a sensible heirarchy and we can easily refer to just 2 nodes intead of all of them:
- lockette.user.*
- lockette.admin.*
The use of the asterisk wildcard lets us refer to everything within that parent node.
Step 2: Adding the Permissions to the Groups
First step is to add the permissions to a global group. We could add them directly to a group, or even a user, but that can be messy and difficult to maintain. Users should inherit permissions from their group which in turn inherits from a global group. This will let you make sweeping changes or track down incorrectly assigned permissions more effectively.
We will create global groups admin level and user level permissions:
- /mangadd g:lockette_admin
- /mangadd g:lockette_user
We then add the permissions to these groups (note how I use lockette.* for the admin level group to refer to all Lockette permissions)
- /mangaddp g:lockette_admin lockette.*
- /mangaddp g:lockette_user lockette.user.*
Now we set the local groups to inherit these global groups
- /mangaddi Admin g:lockette_admin
- /mangaddi Builder g:lockette_user
Note that we only need to add the user level permissions to the Builder group. The default setup for GroupManager is to have each group inherit the permisions of the group below. So we only need to add the user level permissions to the lowest group that requires them. The last step is to force GroupManager to save these changes to file. While they take effect immediately they are not svaed permanently just yet. GroupManager does save these changes frequently but the following command will do it immediately.
- /mansave
Finished! It only took 7 commands too.