[ADMN/DEV] PermissionsBukkit v2.0 - Official Default Groups Plugin [1.5.2-R1.0]

Discussion in 'Archived: Plugin Releases' started by SpaceManiac, Jul 17, 2011.

  1. PermissionsBukkit - the Official Default Groups Plugin
    Current Version: v2.0
    Find PermissionsBukkit on BukkitDev!

    If you are getting a specific error or cannot determine what is wrong with your permissions file, filing a ticket on BukkitDev will make me much more likely to respond to you; general questions are best to ask in this thread or on the forums on BukkitDev.

    It's been a long time coming, but with the accomplishment of build 1000 Bukkit has finally accomplished a built-in Permissions system (codenamed Superperms). For more info on how they work, and how to integrate them with your plugin, see the official Permissions FAQ. Keep in mind that you should rarely, if ever, have to hook this plugin directly; instead keep things in the realm of checking player.hasPermission("yourplugin.node"). The FAQ thread has more info on how to use Superperms with things like chat prefixes/suffixes.

    Features:
    • Storage of users and groups in plugins/PermissionsBukkit/config.yml.
    • Both users and groups can be assigned individual permissions and parent groups to inherit permissions from.
    • Support for global and per-world permissions.
    • Reload configuration from file with out reloading the plugin.
    • Ability to check if a player has a specific permission node.
    • Ability to dump all permissions a player has and the plugins that set them.
    • Ability to print plugin, description, and default for a given permission node.
    • Ability to modify the permissions of groups and users and the groups of a user in-game.
    • Built-in antibuild via the "permissions.build" node (defaults to allowing anyone to build).
    • A minimalistic bridge from Permissions 3.0 to Superperms is available as a separate plugin, which does not depend on PermissionsBukkit.
    Command Usage:

    Show Spoiler
    PermissionsBukkit uses the command /permissions, with aliases /perms and /perm.

    /permissions reload - reload the configuration from disk.
    /permissions check <node> [player] - check if a player or the sender has a permission (any plugin).
    /permissions info <node> - prints information on a specific permission.
    /permissions dump [player] [page] - prints info about a player's (or the sender's) permissions.
    /permissions setrank <player> <group> - set a player to be in a group with per-group permissions.
    /permissions group - list group-related commands.
    /permissions group list - list all groups.
    /permissions group players <group> - list players in a group.
    /permissions group setperm <group> <[world:]node> [true|false] - set a permission on a group.
    /permissions group unsetperm <group> <[world:]node> - unset a permission on a group.
    /permissions player - list player-related commands.
    /permissions player groups <player> - list groups a player is in.
    /permissions player setgroup <player> <group,...> - set a player to be in only the given groups.
    /permissions player addgroup <player> <group> - add a player to a group.
    /permissions player removegroup <player> <group> - remove a player from a group.
    /permissions player setperm <player> <[world:]node> [true|false] - set a permission on a player.
    /permissions player unsetperm <player> <[world:]node> - unset a permission on a player.

    All commands have in-game help and are usable from the server console.

    Configuration:
    Show Spoiler
    A permission node is a string like 'permissions.build', usually starting with the name of the plugin. Refer to a plugin's documentation for what permissions it cares about. Each node should be followed by true to grant that permission or false to revoke it, as in 'permissions.build: true'. Some plugins provide permission nodes that map to a group of permissions - for example, PermissionsBukkit has 'permissions.*', which automatically grants permissions for all PermissionsBukkit commands. You can also specify false for permissions of this type.

    Users inherit permissions from the groups they are a part of. If a user is not specified here, or does not have a 'groups' node, they will be in the group 'default'. Permissions for individual users may also be specified by using a 'permissions' node with a list of permission nodes, which will override their group permissions. World permissions may be assigned to users with a 'worlds:' entry.

    Groups can be assigned to players and all their permissions will also be assigned to those players. Groups can also inherit permissions from other groups. Like user permissions, groups may override the permissions of their parent group(s). Unlike users, groups do NOT automatically inherit from default. World permissions may be assigned to groups with a 'worlds:' entry.

    The cannot-build message is configurable. If it is left blank, no message will be displayed to the player if PermissionsBukkit prevents them from building, digging, or interacting with a block. Use '&' characters to signify color codes.

    An example configuration file might look like this:
    Code:
    users:
        ConspiracyWizard:
            permissions:
                permissions.example: true
            groups:
            - admin
    groups:
        default:
            permissions:
                permissions.build: false
        admin:
            permissions:
                permissions.*: true
            inheritance:
            - user
        user:
            permissions:
                permissions.build: true
            worlds:
                creative:
                    coolplugin.item: true
            inheritance:
            - default
    messages:
        build: '&cYou do not have permission to build here.'
    

    Permissions:
    Show Spoiler
    PermissionsBukkit checks for the following permission nodes:
    • permissions.build - Allows a player to build. Defaults to true.
    • permissions.help - Allows viewing of usage for /permissions.
    • permissions.reload - Allows use of /permissions reload.
    • permissions.check - Allows use of /permissions reload.
    • permissions.info - Allows use of /permissions reload.
    • permissions.dump - Allows use of /permissions reload.
    • permissions.group.help - Allows viewing of usage for /permissions group.
    • permissions.group.list - Allows use of /permissions group list.
    • permissions.group.players - Allows use of /permissions group players.
    • permissions.group.setperm - Allows use of /permissions group setperm.
    • permissions.group.unsetperm - Allows use of /permissions group unsetperm.
    • permissions.player.help - Allows viewing of usage for /permissions player
    • permissions.player.groups - Allows use of /permissions player groups.
    • permissions.player.setgroup - Allows use of /permissions player setgroup.
    • permissions.player.addgroup - Allows use of /permissions player addgroup.
    • permissions.player.removegroup - Allows use of /permissions player removegroup.
    • permissions.player.setperm - Allows use of /permissions player addgroup.
    • permissions.player.unsetperm - Allows use of /permissions player removegroup.
    Also, the following parent nodes are provided for convenience:

    • permissions.* - Maps to permissions.help, .reload, .check, .info, .dump, and to permissions.group.* and permissions.player.*. Defaults to op.
    • permissions.group.* - Maps to permissions.group.help, .list, .players, .setperm, and .unsetperm.
    • permissions.player.* - Maps to permissions.player.help, .groups, .setgroup, .addgroup, .removegroup, .setperm, and .unsetperm.


    Frequently Asked Questions:
    1. Where are my * nodes? (open)
    Bukkit's Superperms has no built-in concept of a global '*' node that automatically gives all permissions, which is intentional - a player can instead be given all permissions by being given 'op' status (that is, listed in ops.txt). Additionally, individual plugins define a parent node (which could be 'pluginname.*' or 'pluginname.all' or anything else) which maps to whatever subpermissions in that plugin the author desires.

    An example is PermissionsBukkit, which provides three such permissions: 'permissions.group.*' for all /permissions group commands, 'permissions.player.*' for all /permissions player commands, and'permissions.*' for all /permissions commands (including permissions.group.* and permissions.player.*).

    If you are using SuperpermsBridge, you can do something similar to '*' nodes for plugins which use Permissions 2.7/3.1 - see the next FAQ for more information.
    2. How do I use SuperpermsBridge? (open)
    SuperpermsBridge is kind of like FakePermissions for GroupManager or PermissionsBridge for PermissionsEx. Once it's installed, it pretends to be the Permissions plugin and converts any plugins that use Permissions 2.7 or Permissions 3.1 to use Superperms instead.

    You can have PermissionsBukkit without SuperpermsBridge or SuperpermsBridge without PermissionsBukkit if you like, but both of these are limited in functionality. If you install SuperpermsBridge without PermissionsBukkit you will not be able to make use of PermissionsBukkit's groups feature or admin commands, and if you install PermissionsBukkit without SuperpermsBridge, plugins that have not updated to use Superperms directly will not function.

    For plugins that use Permissions 2.7/3.1, you can use the special node 'superpermbridge.*' to give the equivalent of what used to be the '*' node for plugins that do not use Superperms directly. If you don't want to give the * node, you can also use the node 'superpermbridge.pluginname' to do the equivalent of what used to be the 'pluginname.*' node. Once again, these only apply to plugins that SuperpermsBridge handles and not to plugins using Superperms directly.
    3. How do I use the root permissions.yml? (open)
    The file 'permissions.yml' in the root of your server can be used to set up custom parent permissions. Parent permissions are a single node that, when given to a player or group, automatically give all their children node. Here's a simple example:
    Code:
    server.basics:
        children:
            commandbook.motd: true
            commandbook.say: true
            commandbook.say.me: true
            commandbook.time: true
    
    Now, if you give a player the node 'server.basics', they automatically get all the nodes listed here. Children may also say 'false' instead of 'true', in which case giving the parent will remove the child instead of giving it.

    You can also specify a description if you like, which can be used by plugins to provide information on your node (such as PermissionsBukkit's /perm info command). If you want, you can also provide a default, which can be one of "true", "false", "op", or "notop". CraftBukkit will automatically assign everyone, no one (default), ops, or non-ops the children permissions based on the specified default. Without any plugin like PermissionsBukkit, you can use this defaults system as a limited way to assign people permissions. Here's a more complex example:
    Code:
    server.basics:
        description: Basic permissions for My Cool Server.
        default: true
        children:
            commandbook.motd: true
            commandbook.say: true
            commandbook.say.me: true
            commandbook.time: true
    server.admin:
        description: Admin permissions for My Cool Server.
        default: op
        children:
            commandbook.broadcast: true
            commandbook.teleport: true
            commandbook.kick: true
            commandbook.ban: true
    
    You can also define permissions without children, but this is of limited usefulness in permissions.yml (though is important in plugin.yml; see question #6)
    4. How do I switch from (other Permissions plugin)? (open)
    Depends on the Permissions plugin! If you were using PEX's YAML backend, I have a converter done and available on the PermissionsBukkit Tools page. Also available on the tools page is an automatic converter for Essentials GroupManager users.yml and groups.yml files. Automatic converters for Permissions 2.7 and 3.x are on their way, but in the meantime you can still convert your configurations manually.
    5. Where are prefixes and suffixes (or option nodes)? (open)
    Bukkit Superperms has no built-in prefix/suffix settings or non-boolean permission nodes, so individual chat plugins will have to start supporting Superperms in order to make use of non-Permissions-plugin based prefixes and suffixes. Herochat, iChat, and Simple Suffix are all aware of the Superperms update, but in the meantime you can use mChat, which already supports Superperms.

    Once you install mChat and configure the mchat.prefix, mchat.suffix, and mchat.group names in its configuration file (see the example), use PermissionsBukkit to give players or groups the permissions "mchat.prefix.admin", replacing "admin" with whatever node you configured. For example, with an mchat configuration that looks similar to this:
    Code:
    da-name-format: '+prefix+name&e'
    date-format: HH:mm:ss
    message-format: '+prefix+name&f: +message'
    mchat:
        prefix:
            admin: '&4DtK [SO] &7 '
            sadmin: '&9DtK [SA] &7 '
            jadmin: '&aDtK [JA] &7  '
            member: '&cDtK [M] &7 '
    
    You can assign players or groups the mchat.prefix.admin node to get the "SO" prefix, mchat.prefix.sadmin to get the "SA" prefix, and so on.
    6. (Coders) How do I set up my plugin.yml? (open)
    Take a look at this post in Dinnerbone's FAQ for an example. This is a lot like the setup of permissions.yml (see above), but you can also define non-parent permissions (just include description and default and leave out children).
    7. Is PermissionsBukkit outdated? (open)
    No! PermissionsBukkit 2.0 was last updated for 1.3.1-R2.0, is verified to work on 1.4.7-R1.0, and is unlikely to break on future releases.

    Downloads:
    Current Version:

    PermissionsBukkit v2.0 (jar) (details)
    Old Versions:
    PermissionsBukkit v1.6 (jar) (details)

    [​IMG]

    Changelog:

    Friday 7 September 2012 (2.0)
    • Fixed a case-sensitivity issue with setting per-world permissions that could cause some permissions to fail to apply.
    • Added /perm setrank <player> <group> subcommand (alias rank) with per-group permissions (permissions.setrank and permissions.setrank.<group>)
    • Added plugin metrics via http://mcstats.org/plugin/PermissionsBukkitMCStats (disableable in plugins/PluginMetrics/config.yml)
    Wednesday 29 February 2012 (1.6)
    • Fixed some massive issues that were caused due to having uploaded a buggy, in-development version instead of 1.5.
    • Note: If your configuration was messed up as a result of this issue, the new build should gradually correct it as needed.
    Saturday 25 February 2012 (1.5b)
    • Revamped to be compatible with R5.
    • Fixed issues with permissions not carrying properly on world change.
    • Many internal improvements for performance and stability.
    • SuperpermsBridge: in honor of R5 removing deprecated code, SuperpermsBridge is officially gone!
    Monday 18 July 2011 (1.1/1.2)
    • Fix BukkitContrib incompatibility issues.
    • Improved the output of the /perm check command.
    • Fixed issues when 'users:' is not specified in the config file.
    • Fixed the /permissions reload command.
    • SuperpermsBridge: improve wildcard handling; in addition to 'superpermbridge.*' and 'superpermbridge.pluginname', now supported are 'superpermbridge.plugin.*', 'superpermbridge.plugin.subnode.*', and so on.
    Monday 18 July 2011 (1.0/1.1)
    • SuperpermsBridge: adding the special 'superpermbridge.*' and 'superpermbridge.pluginname' nodes (see #2 in the FAQ for details).
    Sunday 17 July 2011 (1.0/1.0)

    • Initial release of PermissionsBukkit v1.0 and SuperpermsBridge v1.0.
     
    madmac, Gesundheit, tripleX and 23 others like this.
  2. Offline

    JoelDaMole789

    So, what? I just install both of these jars, and delete Permissions 3.x?
     
  3. No problem, and thanks.

    You can put the nodes for whatever plugin you want in both the permissions section and the world-specific permissions section.

    Can't wait to see HeroChat updated!

    Be sure to make backups first (just in case), and you will need to convert your Permissions 3.x config to PermissionsBukkit's format (I am working on an automated converter - depending on the size of your users and groups files, you may want to wait), but that's the gist of it. A select few plugins (like iChat and HeroChat) may have issues due to the Permissions 3.x API not being fully supported, but you should be mostly good.

    In other news, I have bumped SuperpermsBridge to 1.1, adding the new 'superpermsbridge.*' and 'superpermsbridge.pluginname' (with any plugin name) nodes that act like '*' and 'pluginname.*' nodes for plugins that SuperpermsBridge is bridging (not for plugins using Superperms directly), which should fix some of the issues @mrgreaper was having. I have also added a detailed five-question FAQ on various aspects of Superperms to the first post, which should help people new to Superperms get acquainted with it.
     
  4. Offline

    HunterAP

    I might have overlooked it, but do world permissions, or global permissions get precedence?
    I'm asking because I have several worlds on my server for difference purposes... I need to know if I can set a global permission, then override it for a world, or if I need to define the permissions for each world. (or set up permission sets in the root folder config)
     
  5. World permissions get precedence.

    In other news, nearly done with the GM converter.
     
  6. Offline

    HunterAP

    This is strange... I'm getting an error: "Cannot pass event PLAYER_QUIT to permissions.bukkit."
    Code:
    02:20:34 [SEVERE] Could not pass event PLAYER_QUIT to PermissionsBukkit
    java.lang.IllegalArgumentException: Attachment cannot be null
            at org.bukkit.permissions.PermissibleBase.removeAttachment(PermissibleBase.java:134)
            at org.bukkitcontrib.player.ContribCraftPlayer.removeAttachment(ContribCraftPlayer.java:140)
            at com.platymuus.bukkit.permissions.PermissionsPlugin.unregisterPlayer(PermissionsPlugin.java:137)
            at com.platymuus.bukkit.permissions.PlayerListener.onPlayerQuit(PlayerListener.java:24)
            at org.bukkit.plugin.java.JavaPluginLoader$2.execute(JavaPluginLoader.java:251)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:332)
            at net.minecraft.server.ServerConfigurationManager.disconnect(ServerConfigurationManager.java:146)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:608)
            at net.minecraft.server.NetworkManager.b(NetworkManager.java:231)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:85)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:451)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
     
  7. If you're running BukkitContrib, make sure you've updated to the latest version. Otherwise, get back to me with a list of plugins.
     
  8. Offline

    HunterAP

    I am running BukkitContrib, but I'm running the 0.1.6 alpha.
    I'll do some experimenting in the morning to try to determine which plugin(s) are causing the issue and get back to you.
     
  9. If you remove BukkitContrib does it still fail? Afforess said he'd fixed this issue, but I hadn't tested it myself.

    In other news, a GroupManager converter is now up on the PermissionsBukkit tools page. Keep the bug reports coming, people!
     
  10. Offline

    XeonDead

    I am getting the same error as HunterAP has, but without BukkitContrib. Also, where is converter for Permissions 3.*?
     
  11. Could you give a plugin list? Permissions 2.7 and 3.x converters are on their way.
     
  12. Offline

    TheLimaBeanman

    So Can i clarify that BukkitPermissions is now the official permissions and has all the 'permission' from the admins here? also BukkitPermissions is the Permissions and the SuperPermBridge is the converter to make the bukkitpermissions work?

    Also is there any more Official plugins by bukkit?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 17, 2016
  13. Offline

    XeonDead

    My plugin list:
    AntiXRay, AuthDB, AutoPlant, AutoReplace, BigBrother, bLift, bukkit-permissions, bukkit-permissions-bridge, ChestHarvester, ChunkRegen, CommandBook, CommandHelper, CraftBook, CraftBookCircuits, CraftBookMechanisms, CraftBookVehicles, CraftBukkitUpToDate, DCReason, DeathMessagePlugin, DreamLand, dynmap, ElectricFence, Giant Trees, gravelclay1.3, Help, iChat, iConomy, Jail, Jobs, KiwiAdmin, LazyRoad, LogBlockQuestioner, LWC, MagicCarpet, mcMMO, MineBackup, MinecraftRKitPlugin, Minequery, MultiHome, MyWarp, NarrowtuxLib, NightLight, NoAFK, NoCheat, NSCommand, nSpleef, OnlineUsers, PlgLogCmd, PlugMan, pvparena, pvptoggle, Questioner, runecraft, SafeStop, Showcase, SimpleHat, SpyerAdmin, SpyerAdminCommands, SpyerFun, Towny, Vampire, WelcomeMessage, WorldEdit, WorldGuard
     
  14. It's an official 'default' plugin. Due to the way the permissions API is set up, anybody else could make a plugin which takes the place of PermissionsBukkit, but this is basically the standard. This plugin was developed alongside the Superperms API and was based heavily on feedback from Dinnerbone and EvilSeph.

    There's a few, but they're not quite as essential as PermissionsBukkit is right now - ChatBukkit, ScrapBukkit, and HomeBukkit all have more widely used quote-unquote "unofficial" counterparts.

    Thanks. I'll look into this when I can.
     
  15. Offline

    Donny

    Looking forward to MySQL support.
     
  16. Offline

    i ThRoW sToNeZx

    When moving a player to a different group, would we have to do "/permissions player addgroup <player> <group>" AND
    "/permissions player removegroup <player> <group>" ? If it IS like that, do you think you could make it only a single command for that, Please?
     
  17. Try /permissions player setgroup <player> <group>.

    Anyways I'm out for the night, will fix up Permissions 2.7/3.x converters and answer remaining queries in the morning.
     
  18. Offline

    i ThRoW sToNeZx

    Okay, thanks. I'm, using Permissions 3.1.6, so I'm waiting for the converter :)
     
  19. Offline

    Dirnol

    I am having a problem with this plugin. I made myself the default rank, and that made it so I was unable to access any of the permissions commands, however i was still able to use any command from any other plugin, even though I did not configure it that way.

    Here's my config file:
    Code:
    users:
        Dirnol:
            permissions:
            groups:
            - default
        KillerSnowman:
            permissions:
            groups:
            - Admin
        XxEnr4gedHoboxX:
            permissions:
            groups:
            - Architect
        ARowdyIrishMan:
            permissions:
            groups:
            - Architect
        olryanlo:
            permissions:
            groups:
            - Architect
    groups:
        default:
            permissions:
                permissions.build: true
                essentials.help: true
                essentials.helpop: true
                essentials.rules: true
                essentials.list: true
                essentials.motd: true
                multiverse.tp: true
                craftbook.mech.*: true
            worlds:
                freebuild:
                    essentials.item: true
                    nocheat.*: true
                    essentials.clearinventory: true
                    magiccarpet.mc: true
                    magiccarpet.ml: true
        Architect:
            permissions:
            worlds:
                Dew:
                    essentials.item: true
                    nocheat.*: true
                    essentials.clearinventory: true
                    magiccarpet.mc: true
                    magiccarpet.ml: true
            inheritance:
            - default
        Jailed:
            permissions:
                permissions.build: false
        Admin:
            permissions:
                permissions.*: true
                essentials.*: true
                nocheat.*: true
                armorslots.*: true
                craftbook.*: true
                magiccarpet.mc: true
                magiccarpet.ml: true
                monsterbox.*: true
                multiverse.*: true
                SpongeRestore.all: true
                worldedit.*: true
            inheritance:
            - default
    messages:
        build: '&cYou do not have permission to build here.'
     
  20. Sexy. Any chance of CraftBukkitUpToDate support? http://forums.bukkit.org/threads/5026/ for details on supported formats to provide the latest version to it.

    Edit: Sorry if it's been asked before, but how would "minecartmania.signs.*" translate? Would "superpermbridge.minecartmania.signs" work for example? (Ie, grant minecartmania.signs.* without granting minecartmania.*)

    Bah, enough editing, new post time.

    Code:
    >permissions group players admin
    21:46:58 [INFO] Users in admin (2): NVX, Vektah
    >permissions player groups NVX
    21:47:09 [INFO] Player nvx is in groups (1): admin
    >permissions dump nvx
    21:47:16 [INFO] Player nvx not found.
    >permissions dump NVX
    21:47:18 [INFO] Player NVX not found.
    >
    Not sure if this is a bug it not, but I noticed this from the console (I wasn't in-game at the time - does it only work when the player is in-game?). Might be worth mentioning in the /permissions mini-help thingie. "prints info about a player's (or the sender's) permissions." -> "prints info about a connected player's (or the sender's) permissions." for instance.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 17, 2016
  21. Something like a /promote command woudl be very usefull, cause i have a "guest" group as default without build rights on my server. And typing everytime this long command to change from guest to default isnt that what i want.
     
  22. Offline

    Parideis

    No Prefix and Suffix?
     
  23. Offline

    Realtek1

    It doesnt support Prefix and Suffix I am trying to get my server to work fir Prefixes ans Sufixes using mChat.
    SpaceManiacs I will go on the mChat thread and try to ask for info.!
     
  24. Offline

    Laguna

    I get the following error when loading the plugin. I have the latest version of Bukkit what happens?
    [​IMG]
     
  25. Offline

    mrgreaper

    this post was extremely useful, suggest adding it to the faq as prefix surfix has become linked to permissions for many of us admins :)

    just spent 2 hours re writing the config.yml lol! if you bring out a converter for permissions 3.1 in the next 20 minutes i reserve the right to scream so loud (at home not on the forum) that the whole of norwich will hear it!
     
  26. Offline

    ChoclatePancake

    Same thing here
    [​IMG]
     
  27. Offline

    br0ad456

    will the "*" node ever be added thats the thing putting me off switch over to this :/
     
  28. Offline

    Urahara72

    Code:
    12:09:45 [INFO] Urahara721 [/192.168.1.1:49884] logged in with entity id 275 at ([world] 74.5, 69.0, 17.8125)
    12:09:45 [SEVERE] java.lang.NoSuchFieldException: perm
    12:09:45 [SEVERE]     at java.lang.Class.getDeclaredField(Class.java:1882)
    12:09:45 [SEVERE]     at org.bukkitcontrib.player.ContribCraftPlayer.<init>(ContribCraftPlayer.java:87)
    12:09:45 [SEVERE]     at org.bukkitcontrib.player.ContribCraftPlayer.updateBukkitEntity(ContribCraftPlayer.java:587)
    12:09:45 [SEVERE]     at org.bukkitcontrib.ContribPlayerListener.onPlayerJoin(ContribPlayerListener.java:27)
    12:09:45 [SEVERE]     at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:244)
    12:09:45 [SEVERE]     at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
    12:09:45 [SEVERE]     at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:321)
    12:09:45 [SEVERE]     at net.minecraft.server.ServerConfigurationManager.c(ServerConfigurationManager.java:124)
    12:09:45 [SEVERE]     at net.minecraft.server.NetLoginHandler.b(NetLoginHandler.java:97)
    12:09:45 [SEVERE]     at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:33)
    12:09:45 [SEVERE]     at net.minecraft.server.NetworkListenThread.a(SourceFile:91)
    12:09:45 [SEVERE]     at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:451)
    12:09:45 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
    12:09:45 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    12:10:53 [INFO] /50.23.30.168:59298 lost connection
    12:11:53 [SEVERE] java.lang.NoClassDefFoundError: org/bukkit/permissions/Permission
    12:11:53 [SEVERE]     at java.lang.Class.getDeclaredMethods0(Native Method)
    12:11:53 [SEVERE]     at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
    12:11:53 [SEVERE]     at java.lang.Class.getMethod0(Class.java:2670)
    12:11:53 [SEVERE]     at java.lang.Class.getMethod(Class.java:1603)
    12:11:53 [SEVERE]     at org.bukkit.craftbukkit.command.ServerCommandListener.getName(ServerCommandListener.java:29)
    12:11:53 [SEVERE]     at net.minecraft.server.ConsoleCommandHandler.handle(ConsoleCommandHandler.java:25)
    12:11:53 [SEVERE]     at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:307)
    12:11:53 [SEVERE]     at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:711)
    12:11:53 [SEVERE]     at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:676)
    12:11:53 [SEVERE]     at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:669)
    12:11:53 [SEVERE]     at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:33)
    12:11:53 [SEVERE]     at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    12:11:53 [SEVERE]     at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:84)
    12:11:53 [SEVERE]     at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
    12:11:53 [SEVERE]     at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:451)
    12:11:53 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
    12:11:53 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    12:11:53 [SEVERE] Caused by: java.lang.ClassNotFoundException: org.bukkit.permissions.Permission
    12:11:53 [SEVERE]     at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    12:11:53 [SEVERE]     at java.security.AccessController.doPrivileged(Native Method)
    12:11:53 [SEVERE]     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    12:11:53 [SEVERE]     at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:36)
    12:11:53 [SEVERE]     at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:24)
    12:11:53 [SEVERE]     at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    12:11:53 [SEVERE]     at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    12:11:53 [SEVERE]     ... 17 more
    12:11:53 [SEVERE] Unexpected exception
    java.lang.NoClassDefFoundError: org/bukkit/permissions/Permission
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
        at java.lang.Class.getMethod0(Class.java:2670)
        at java.lang.Class.getMethod(Class.java:1603)
        at org.bukkit.craftbukkit.command.ServerCommandListener.getName(ServerCommandListener.java:29)
        at net.minecraft.server.ConsoleCommandHandler.handle(ConsoleCommandHandler.java:25)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:307)
        at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:711)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:676)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:669)
        at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:33)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:84)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:451)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.ClassNotFoundException: org.bukkit.permissions.Permission
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:36)
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:24)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        ... 17 more
    I ran my groupmanager yml's through your converter and now I get a menagerie of errors.
    What did I do wrong and how do I fix it?
     
  29. Offline

    7eggert

    I miss the possibility of roles.

    E.g.: Using roles, I can be admin, builder and/or user. If I'm user, I have no special rights except changing to admin or builder role. If I'm admin, I can kick users around, and if I'm builder, I can create structures using worldedit. I could also be both, an admin and a builder, so I can copy my user's structures. As long as I'm not admin, player("7eggert").hasPermission("foo.kick") == false, but after "/chrole admin pass *****", it should return true.
     
  30. Offline

    Meiun

    so what makes this special?
    from what i understand any of the currently existing permissions plugins can, and likely will have to, access the bukkit permissions system in the future.
     
  31. I'll look into CraftBukkitUpToDate, but in the meantime I'm setting up PermissionsBukkit and SuperpermsBridge to work with an up-and-coming updating solution known as Bukget, which fixes many of CraftBukkitUpToDate's problems.

    SuperpermBridge can only handle 'superpermbridge.plugin' -> 'plugin.*' mapping right now, but I can fix more detailed wildcard permissions in a later version if it becomes a major issue.

    Yeah, not a bug - the dump command (and the check command) only works for online players. I will clear up the documentation.

    I will look into a shorter command system, but in the meantime '/perm player setgroup Bob user' should be okay. You can also look into a plugin like CommandHelper to do aliasing for you.

    Make absolute sure you're running the current Recommended Build (1000) or newer.

    Alright, good idea. Heh :)

    Take a look at the first FAQ. Due to the way Superperms as structured, there can't be a 100% global '*' node, but if you use SuperpermsBridge you can grant players the 'superpermbridge.*' node which will act like '*' for bridged plugins.

    Ah, essentially a way to allow you to safely demote yourself to user, then promote yourself back to admin by giving a password? I will look into it, but this is also within the scope of something an external plugin could do.

    The biggest thing is that PermissionsBukkit supports them now. GroupManager has been unmaintained for quite a while but still works because it uses APIs that rarely break, but it is unlikely to be updated to utilize Superperms. I guess we'll have to wait and see how PEX and Permissions 3.x start using Superperms.

    Anyways, adding PermissionsBukkit and SuperpermsBridge to Bukget and then I'm going to do the Permissions 2.7/3.x converters.
     

Share This Page