GroupPermsLite
Unsatisfied with a number of other permissions management plugins publicly available, I sought to create a lighter and more elegant plugin to handle group-based permissions. With a focus to making all of the commands understandable at a glance and providing helpful details when queried. You should be able to get on with permissions management simply through typing /help GroupPermsLite and reading the command descriptions.
If you are unfamiliar with Bukkit permissions, please see the Wiki Article and the Forum FAQ
Features
- Simple and elegant
- Easy to use and understand
- Allows setting up an unlimited number of groups (names are case-insensitive)
- Has a default group called "all" that applies to all players that have joined the server, nomatter what other groups they are in
- Has a unique group for each player called "personal_[player name]" that allows individual permissions settings
- Saved in YAML format, advanced users can read and manage on disk and reload while the server is running using a command
- Simple and easy to use commands to add/remove players from groups and grant/revoke permissions from groups
- Allows use of the wildcard (*) to match any value for a node in a permission string when granting permissions using a command
- Allows adding negative permissions using the (-) operator to prevent a particular group from receiving the given permission from any other source
Ideas for future development
- /hasPermission ([player]) [permission node] - For manually checking permissions of a player and for use in command blocks (Available from 4.4 onwards)
- Tab auto-completion for registered permission nodes
- Support for Vault for better compatibility with plugins such as the LWC group feature
- A command to rename a player in order to support upcoming Mojang name changing feature
Commands
Command | Permission | Description |
---|---|---|
/GroupCreate [group] | group.admin | Creates a group without adding a player or permission |
/GroupAddPlayer [group] [player] | group.admin | Adds a player to the given group (creates the group if it doesn't already exist) |
/GroupRemovePlayer [group] [player] | group.admin | Removes a player from the given group |
/GroupGrantPerms [group] [(-)permission-string] | group.admin | Grants the given permission(s) to the specified group (creates the group if it doesn't already exist) |
/GroupRevokePerms [group] [permission-string] | group.admin | Revokes the given permission(s) from the specified group |
/GroupListPerms [group] ([page number]) | group.admin | Lists all of the permissions for a given group |
/GroupListPlayers [group] | group.admin | Lists all players in a given group |
/GroupList | group.admin | List all groups |
/GroupDelete [group] | group.admin | Deletes a given group |
/GroupReload | group.admin | Reloads config from disk |
/RegisterPerm [permission node] [default(op/not-op/true/false)] | group.admin | Manually register an unregistered permission node |
Most commands have a "silent" feature that is activated by placing a "-s" (without quotes) at the end. This is intended to be used with command blocks and command scripting plugins to allow you to manage your permissions through these without generating lots of console spam. You will still get a response if the command fails however.
Add-ons
- RankDisplayNames - Create ranks with chat prefixes that update automatically with permissions set through GroupPermsLite
Troubleshooting
It says the permission is not registered, what can I do?
Sometimes plugin developers will forget or simply not bother to register their permissions with Bukkit, but still use them in their code. Fortunately, the bukkit permissions.yml file can come to the rescue here. You should be able to find the permissions.yml file in the server directory. It is used by server owners to manually register additional permissions in bukkit. See http://wiki.bukkit.org/Permissions.yml
for details about editing the Permissions YAML. It is usually used to group permissions together so that they can all be assigned at once (this is compatible with GroupPermsLite!), however there is also nothing stopping you from registering all of the unregistered permissions for a plugin manually.
For example, here is how to register all of the permissions for Essentials (the most notorious for not registering their permissions): http://dev.bukkit.org/paste/7208/. You can cut and paste these into your permissions.yml if you use essentials. Be aware that permissions with square brackets [ ] around a permission node mean that you have to change that to the specific type you want in order for it to work.
Coming in v0.4: Added support for unregistered permissions - You will be able to grant unregistered permissions to a group with a prompt for confirmation
This plugin uses Java 7
If you get the followed error on starting up the server with this plugin installed "Unsupported major.minor version 51.0". This means you are using an out of date version of Java. If you don't know how to upgrade, please contact your server hosting provider and ask them for help in upgrading to Java 7, or contact Oracle customer support. Mac OS X users require JDK 7 instead of JRE 7.
Donations
If you'd like to contribute towards the continued development, support and maintenance of this project, please consider joining me on Patreon, and making a one-time or recurring pledge.
Help
If you need help you can leave a comment below and I will get back to you as soon as I can. You can also join my IRC chatroom using the following link. Please note, I am not always at my keyboard! http://webchat.esper.net/?channels=XHawk87&prompt=1
@Necrodoom
The plugin.yml isn't the only way to register permissions. You can do so programmatically through the Bukkit API. see PluginManager.addPermission(...).
Although its not technically required to register permissions at all, it is highly recommended as it allows in-game help to be provided for them as well as allow more robust permissions handling for permissions plugins. Without registering permissions, a single typing error could lead to considerable confusion for a new or experienced server admin. Potentially leading to hours of wasted time on hunting a solution and talking to plugin devs.
@XHawk87
the reason is that many of the permissions are dynamic. trying to put all the essentials.kits.kitname permissions or similar in plugin.yml wont end well.
@deadyasar
If you use the /reload command this can cause permissions to disappear until you relog or restart the server.
hi i got a problem with this plugin every time i set the groups the permissions and other stuff and i unop my self everything goes away do you know how i fix this?
@18ijohnson
This is a Bukkit API-compliant plugin, so it should work in 1.5. Have you tried it?
When are you going to update to 1.5? My server is falling apart because nobody has permission to do anything, I have to do it all for them.
I went on the permissions.yml file...it was empty, not sure if I messed up there, but I added the files as you put: essentials.workbench: default: op essentials.enderchest: default: op essentials.sethome.multiple.vip default: op however it still gives me the same error command when i try to add enderchest...
@FailingIcarus
Its not you who has done something wrong, its Essentials. For some reason they don't bother to register many of their permissions with Bukkit. However you can get around this problem by registering them yourself in Bukkit's permissions.yml file. See http://wiki.bukkit.org/Permissions.yml
Generally you would add them something like this:
Also, are you aware that you typed essentials.sethom instead of essentials.sethome?
it doesnt work for essentials.enderchest either.... I dont get what i am doing wrong it just says there are no registered permissions that match essentials.enderchest Its very frustrating because its on the list you gave me... Am i doing something wrong? Sorry for the trouble... Icarus
The plugin says "there are no registered permissions that match essentials.workbench" however when i do /workbench It lets me...soooooo I dont understand
Is there any way that I could give the people in the group a command like / something? And also it says that essentials.sethom.multiple.vip is not one..... Is this one of the parts that doesnt work, can i give players access to / commands that normal players dont?
@FailingIcarus
You can find a list of essentials permissions here: http://wiki.ess3.net/wiki/Command_Reference/Perm
Once you have the correct permission, you can use the following commands to create a group, assign it that permission and add a player to it.
Some essentials commands are not properly registered. If you have this problem you can add them to your permissions.yml file. See http://wiki.bukkit.org/Permissions.yml. After you restart your server the permissions will be registered.
In the plugin essentials under the homes category it lets certain groups claim multiple homes? How would I go about making a group and giving them that permission? Thanks Icarus
Edit: Heres the part i am talking about:
@xXJoker80Xx
GroupPermsLite is just a group permissions management system, if you want to set chat prefixes, you can download the official add-on RankDisplayNames as soon as the files have been approved.
Can you set prefixes?
@jrdmetsfan
If you are on managed hosting, talk to your hosting provider. If you have to do it yourself, ask Oracle customer support.
After I install the latest version of Java, I still have that problem. Now what do I do?
@XHawk87
How can I fix that?
@jrdmetsfan
It is possible to have multiple versions of java installed on your server at the same time. Perhaps it is using the wrong one to run craftbukkit.jar?
@XHawk87
After I installed a newer version of Java, the plugin still didn't work.
13:35:00 [SEVERE] Could not load 'plugins/GroupPermsLite.jar' in folder 'plugins' org.bukkit.plugin.InvalidPluginException: java.lang.UnsupportedClassVersionError: me/xhawk87/GroupPermsLite/GroupPermsLite : Unsupported major.minor version 51.0 at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:184) at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305) at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230) at org.bukkit.craftbukkit.v1_4_R1.CraftServer.loadPlugins(CraftServer.java:239) at org.bukkit.craftbukkit.v1_4_R1.CraftServer.<init>(CraftServer.java:217) at net.minecraft.server.v1_4_R1.PlayerList.<init>(PlayerList.java:55) at net.minecraft.server.v1_4_R1.DedicatedPlayerList.<init>(SourceFile:11) at net.minecraft.server.v1_4_R1.DedicatedServer.init(DedicatedServer.java:104) at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:399) at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849) Caused by: java.lang.UnsupportedClassVersionError: me/xhawk87/GroupPermsLite/GroupPermsLite : Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:80) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:247) at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:173) ... 9 more