Privileges
Privileges
Privileges seeks to be a familiar face for Permissions, and uses the Permissions 2.x format of lists of nodes for users. It offers inheritance, multi-world permissions, and promotion tracks.
This plugin is designed to implement Super perms (Bukkit Permissions). It does not provide an extensible API for permissions handler hooking, except in the form of getGroup().
by krinsdeath
Pages
- Configuration / groups.yml
- Configuration / config.yml
- Example Setup
- Commands
- Jenkins / Github 5.1. Use of the plugin builds from Jenkins is unofficial, unsupported and unapproved by BukkitDev Staff!
Features
- Multi-world compatible permissions management, with a familiar interface.
- Easy-to-use, powerful, and accurate inheritance.
- Promotion ladders and tracks through group ranks.
- Anti-build with permissions nodes
privileges.build
andprivileges.interact
. - Expanded anti-build permissions with
privileges.interact.[block id]
, to prevent interaction on a block-by-block basis. - Extremely powerful command system!
- Incredibly light-weight registration of players. Thousands of nodes can be applied in only a few millionths of a second.
- Plugin Metrics! Privileges reports the total number of groups and users registered in its config files to mcstats.org. This data is 100% anonymous and is only used for informational purposes. You can disable this in config.yml by changing
plugin.metrics: false
Commands
- /priv - Top level command. Does nothing.
- /priv check [player] [node] - Checks the specified node for the specified player. If player is omitted, checks your own nodes.
- /priv list [player] [page] - Lists the specified player's permissions nodes. If player is omitted, lists your own nodes. 7 nodes are listed per page.
- /priv reload - Saves Privileges' currently loaded configuration to disk and reloads all files.
- /priv save - Saves Privileges' currently loaded configuration to disk.
- /priv load - Unloads current configurations and loads from the disk - used to pick up external file changes.
- /priv backup [name] - Creates a configuration snapshot including users and groups, and saves it to a directory: privbackup/[name].
- /priv restore [name] - Restores the specified configuration snapshot.
- /priv version - Shows Privileges' current version and build numbers.
- /priv group [option] - Top level 'group' command
- * /priv group create [name] [rank] - Creates a group with the specified name and rank. If your current rank is equal to or lower than the rank you specify, the command will fail.
- * /priv group remove [name] [--safe] - Removes the specified group. If your rank is lower than the target group's rank, the command fails. If --safe is specified, the command will attempt to remove all references to the group from all users (and set them to your default group), and remove the group from all inheritance references as well.
- * /priv group set [player] [group] - Attempts to set the specified player's group to the specified group. If the target group's rank is equal to or higher than the command sender's rank, the command fails.
- * /priv group show [player] - Shows the sender the specified player's group.
- * /priv group list - Lists the available groups and their ranks.
- * /priv group perm - Top level 'group permission' command
- * * /priv group perm set [group] [node] [true|false] - Attempts to set the specified node to the specified value for the specified group. Fails if you don't have a higher rank setting than the target group.
- * * /priv group perm remove [group] [node] - Attempts to remove the node specified from the group. Fails if your rank is not higher than the target group.
- /priv user perm [option] - Top level 'user permission' command
- * /priv user perm remove [player] [node] - Removes the node specified from the target player.
- * /priv user perm set [player] [node] [true|false] - Sets the specified node to the value for the target player.
- * /priv user reset [player] - Resets the specified user to the default group and erases any individual permissions.
more commands will be added as I think of them
Permissions
- privileges.interact (defaults true) - Allows the player to interact with objects like buttons and switches
- privileges.build (defaults true) - Allows the player to break/place blocks
- Base commands
- * privileges.reload - /priv reload
- * privileges.save - /priv save
- * privileges.load - /priv load
- * privileges.backup - /priv backup [name]
- * privileges.restore - /priv restore [name]
- * privileges.version - /priv version
- * privileges.debug - /priv debug
- Administrative
- * privileges.promote - /promote [player]
- * privileges.demote - /demote [player]
- * privileges.check - /pc [player] [node]
- * privileges.list - /priv list [player] [page]
- * privileges.info - /priv info [player]
- Group base commands
- * privileges.group.create - /pgc [group] [rank]
- * privileges.group.remove - /pgr [group] [--safe]
- * privileges.group.set - /pgs [player] [group]
- * privileges.group.show - /pg show [player]
- * privileges.group.list - /pg list
- Group permissions commands
- * privileges.group.perm.set - /pgps [group] [node] [true|false]
- * privileges.group.perm.remove - /pgpr [group] [node]
- User permissions commands
- * privileges.user.perm.remove - /pupr [player] [node]
- * privileges.user.perm.set - /pups [player] [node] [true|false]
- * privileges.user.reset - /pur [player]
Special thanks
- gravypod - Small performance tweaks and optimizations. Thanks a bunch!
- Wolvereness - Massive improvement to node registration performance through templating. Keep on keepin' on!
@pure07
Yeah. Don't use dev builds. Especially not this latest batch.
@krinsdeath
Hey krinsdeath,
any chance of a quick fix for the latest dev bukkit versions theres an error when a player connects.
The permission can be lowercase or mixed case. That shouldn't matter. The default_group should match the group name in the groups.yml, but it is probably case insensitive.
Minecraft usernams are actually toLowerCase()'d when written to disk, so I'll convert that now in Privileges. This might cause some issues going forward but I plan to update to 1.8 for the 1.4.6 release of Minecraft, which should be a good time to introduce a change like this.
I will do my best to automate the conversion but, like any other kind of conversion, sometimes weird issues can occur!
Thanks for the reports, sirmyllox! These kinds of issues are hard to find without some testing done. :)
As far as the OnTime issue, I think that's something I'll have to investigate in the Vault API, as I can't find any reason why that problem should be occurring in Privileges itself.
Hope you dont Think im spamming like crazy, just trying to figure things out :)
1st - the default_group is from my findings dependent on lower case only, in my case i set it as member .. it also has to match the "- group.member" in lower case. While the groupname itself can be Member.
2nd - the below problem, i Think is related to lower/upper case as well. the "empty" repeating message is actually doing something.
It detects me as Member as i first login and sets the group correctly, It sets the group, but my username is set to lowercase after promotion, thus it tries again ?
cheers sirmyllox
@ krinsdeath:
This is my latest post to Edge209 the author of OnTime. The pastebin im talking about is: http://pastebin.com/9ghfnKyp
@Edge209: Go
I've done some testing and Went down a few versions.
using Privileges #137 and Vault 1.2.20 (i alway use OnTime 3.5.0, as this works with Vault 1.2.20 and PEX) im now getting repeated messages in client chat:
Congratulations You have been on for You have been auto-promoted to Group
it never stops .. just keeps repeating
i will continue testing
update: i've done some more testing ..
highest version of privileges i can go independent of vault version Before i get above pastebin is #137 .. so using Privileges #137 and the new vault you linked to, which is #271 i do not get any error messages. just the above repeating message.
I will post this post in the Privileges forum to see if Krinsdeath can figure something out.//
I hope this can be of any use cheers sirmyllox
I have error using #141 devbuild of privileges, #272 devbuild of vault and Azrank. I think that is "invalid default group" bug:
@krinsdeath
All of my issues are solved. Turns out, even though the default group was right, when I imported my PEX users file, I still had it set like:
Ok, found Vaults jenkins site and running #268 now
it solves the default Group errors, but the second issue is not solved :(
http://pastebin.com/9ghfnKyp
any ideas?
@krinsdeath
Groups.yml: http://pastebin.com/USN4PrJZ
Config.yml: http://pastebin.com/chbdMye8
@krinsdeath
already running latest version, Vault v1.2.20-b264.
you know of a dev build site? where i can download something newer?
Update Vault. I think there's something wonky going on with it, because I'm not able to find any problem in Privileges.
@krinsdeath
Groups: http://pastebin.com/zT5ad6dX Config: http://pastebin.com/C11kzb4F
FYI: Joining the testserver with a new account correctly assigns the account as Member. All other perms this far seems to work as they should.
TheReverend403 & sirmyllox: Can I get a copy of your config.yml and groups.yml, please? The issue should only appear if the groups.yml is invalid YAML or if the config.yml doesn't have a valid group to match up with in groups.yml.
@sirmyllox
I'm having the exact same issue. It works fine with the default config, but the second I add a permission: Invalid default group.
@krinsdeath:
Hi, i got recommended to check out Privileges and from what i see i like it alot. I have already converted from PEX on my dev server :)
In my testing i came across some errors in conjunction with OnTime .. and i was wondering if you had the possibility to have a look at the below pastebins ?
The first pastebin is when i had "default_group: Member" in config.yml to match my ranks http://pastebin.com/b1B39Bmj ..
So i decided to build my ranks using "default_group: default", the first pastebin message no longer appears but now i get this .... http://pastebin.com/9ghfnKyp
Appreciate any help i can get to find out what may be wrong :) .. i would really like to move away from PEX
Privileges: Privileges v1.7.2-b141 Spigot: #289 OnTime: 3.5.0
Cheers sirmyllox
@krinsdeath
Thank you for your work. Can you update a documentation about config.yml? I saw a few new nodes
@krinsdeath
I have a feature request: Temporary permissions / group promotions that persist through server restarts. Ex. give some player X permission for 5 hours, or promote some player to X group for 5 days.
This is a great plugin. I was having some problems at first but I was able to fix it.
Edit: Actually one thing, ever since I switched to this permissions plugin, no one can open chests or use furnaces, etc. You know why? :(
Yes. If you want to set a node to false, you can specify it with a
-node.node
. And no. If the plugin defines abob.*
node in its plugin.yml, then it will work fine. If it does not, then Privileges is not going to search through every permission and apply them for you.Hmm, this actually looks really nice! But, does it support -bob.bob permissions? Or how about bob.*?