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!
Jenkins
Development builds of this project can now be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff, and are possibly buggy. Use them at your own risk.
@rymate1234
Would you consider doing /p save, then removing the group while server is running from the file and then doing /p reload save?
@semirotta
Probably an issue with reloading all users at once. I'll look into it
@H8llfire
Commands are now in the docs. I'll consider a command to remove groups in-game, however this may be difficult due to how groups are handled.
@rymate1234
I have now succesfully repeated the error 3 times with 3 reloads of the perm plugin and restarting won't produce the error so it is only the reload but it doesn't seem to break anything since everything works fine.
@rymate1234
Nice, thanks! Those commands are not on the command page, so you might as well add them.
And how can I delete a group ingame?
@H8llfire
How can you check groups/prefixes of a user ingame?
/user meta prefix should show the selected users prefix, if set
/user list groups should list their groups
When using /setgroup player group it will always create a new group if non existant. Can this be turned off?
Not at the moment
Is there a way to do a haspermission check via command?
/user has pemissions.node
Also /user cmeta prefix doesn't seem to work. I have to first do /p save, then /user cmeta prefix to remove the prefix and then reload with /p reload.
Think that's fixed in the latest build, I'll release a new beta in the next couple days
@semirotta
I'll have a look at squashing that error
Reloaded bperms with /permissions reload and got an error:
http://pastebin.com/aTPdGrQm
I have not seen this before, perms work just fine but just the reloading caused this to pop out.
Also it did not show up in server restart so it was one time thing on /permissions reload
hi, I just switched to bPermissions from GroupManager. I'm having a couple of issues and reading the docs didn't help me in this matter.
How can you check groups/prefixes of a user ingame? When using /setgroup player group it will always create a new group if non existant. Can this be turned off? Also it doesn't look like you can delete a group ingame. Is there a way to do a haspermission check via command?
Also /user cmeta prefix doesn't seem to work. I have to first do /p save, then /user cmeta prefix to remove the prefix and then reload with /p reload.
@benoitfouc
If you read the first two lines of your error you'll find the problem...!
[15:41:12] [Server thread/INFO]: [bPermissions] Enabling bPermissions v2.12 [15:41:12] [Server thread/WARN]: [bPermissions] Please check config.yml to enable offline-mode use [15:41:12] [Server thread/INFO]: [bPermissions] Waiting 30s to finish tasks... [15:41:12] [Server thread/INFO]: [bPermissions] All tasks finished after 0 seconds! [15:41:12] [Server thread/INFO]: [bPermissions] Saving worlds... [15:41:12] [Server thread/ERROR]: Error occurred while enabling bPermissions v2.12 (Is it up to date?) java.lang.NullPointerException at de.bananaco.bpermissions.imp.Permissions.onDisable(Permissions.java:66) [?:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:323) [spigot.jar:git-Spigot-e4d4710-e1ebe52] at de.bananaco.bpermissions.imp.Permissions.onEnable(Permissions.java:116) [?:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) [spigot.jar:git-Spigot-e4d4710-e1ebe52] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [spigot.jar:git-Spigot-e4d4710-e1ebe52] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot.jar:git-Spigot-e4d4710-e1ebe52] at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357) [spigot.jar:git-Spigot-e4d4710-e1ebe52] at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317) [spigot.jar:git-Spigot-e4d4710-e1ebe52] at net.minecraft.server.v1_8_R3.MinecraftServer.s(MinecraftServer.java:414) [spigot.jar:git-Spigot-e4d4710-e1ebe52] at net.minecraft.server.v1_8_R3.MinecraftServer.k(MinecraftServer.java:378) [spigot.jar:git-Spigot-e4d4710-e1ebe52] at net.minecraft.server.v1_8_R3.MinecraftServer.a(MinecraftServer.java:333) [spigot.jar:git-Spigot-e4d4710-e1ebe52] at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:263) [spigot.jar:git-Spigot-e4d4710-e1ebe52] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:525) [spigot.jar:git-Spigot-e4d4710-e1ebe52] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_71] [15:41:12] [Server thread/INFO]: WEPIF: bPermissions detected! Using bPermissions for permissions
@rymate1234
Looks like I can't use this permission plugin behind Bungeecord anymore. Under Spigot 1.9 default player permissions does not work if server is set to offline mode in server.properties and also in config.yml This puts me in the dead end. If I change allow-offline-mode to false, permissions will work but server throw error. Something is wrong because this worked under Spigot 1.8.8
http://pastebin.com/ENR82ZCf
EDIT: I loaded Beta17 later tonight and it looks like problem is fixed. I'm too tired to do further testing now but I will test tomorrow and confirm if problem is fixed. Thanks....
EDIT2: I started moving latest DEV version to all servers and YES, IT IS WORKING NOW! Thank you for Beta17. All good. i keep testing and reporting.
@semirotta
Users.yml won't update new players to the list
Intended behaviour, there's no need to save users in the users.yml when they haven't been modified
Now I removed everything started over again
What were the files before you started over again?
The users.yml won't generate the players anymore for some reason and when I add players to it myself, it requires this strange ass code which I have no idea how to get.
Users are no longer entered into the users.yml via their username, instead it's done via a UUID, which can be found by entering a players username into http:mcuuid.net/. This is because mojang changed how usernames work - you can now change them. The UUID of a player doesn't change, so using them in place of usernames in the users.yml is logical.
You seem surprised as to the change of behaviour of bPermissions. When was the last time you updated the plugin? Using UUIDs in place of usernames has been in place for over a year ago.
I don't understand why, but the bpermissions won't work as they should.
Users.yml won't update new players to the list
My moderators have access to gamemode (normal minecraft, bukkit and essentials permission added) and they cannot use /gamemode nor /gm or any other permission I give to them even though they are in the group "Moderator".
Now I removed everything started over again and it gave this when benguin (friend) joined in;
http://pastebin.com/j49YUxgw
Here are my users.yml and groups.yml
http://pastebin.com/tJsk66ct (groups)
http://pastebin.com/cMT85nTv (users)
EDIT1:
Ok now I managed to get my friend to the moderator group after I MANUALLY used commands to select him, switching him into moderator group.
The users.yml won't generate the players anymore for some reason and when I add players to it myself, it requires this strange ass code which I have no idea how to get.
@AKlarvanto
There's been a number of changes in the beta's which means that players who haven't had any modifications to them don't save to the users.yml. This is primarily due to performance, as having very large amounts of default players caused some lag issues with bPermissions
The "allow-offline-mode" option is intended behaviour.
It has been long time since I have updated and I recently moved from very old version to latest 2.12-DEV-15. Something has changed in settings but nothing is confusing in general including Global files and I think that is great addition to move them to separated folder. However, couple things are confusing. Is it normal not to have "default" players being listed or saved in "users.yml" even they have been in the server? Seems like only those who are not "default" will stay listed there without running /permissions cleanup command. Is that a new feature...? Other thing I need to know more about is online/offline mode. With old version, I run bPermissions on offline mode. With 2.12 default permissions will not work if "allow-offline-mode" is set "true" in config.yml. (Server behind Bungeecord). Is that something that needs to be fixed or normal behavior. Thank you for the answers...
@aegisjester
Yeah, that's exactly how global files work
@rymate1234
So if I understand correctly, instead of mirroring between worlds, I would have a single set of permissions in the "global" folder, then any alterations I would make in each individual world's folder?
@aegisjester
If you use global files, you can have a single set of groups.yml and users.yml in the global folder.
You can then use per world files to override permissions defined in the global files - for instance negating the /fly permission.
I just switched to bpermissions and so far I'm loving it. However, I have some ranks that have access to the fly command, I want to remove it in a couple worlds (the end, skyblock ect). Is it possible to strip this permission on a per-worlds basis with everything else mirrored?
@cricketcricketcricket
Noted, will fix in next beta
Next time pastebin it pls though
[22:37:30] [Server thread/ERROR]: Could not pass event PlayerMoveEvent to WorldGuard v6.1.2-SNAPSHOT;1652-c9b8e9f org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.PlayerConnection.a(PlayerConnection.java:568) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.PacketPlayInFlying.a(SourceFile:126) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.PacketPlayInFlying$PacketPlayInPosition.a(SourceFile:57) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [?:1.7.0_79] at java.util.concurrent.FutureTask.run(FutureTask.java:262) [?:1.7.0_79] at net.minecraft.server.v1_9_R1.SystemUtils.a(SourceFile:45) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.MinecraftServer.D(MinecraftServer.java:716) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.DedicatedServer.D(DedicatedServer.java:400) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.MinecraftServer.C(MinecraftServer.java:655) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.MinecraftServer.run(MinecraftServer.java:554) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at java.lang.Thread.run(Thread.java:745) [?:1.7.0_79] Caused by: com.google.common.util.concurrent.UncheckedExecutionException: java.util.ConcurrentModificationException at com.sk89q.worldguard.internal.guava.cache.LocalCache$Segment.get(LocalCache.java:2184) [?:?] at com.sk89q.worldguard.internal.guava.cache.LocalCache.get(LocalCache.java:3918) [?:?] at com.sk89q.worldguard.internal.guava.cache.LocalCache.getOrLoad(LocalCache.java:3922) [?:?] at com.sk89q.worldguard.internal.guava.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4805) [?:?] at com.sk89q.worldguard.internal.guava.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4811) [?:?] at com.sk89q.worldguard.session.SessionManager.hasBypass(SessionManager.java:101) [?:?] at com.sk89q.worldguard.session.handler.EntryFlag.onCrossBoundary(EntryFlag.java:48) [?:?] at com.sk89q.worldguard.session.Session.testMoveTo(Session.java:217) [?:?] at com.sk89q.worldguard.session.Session.testMoveTo(Session.java:177) [?:?] at com.sk89q.worldguard.bukkit.listener.PlayerMoveListener.onPlayerMove(PlayerMoveListener.java:79) [?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [?:1.7.0_79] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [?:1.7.0_79] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [?:1.7.0_79] at java.lang.reflect.Method.invoke(Method.java:606) [?:1.7.0_79] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] ... 15 more Caused by: java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:922) [?:1.7.0_79] at java.util.HashMap$KeyIterator.next(HashMap.java:956) [?:1.7.0_79] at de.bananaco.bpermissions.api.CalculableMeta.calculateEffectiveMeta(CalculableMeta.java:36) [?:?] at de.bananaco.bpermissions.api.CalculableMeta.calculateEffectiveMeta(CalculableMeta.java:33) [?:?] at de.bananaco.bpermissions.api.CalculableMeta.calculateEffectiveMeta(CalculableMeta.java:33) [?:?] at de.bananaco.bpermissions.api.MapCalculable.calculateMappedPermissions(MapCalculable.java:65) [?:?] at de.bananaco.bpermissions.api.Calculable.calculateEffectivePermissions(Calculable.java:65) [?:?] at de.bananaco.bpermissions.api.Calculable.getEffectivePermissions(Calculable.java:99) [?:?] at de.bananaco.bpermissions.api.MapCalculable.calculateMappedPermissions(MapCalculable.java:61) [?:?] at de.bananaco.bpermissions.api.Calculable.calculateEffectivePermissions(Calculable.java:65) [?:?] at de.bananaco.bpermissions.api.Calculable.getEffectivePermissions(Calculable.java:99) [?:?] at de.bananaco.bpermissions.api.MapCalculable.calculateMappedPermissions(MapCalculable.java:61) [?:?] at de.bananaco.bpermissions.api.Calculable.calculateEffectivePermissions(Calculable.java:65) [?:?] at de.bananaco.bpermissions.api.Calculable.getEffectivePermissions(Calculable.java:99) [?:?] at de.bananaco.bpermissions.api.MapCalculable.calculateMappedPermissions(MapCalculable.java:61) [?:?] at de.bananaco.bpermissions.api.Calculable.calculateEffectivePermissions(Calculable.java:65) [?:?] at de.bananaco.bpermissions.api.Calculable.getEffectivePermissions(Calculable.java:99) [?:?] at de.bananaco.bpermissions.api.MapCalculable.calculateMappedPermissions(MapCalculable.java:61) [?:?] at de.bananaco.bpermissions.api.MapCalculable.getMappedPermissions(MapCalculable.java:39) [?:?] at de.bananaco.bpermissions.api.CalculableWrapper.hasPermission(CalculableWrapper.java:21) [?:?] at de.bananaco.bpermissions.api.ApiLayer.hasPermission(ApiLayer.java:380) [?:?] at de.bananaco.bpermissions.api.ApiLayer.hasPermission(ApiLayer.java:94) [?:?] at com.sk89q.wepif.bPermissionsResolver.hasPermission(bPermissionsResolver.java:63) [?:?] at com.sk89q.wepif.bPermissionsResolver.hasPermission(bPermissionsResolver.java:88) [?:?] at com.sk89q.wepif.PermissionsResolverManager.hasPermission(PermissionsResolverManager.java:173) [?:?] at com.sk89q.worldguard.bukkit.WorldGuardPlugin.hasPermission(WorldGuardPlugin.java:476) [?:?] at com.sk89q.worldguard.protection.GlobalRegionManager.hasBypass(GlobalRegionManager.java:122) [?:?] at com.sk89q.worldguard.session.SessionManager$1.load(SessionManager.java:59) [?:?] at com.sk89q.worldguard.session.SessionManager$1.load(SessionManager.java:56) [?:?] at com.sk89q.worldguard.internal.guava.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3508) [?:?] at com.sk89q.worldguard.internal.guava.cache.LocalCache$Segment.loadSync(LocalCache.java:2300) [?:?] at com.sk89q.worldguard.internal.guava.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2263) [?:?] at com.sk89q.worldguard.internal.guava.cache.LocalCache$Segment.get(LocalCache.java:2178) [?:?] at com.sk89q.worldguard.internal.guava.cache.LocalCache.get(LocalCache.java:3918) [?:?] at com.sk89q.worldguard.internal.guava.cache.LocalCache.getOrLoad(LocalCache.java:3922) [?:?] at com.sk89q.worldguard.internal.guava.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4805) [?:?] at com.sk89q.worldguard.internal.guava.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4811) [?:?] at com.sk89q.worldguard.session.SessionManager.hasBypass(SessionManager.java:101) [?:?] at com.sk89q.worldguard.session.handler.EntryFlag.onCrossBoundary(EntryFlag.java:48) [?:?] at com.sk89q.worldguard.session.Session.testMoveTo(Session.java:217) [?:?] at com.sk89q.worldguard.session.Session.testMoveTo(Session.java:177) [?:?] at com.sk89q.worldguard.bukkit.listener.PlayerMoveListener.onPlayerMove(PlayerMoveListener.java:79) [?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [?:1.7.0_79] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [?:1.7.0_79] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [?:1.7.0_79] at java.lang.reflect.Method.invoke(Method.java:606) [?:1.7.0_79] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] ... 15 more [22:37:30] [Thread-12/INFO]: [bPermissions] Permissions for world world has loaded! [22:37:33] [Async Chat Thread - #1/INFO]: [[0;37;1mworld[0;37;1m][0;37;1m[[0;32;1mVeneCraft[0;37;1m] [0;37;1m[[0;37;1mworld[0;37;1m] [0;37;1m[[0;33;22mAejd[0;37;1m|[0;36;22mBeowulf[0;37;1m] [0;33;22mowner Leader Ukxd[0;31;1m[0;37;1m:[0;37;1m test[m [22:37:37] [Server thread/INFO]: Ukxd lost connection: Disconnected [22:37:37] [Server thread/INFO]: [Bank] Saving Bank for 7248cb69-af5d-4139-b5ce-e53bdd4e2023 to file [22:37:37] [Server thread/INFO]: [Bank] Saved Bank for 7248cb69-af5d-4139-b5ce-e53bdd4e2023 to file [22:37:37] [Server thread/INFO]: Ciao Ukxd, Dont be gone too long... [22:37:41] [User Authenticator #3/INFO]: UUID of player Ukxd is 7248cb69-af5d-4139-b5ce-e53bdd4e2023 [22:37:41] [Server thread/INFO]: [Bank] Loading Bank for 7248cb69-af5d-4139-b5ce-e53bdd4e2023 from file [22:37:41] [Server thread/INFO]: [Bank] Loaded Bank for 7248cb69-af5d-4139-b5ce-e53bdd4e2023 from file, took 0 ms [22:37:41] [Server thread/ERROR]: Could not pass event PlayerJoinEvent to Vault v1.5.6-b49 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.PlayerList.onPlayerJoin(PlayerList.java:332) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.PlayerList.a(PlayerList.java:158) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.LoginListener.b(LoginListener.java:144) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.LoginListener.c(LoginListener.java:54) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.NetworkManager.a(NetworkManager.java:232) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.ServerConnection.c(ServerConnection.java:141) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.MinecraftServer.D(MinecraftServer.java:815) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.DedicatedServer.D(DedicatedServer.java:400) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.MinecraftServer.C(MinecraftServer.java:655) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at net.minecraft.server.v1_9_R1.MinecraftServer.run(MinecraftServer.java:554) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] at java.lang.Thread.run(Thread.java:745) [?:1.7.0_79] Caused by: java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:922) [?:1.7.0_79] at java.util.HashMap$KeyIterator.next(HashMap.java:956) [?:1.7.0_79] at de.bananaco.bpermissions.api.CalculableMeta.calculateEffectiveMeta(CalculableMeta.java:36) [?:?] at de.bananaco.bpermissions.api.CalculableMeta.calculateEffectiveMeta(CalculableMeta.java:33) [?:?] at de.bananaco.bpermissions.api.CalculableMeta.calculateEffectiveMeta(CalculableMeta.java:33) [?:?] at de.bananaco.bpermissions.api.CalculableMeta.calculateEffectiveMeta(CalculableMeta.java:33) [?:?] at de.bananaco.bpermissions.api.MapCalculable.calculateMappedPermissions(MapCalculable.java:65) [?:?] at de.bananaco.bpermissions.api.MapCalculable.getMappedPermissions(MapCalculable.java:39) [?:?] at de.bananaco.bpermissions.api.CalculableWrapper.hasPermission(CalculableWrapper.java:21) [?:?] at de.bananaco.bpermissions.api.ApiLayer.hasPermission(ApiLayer.java:380) [?:?] at net.milkbowl.vault.permission.plugins.Permission_bPermissions2.playerHas(Permission_bPermissions2.java:119) [?:?] at net.milkbowl.vault.permission.plugins.Permission_bPermissions2.has(Permission_bPermissions2.java:95) [?:?] at net.milkbowl.vault.Vault$VaultListener.onPlayerJoin(Vault.java:584) [?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [?:1.7.0_79] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [?:1.7.0_79] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [?:1.7.0_79] at java.lang.reflect.Method.invoke(Method.java:606) [?:1.7.0_79] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) [spigot-1.9.jar:git-Spigot-7d15d07-c194444] ... 14 more