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!
@krinsdeath
Cool, thanks, I'm going to go bug them then!
@diannetea - Permission nodes and their children are defined by the plugins that implement the permission. If essentials has a node for essentials.time.* which doesn't include permission to use the command itself, then it won't work. PermissionsEx does not follow Bukkit's rules and causes a lot of undesired and broken behavior.
Privileges does not change the way that Bukkit works. As such, if
essentials.time.*
doesn't properly apply the node to use the command, Privileges won't know about it.lol, that's fine, I'm just going to give myself a reload alias I think. I'm having a weird issue with permission nodes however. With PEX I could give the node, as an example
- essentials.time.*
and that would give me access to all of the time commands. I can do that with Privileges as well but it only works if I ALSO give
- essentials.time
So basically I have to have two permission nodes instead of one? If I only have essentials.time it only lets me check the time, if I only have essentials.time.* it doesn't let me do anything. If I have both it works the way I would think it would with essentials.time.* and I can change the time
Is this supposed to work this way?
@diannetea - Use
/priv load
, not/priv reload
. The reload command saves changes to disk and then reloads the plugin./priv load
loads external file changes without saving anything to disk.Privileges does not handle the checking of nodes. That is done within Bukkit, and cannot be hooked without causing considerable performance losses. The debug function of Privileges only prints out relevant debug information for Privileges itself. It should only be used if there is a problem in Privileges and you intend to report it to me, and is not there for any other purpose.
I will not be changing (or swapping)
/priv load
and/priv reload
's functionality. I apologize if this is frustrating but it is how I have always done it and changing it now would be much more confusing to people who already use it this way.I prefer to edit my permissions file manually, and then reload the permissions to test things.. It's just easier for me than using commands to add them, however Privileges seems to remove any changes I have made when I use the /priv reload command. This is completely backwards from what I'd expect and am used to with PEX and is incredibly frustrating to me. Now that I try it, using /priv load works to do what I want, which I can use, but.. sadface
Also, debug doesn't seem to give very useful output at all, I would expect that it tells me the nodes it is checking but instead it just gives something about checking the user group :( could this be made a little bit more functional?
Would it be possible for TimedPermissions to be implemented? This would be a really good feature to add for things like Votifier and such! PermissionsEx is the only Perms manager i know of offering this feature...
I will also file a ticket on the subject.
Hey jkcclemens,
Looks like I got kicked off the server and my reconnect script didn't have enough retries (100 failures?!).
I think I can add a save_on_stop and save_on_reload flag to the config.yml, which should do what you are intending.
It might take a bit due to my schedule, but I will work on it. Can you create a ticket so I can keep a reminder?
@Gavin79746
No, It's not a permission plugin's work. Use a chatmanager for that. krinsdeath have a chat manager plugin, try that.
Are there prefixes and stuff?
Great plugin. Just wondering with node does that mean like essentials.ban? Anyways again great plugin.
Ranetha: I'm glad that the plugin is working out for you. :)
kickingandscreaming: It should work perfectly fine with versions as far back as 1.3.2.
Hello. Great plugin! Thank you for the update. Did I read correctly that the new build, 182, plays nicely with 1.5.2? I'd like the update, but still am not ready to go to 1.6.2.
Keep up the great work! It is appreciated.
Moved from PEX, tried a few different perms plugins but definitely sticking with Privileges. Very easy to use out of the box, and looks to offer enough to run a straightforward PVP server. It works in a way that others (bPermissions) just don't. Privileges is simple, easy to follow and it just feels smooth and nice. Keep up the great work.
Nebula111: I'm afraid not. I have no intention of writing a MySQL permission handler, as it's both less efficient than YAML and slower (for this purpose).
ProjectInfinity: I am just too busy to write a bunch of extra features for my plugins right now. If there is a breaking bug, I can take time to fix it, but school and work obligations prevent me from investing too much time in new features. I do apologize.
PsychoFad: I am glad to hear that you have had a positive experience with Privileges! Thank you for the praise, and happy gaming.
Any chance of mysql support?
How about a bPermissions importer?
Just wanted to pop by and say Thank You!
Thank You for making a permissions plugin that is both easy to navigate and isn't broken easily. I was using bPermissions for the last year and that perms plugin has gotten me pulling my hair out. The latest version will actually delete perms from users during a server restart. I readded them 2x thinking I had done something wrong before going to their Dev Bukkit page to other users Raging about the same issues. So I decided to give Priveledges a try and wow....it is so easy to add perms with the commands I don't hardly edit the ymls at all. To do the same thing with "the other" perm plugin required me to look at the page just to see the commands...so it was easier just to edit the file.
Thank You....Your Newest Fan!
hi there,
the plugin works fine for me, except that the bukkit permissions don't work (e.g. bukkit.command.gamemode).
i could use a hint.
regards
My groups file was wiped clean! And every time I put something in it, it gets deleted! It took 7 hours to make that file!
Ya I saw the command to set their group. I just thought it would be cool to do it with permissions. Pointless really xD