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
@jrdmetsfan
Thank you. This type of error "Unsupported major.minor version" is caused by using an old version of java. You can fix the problem for all plugins written in later versions of java by installing the latest version of java available from the Official Website. If you are on a managed hosting package, you should contact your hosting provider about upgrading to the latest version of java.
@XHawk87
23:09:02 [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
@jrdmetsfan
Can you send me a copy of the errors please?
When I put it into my plugins folder and start up my server, the plugin crashes and doesn't work.
@tal124
The commands are listed above in the Commands section.
/GroupAddPlayer [group] [player] adds a player to a group You use it like this: /GroupAddPlayer all XHawk87
/GroupGrantPerms [group] [(-)permission string] adds permissions to a group You use it like this: /GroupGrantPerms all myplugin.commands.*
@XHawk87
i can't seem to put permissions in the group i made how come? and how do you put permissions in?
@lantzcoolness
Could you send me a copy of an errors you got on the console, please?
it didnt work when i put it into my plugins file, what do i do???
@cedric62400
I cannot understand what you mean.
It might be better if you type in French, and let Google Translate act as a translator (or find a real translator.)
For this to work, you will need to use full sentences, take care to use good grammar and spelling, and avoid using idiomatic phrases.
Please explain your question in lots of detail.
Yes but XHawk87 I do not know how to make because he(she,it) is going to make one week that I have my waiter(server) and the group I would like that other player see them
@cedric62400
You want to know why you cannot see a player's Group in their display name in chat messages?
In short, GroupPermsLite wasn't designed to do that. It is a group permissions manager, so all it does it assign Bukkit permissions to players so that they can use commands and perform actions in other plugins that use Bukkit permissions.
I have offered to create an add-on that would allow you to set chat display names for groups so that the dominant group will show up in your display name in chat, however this would take a considerable amount of time and effort, and I don't intend to do that unless there is enough demand for it.
For now, you can use Essentials to manually set a player's display name to include their group.
Could you answer me the fastest possible please thank you
Yes alor as I said I have creer a group and other player do not see my rank Why?
@cedric62400
I am sorry, I do not understand the question, and Google Translate has failed me. Could you please explain the problem in more detail, and preferably in English?
Bonjour j'ai creer mon group mais personne ne vois que ses mon le fondateur Pourquoi ?
I afraid something like that is a bit beyond the scope of GroupPermsLite. This is intended as a light-weight group management system. However, what I can do for the next release is to include API methods so that another plugin could link into GroupPermsLite and change player ranks.
If you want to commission a customised plugin for your server to do stuff like that and more, feel free to send me a PM with details of what you need, and we can discuss it.
Hi! The plugin is great but I would love it if you made it so that the players could rank up to a certain group using a command.
An Alpha release for GroupPermsLite v0.2 (for CB 1.4.7) is now awaiting approval. It has the following updates:
The config YAML is created on first run (if upgrading you will need to remove/rename your current one to generate it) which contains an advanced editing tutorial for the YAML.
Added a /GroupCreate command that creates a group and nothing else. This is to avoid the initial confusion some users had when trying to create groups. The /GroupAddPlayer and /GroupGrantPerms commands will still create groups as normal.
Made group names case-insensitive. This prevents two groups of the same name, with letters in different cases from being stored, as it is highly unlikely that anyone would do this intentionally.
Removed personal_[player] groups from the groups list. They were just cluttering it up and prevent users from seeing the full group structure. Every player has a personal group, and you can check what permissions a player has by using the /GroupListPerms personal_[player name] command
This is an alpha release as it may still contain bugs. If you have any problems after updating or installing this plugin, please post here or message me and include any errors from the console.
Bukkit has signed up for the Curse rewards program. This is good news for us developers, as we can (eventually) get a little ad revenue from downloads. However monitoring the points generation over the last day suggests that it would take roughly 2 years (yes, that's right, two years, no typo) for me to make back $100 USD from this project. Of course this is a very early estimate, we'll have to see how things work out.
@XHawk87
Sounds good! I'd love such addon and I'd encourage you to make it. But if this is a matter of time I can also use Essentials. Thanks you