bPermissions
bPermissions
Welcome to bPermissions, a Superperms Manager for Bukkit! bPermissions focuses on being unique from the rest of the Permission managers. It's very simple to set up and use, it's lightning fast, fully featured, and has a great support team!
Some features:
- bPermissions has a gui client specifically designed to make running a server so easy that you'll forget that you ever used any other permissions plugin. Get it here!
- bPermissions has a unique command structure, never before seen in a permission manager. It's best used for adding lots of nodes to a user or group from the console or in-game, less typing!
- bPermissions has everything you would expect from a Permissions manager. Prefix and suffix support, inheritance, per-player permissions, multiworld support, promotion/demotion tracks, and even group priorities for multi-group setups.
- Note - bPermissions only defines prefixes and suffixes. You need a chat plugin such as bChatManager for them to show up in chat.
Commands
Say you have a user called 'Bob' and you want to put him in the group 'admin' and give him the prefix 'awesome'.
- /world yourmainworld - selects the world "yourmainworld"
- /user bob - selects the user "bob"
- /user setgroup admin - set bob's group as "admin"
- /user meta prefix awesome - set bob's prefix to "awesome"
You can do the same with groups!
- /world yourmainworld - again, selects the world
- /group admin - selects the group "admin"
- /group addgroup moderator - makes the admin group inherit from the moderator group
- /group meta prefix &c[Admin] - sets the admin prefix to "&c[Admin]"
Some other commands are as follows
- /permissions (or /bperms,/bp,/p) - general commands for bPermissions are prefixed by this
- /permissions import pex - import a pex permissions.yml in the pex folder
- /permissions reload - reloads your bPermissions files
- /permissions save - if auto-save is false, this saves your perms
- /permissions backup - backup your permissions
- /permissions helpme - for the lazy among you, this spews out some basic permissions files into your folder.
In order to use these commands, you'll need the permissions node bPermissions.admin
For configurable /promote and /demote tracks, you'll want to use permissions tracks. To read about those, visit this page
Want more commands? We have some others over on the commands page. Check 'em out!
Editing Files
bPermissions creates per world groups.yml and users.yml files in the bPermissions folder, which allow you to configure permissions on a per world basis.
Because bPermissions was designed to be configured largely via commands, bPermissions will often overwrite changes to these files especially if you /reload or restart the server.
If you've edited the files, you MUST use /permissions reload to load the modified files into the server, otherwise the permissions changes won't apply. Because a standard /reload unloads all plugins like a server stop, we cannot tell the difference between them and this will overwrite changes to your files with whatever the server last stored.
World mirroring
Worlds are mirrored like so:
world_mirroring_to: world_mirroring_from world_nether: world world_the_end: world
This duplicates the whole config for that world. Currently there's no way to have just the users or the groups mirrored, stay tuned for an update that adds this!
bPermissions and EssentialsChat
Allow me to put this issue to bed. Essentials Chat + bPermissions works for prefix and color.
This guide is for current users of EssentialsChat and want to use bPermissions along with it.
Players have colored rank prefixes and faction chat modes are also colored. All text can be colored by the players too using color codes such as &c.
bPermissions\world\groups.yml ( code snippet )
default: default groups: ## Peasant ## default: permissions: - group.default - group.userannouncer - group.userauction groups: - userannouncer - userauction meta: priority: '100' ## Citizen ## rank1: permissions: - group.default - group.rank1 groups: - default meta: priority: '200'
It has nothing configured for prefix but the group names are important (default, rank1)
Essentials\config.yml ( Code Snippet )
change-displayname: true #add-prefix-suffix: false player-commands: - chat.color - chat.format - chat.shout - chat.question chat: radius: 0 group-formats: default: '&8&lPeasant &r&8{DISPLAYNAME}&7:&r {MESSAGE}' rank1: '&8&lCitizen &r&7{DISPLAYNAME}&7:&r {MESSAGE}' moderator: '&e&l[Mod] &r&3{DISPLAYNAME}&7:&r {MESSAGE}' admin: '&c&l[Admin] &r&e{DISPLAYNAME}&7:&r {MESSAGE}'
Please direct all other Essentials support to their official support networks.
How do I get support?
First, we highly recommend you go read the FAQ page. If the answer isn't there, there's a few options of support.
- Visit the #bananacode irc channel on irc.esper.net. Just head there, as your question, and wait for someone to help you. It might be a while before you get an answer, so be patient!
- You can file a ticket. This is recommended if you don't have the time to hang around in the IRC or you have a bug report. Be prepared to check back to the ticket though, and make sure you attach your bPermissions groups and users yml files to the ticket.
- Comment on the bPermissions main page.
Note that as there's only one (slightly inactive) maintainer at the moment, any support queries may take some time.
However you choose to get support, "pls dont use txt spk," and make sure you use actual grammar.
I'm a developer!
If you wish to hook your plugin into bPermissions, please see the Developer Page for more information! If you wish to contribute code to bPermissions, fork us on GitHub!
Development builds of this project can also be downloaded from GitHub now. These builds have not been approved by the BukkitDev staff, and are possibly buggy. Use them at your own risk.
-
View User Profile
-
Send Message
Posted Aug 18, 2013@WASasquatch
So what about prefixes / suffixes then?
Are you suggesting we read the bPermissions file every time we need to access someone's prefix?
As there is no bukkit api for prefixes, all prefixes are handled directly by bPermissions, which means that bPermissions either has to store them
Also you never appeared to respond to my original comment. Let me post it again:
"So are you suggesting that we read the files every time a user join a server? Or changes world?
Sure, this might be acceptable on small servers, but if someone has a huge, 100+ player server the amount of lag generated by this would be huge.
And as far as I can see, other plugins such as GroupManager also loads into ram. Why? Because reading a 20k permissions file can be SLOW.
I might be wrong though, feel free to double check."
-
View User Profile
-
Send Message
Posted Aug 17, 2013I've been using this forever, and for quite a while with MCPC+ instead of straight bukkit. However, now i have an issue i have not figured out yet. I want to assign different permissions to mystcraft ages, which are loaded/created dynamically, and so far i have not figured out how to get them to have any permissions other than default. I don't know which combination of things makes this not work, but i'm hoping you guys know more about what it might be and possible solutions or workarounds for it.
-
View User Profile
-
Send Message
Posted Aug 17, 2013@Tharai
That's worldguard. This is a simple permissions api... You load the users permissions upon joining, or when a update had been made. Not every time something happens. THe initial load is from the flatfile itself, and not in memory, thus no way it can be blank or broken unless the actual file is. And then checking the bytes of new entries against the ORIGINAL size of the permission file will keep bPermissions from overwriting if the math is incorrect to save from a wiped file. It's like checking 'hash tags' of a application, but instead using the bytes of the file plus new material being added to create a total. If the total DOESN'T equal the bites of the original file, plus the new material being added, then something is wrong and we're not rebuilding the whole permissions file and about to overwrite it with a empty one.
-
View User Profile
-
Send Message
Posted Aug 17, 2013@WASasquatch
Are you serious? It makes no sense to not store the permission in ram. Its not as simple as read the file blah blah, calculations have to be done ie group inheritance + user perms, negations and what not. Imagine having to read the file every single time a action was performed ie for like worldguard when a user breaks a block, it would cause issues with even one player but a small sever of 10-15 players would be terrible.
-
View User Profile
-
Send Message
Posted Aug 17, 2013@CommodoreAlpha
The 2.10 branch was the branch of bPermissions that didn't have my changes that added the ability to turn off auto-sort, as I had thought that wan the issue. However, the actual issue was the lack of code added to GitHub from 2.10.2, 2.10.3 and 2.10, meaning I was missing a few important fixes :/
@paulj1x
It's starting to sound like it, finally!
-
View User Profile
-
Send Message
Posted Aug 17, 2013Ok, I think a status update is in order.
From initial reports, 2.10.6 fixes most of the issues we've been having since 2.11. Now I know what the issue is, I'm going to tell you all why we've had the issues.
When I initially took over bPermissions, I forked the code that was on GitHub. I had failed to notice, however, that the last update to the code was on January 1st, one month previous to the 2.10.4 update. This meant that all of my builds post 2.10.4 were missing about a months worth of fixes, including some fixes to the bPermissions multithreaded saving and loading, which appears to be the root of the problem, and some fixes to perms not applying after a reload.
The problem is not a fault of the "memory loaded permissions" that for some reason people are thinking the problem is. As far as I can tell, essentials group manager and pex, the other 2 large permission plugins, also load into ram.
I am really sorry for the terribly long time it took to fix this, and hope we can continue to move forwards. I'm going to work on a 2.12 version soon, based upon 2.10.6 but encorporating some of the improvements in 2.11, assuming everything is fixed.
Thanks for using bPermissions!
-
View User Profile
-
Send Message
Posted Aug 17, 2013I remember when this plugin was stable and was one of the best. Man, what happened. Seems like we cant trust this plugin anymore. Don't know why this went with memory loaded perms. Seems to be the issue every time. Just read from the config, and don't change shit unless told too.
-
View User Profile
-
Send Message
Posted Aug 17, 2013Uh, sorry if this question is a stupid one, but what's the difference between the "2.10" branch and the "2.11" branch? Is it that you're focusing on bug fixes for the 2.10 branch, while focusing on new features for the 2.11 branch?
-
View User Profile
-
Send Message
Posted Aug 17, 2013@paulj1x
I surely hope so (did you backup?)
-
View User Profile
-
Send Message
Posted Aug 17, 2013So far 2.10.6 hasn't erased group files on me. Problem fixed?
-
View User Profile
-
Send Message
Posted Aug 17, 2013is there anyone that would be willing to do all the scripting for me if I gave them the ranks I wanted ???? thanks, matt
-
View User Profile
-
Send Message
Posted Aug 16, 2013cool, i may switch from group manager to this plugin! good job :)
-
View User Profile
-
Send Message
Posted Aug 16, 2013@WASasquatch
So are you suggesting that we read the files every time a user join a server? Or changes world?
Sure, this might be acceptable on small servers, but if someone has a huge, 100+ player server the amount of lag generated by this would be huge.
And as far as I can see, other plugins such as GroupManager also loads into ram. Why? Because reading a 20k permissions file can be SLOW.
I might be wrong though, feel free to double check.
-
View User Profile
-
Send Message
Posted Aug 16, 2013@Melekaiah
Only a lucky few that know about the 'file-number trick' can download it.
Unfortuntely the bukkit Team doesn't approve downloading of unapproved files =P
-
View User Profile
-
Send Message
Posted Aug 16, 2013bah approval times get sucky!
-
View User Profile
-
Send Message
Posted Aug 16, 2013@WASasquatch
Please wait for 2.10.6 to become approved, it is supposed to be better than 2.11.5 (though your statements could still be valid for that build) ;-)
-
View User Profile
-
Send Message
Posted Aug 16, 2013Same Exact Errors 2.11.5:
For those of you wondering if this fixes your bPermissions problems it does not fix a thing. You can still lose all permissions when using /permissions reload to reload someones new rank. On random reloads it can also randomly wipe your permissions file for no reason.
Here's a big hint: do not store you permission file in memory, just read from the file with every action. You may be thinking "But lag!" but nothing. Every system has done this for years and it works fine. The way you dynamically load the permissions, for them to be lost in oblivion for the permissions system to be using no permissions is just whack. Seriously.
Just read each and every line one by one; each time something happens. So it uses the physical file and does not CHANGE it. There should be no reason for it to change the file other then added new permissions. Which if for some reason when it rebuilds the permissions to add new nodes or groups, then there is yet another problem that needs to be addressed, like using a backup file to edit making sure it has the same bytes as the original, plus the added material, to verify no errors BEFORE overwriting the original file.
-
View User Profile
-
Send Message
Posted Aug 16, 2013@ThisUsernameIsMine
@Tharai was responsible for the 2.10.6 update, thank him, not me. If I had the perms over the github page, I'd make him a contributor :3
-
View User Profile
-
Send Message
Posted Aug 16, 2013i guess ill wait a lil longer then :=)
-
View User Profile
-
Send Message
Posted Aug 16, 2013@WauloK
actually there was a severe, i just missed it when i copied it:
2013-08-12 13:12:21 [SEVERE] Could not pass event PlayerJoinEvent to bPermissions v2.10.2