Inactive [ADMN/DEV] Permissions 3.1.6 - The Plugin of Tomorrow [935]

Discussion in 'Inactive/Unsupported Plugins' started by rcjrrjcr, May 24, 2011.

Thread Status:
Not open for further replies.
  1. Offline


    Permissions 3.1.6 (Yeti)

    Latest Stable (3.1.6) : Full Zip | Main Jar Only | SQL Interface Jar Only

    Previous Versions:
    3.1.5 (JAR|SQL) | 3.1.4 (JAR|SQL) | 3.1.3 (JAR|SQL) | 3.1.2 (JAR|SQL) | 3.1.1 (JAR) | 3.1 (JAR) | More older versions

    Feel free to comment and give suggestions.


    • Revamp commands
    Known plugins that cause IllegalAccessError(s):

    • Help (not fixed yet)
    Temp Fix for IAEs (open)

    1. Open Help's JAR with 7zip.
    2. Find MANIFEST.MF (it can be in the root folder or in the META-INF folder, or both).
    3. Open the MANIFEST.MF file in a text editor
    4. Look for a line that starts with "Class-Path:".
    5. Delete "Permissions.jar" from that line.
    6. Save the manifest.
    7. 7zip will prompt you to save changes back into the archive. Accept.
    8. Restart server.

    Plugin Authors: How to hook into Permissions

    Due to @TheYeti being busy in RL for now, I have created a new thread for Permissions 3.x. TheYeti is still part of the Permissions team.

    Permissions... Reborn.
    This is a continuation of the work that was originally done by Nijikokun. All original credit goes to them as without their work this plugin would not have been possible. This plugin does not provide any commands or additional functionality beyond what is described in this post. That means that you need another plugin to provide colored names, chat prefixes, and op commands such as /give and /time.​

    The Permissions Team

    The team consists of myself @rcjrrjcr and @TheYeti currently with contributions from @Nijikokun as well on occasion. There are also several other members of the community who frequently assist with providing code changes, bug fixes, patches, support, feedback, and beta testing. Special thanks to @flames and the Dynmap & Wormhole X-Treme teams for the hosting of Permissions on their Jenkins server.

    What's new in 3.x?

    Taken from the GitHub page:
    1. In-game commands. For a long time, users have been pestering, nagging, demanding and/or screaming for an way to manage Permissions via commands. Now, in 3.0, in-game commands are available to manage permissions and groups.
    2. SQL storage. This allows web interfaces to manage Permissions by updating the SQL database Permissions uses.
    3. Promotion/demotion tracks. With a simple command, users can be promoted/demoted along a preconfigured track, allowing RP servers with ranks to promote the player along a class track and other possibilities.
    4. Multigroup.
    5. Weightage. Plugins are able to compare users via their weight, which is inherited from their groups. For example, SlapPlugin can check if Player A is higher-weighted than Player B when A tries to slap B (Not IRL, obviously).
    6. Improved world mirroring. Config files are now split into a group file and a user file. Also, by editing storageconfig.yml, you can configure the mirroring of entire worlds, or just its users/groups. You also do not have to create files for worlds that mirror another world. Also, two different worlds can use different storage types, like YAML and SQL.
    7. Global permissions. Instead of having to resort to cross-world group inheritance, now all worlds inherit groups and users from the global permissions file. Also, the inherited groups/users can be overridden via editing the specific world's file.
    Upgrading from 2.x to 3.x

    I have written a guide on GitHub. This demonstrates how to convert 2.x-style configs to 3.0. The YAML-to-SQL converter are still in testing, but it can be downloaded from here. It's written in Perl. @Zgred has created a web version of the script located here. @omgneeq is working on an Web UI for SQL databases (Sorry about the previous statement that he was making a converter.)​

    Install (open)
    For the admins

    In case you missed the link above, the Setup Guide on GitHub will help you quite a bit

    Samkio has updated his tutorial for P3:

    First thing that you will need to do is download the plugin. Place it in your plugins/ folder and unzip it. This should create the folder Permissions and a Permissions.jar file in your plugins folder. Next, go into Permissions/ and create a folder named the same as your world. So if your world name from is Foo you will need to create the folder plugins/Permissions/Foo. You MUST rename it to whatever your world's name is or it will not work.

    Note, if you have your server maps all saved into a single directory then the initial setup will be somewhat different. Say your maps are arranged in the main directory like so: bukkit/mapfolder/world1, bukkit/mapfolder/world2, etc. Then inside of the plugin/Permissions directory you will need to create a folder called mapfolder and inside of that put the directories containing users.yml and groups.yml in there.

    Next, you will need to go in and add yourself to the users, just replace the user that is in there with your name. Make any other modifications that you need to. While making modifications make sure that you do NOT use tabs. These will break the YAML format and cause issues. Instead, each indent should be four spaces. If you want people who aren't in the Admin group to be able to reload the permissions plugin you need to give them 'permissions.reload' permissions within the config file.

    Permissions gives server admins great control, mostly in-game reloading. More info about commands can be found here.

    FAQ (open)


    [Q] What is with the version numbers? I can't keep up, it seems like every time I look there is a new version!
    [A] I use the GNU versioning system for my version numbers. So what this means is the version number should be read as Major.Minor.Revision. So for version 2.5.2 this would mean it is the 2nd Major version, the 5th Minor release in this version, and the 2nd revision. I tend to release bug fixes and anything that doesn't add functionality or will not break things as revisions. So generally you should be safe with just watching the major & minor numbers and only getting the revision if it fixes a bug specific to you. Technically 2.5.2 should have been released as 2.6 as it did add functionality, but this was below even a minor change so I released it as a revision.

    [Q] I am getting an error that it can't pass BLOCK_PLACED or BLOCK _BREAK events to Permissions. Fix it!
    [A] That's not a question. The reason why it can't place these is probably because the syntax of your Permissions file is all whacked out, or it is a different world and you don't have a config file for that world.

    [Q] What am I suppose to name the config file?
    [A] You need to name it the same as your world. So if you look in at "level-name" you will see a world name there. Rename your config file to the same thing as that. Make sure you keep the .yml extension at the end.

    [Q] Permissions are broken. Why can no one use commands? Why am I not an admin?
    [A] First off, make sure that your formatting is correct. Look at the format that the default config file uses. Yours should look like that. Do NOT use tabs. Use 4 spaces (IE. " " <-- Four of those things.). Also, whichever group you give the permission '*' to, do not have that group inherit permissions from anyone else. That is called overloading and it will break things. Also, this.

    [Q] Which one am I suppose to download and unzip to install this?
    [A] Download the main package, not the JAR only. Unzip the ZIP file. The JAR only downloads are simply there for people who are UPGRADING and do not need the default config file.

    [Q] I have done all of this and this doesn't work! I'm going back to GroupManager!
    [A] Well, there is probably the problem. Make sure that you delete EssentialsGroupManager.jar and EssentialsGroupBridge.jar as these don't play well with Permissions and will cause headache.

    [Q] When are you going to add <blah> <feature/command> into this already? You suck! Do what I want NAU PL0X!
    [A] Feature requests should be posted on the GitHub tracker. Stupid suggestions like adding teleportation functionality and other less ludicrous stuff will be rejected.

    • 3.1.6
      • Major fixes.
      • Simplify tracks
    Changelog (open)

    • 3.1.5
      • Fix several minor bugs.
      • Autoconvert 2.x/GM format (only works if you split them into groups.yml and users.yml, but leave the rest untouched)
    • 3.1.4
      • Fix YAML locking bugs.
    • 3.1.3
      • Fix another SQL data and inheritance issue.
    • 3.1.2
      • Fix SQL data issues.
      • Added user/group name autocomplete
      • Separated SQL interface into separate plugin
    • 3.1.1
      • Fix prefix/suffix issues.
      • Added ON UPDATE CASCADE to the SQL foreign [/SIZE]
    • 3.1
      • Tons of fixes.
    • 3.0.6
      • Fix SQLite issues due to misimplementation of methods.
    • 3.0.5
      • Fix cache-related NPEs
      • Fixed quoted worlds (thanks again @Jeyge !)
    • 3.0.4
      • Fix LinkageError caused by ServiceManager not unloading the PermissionHandler class.
      • Added cache
      • Fix index not being incremented when promoting (thanks @Jeyge !)
    • 3.0.3
      • Fixed another getGroup bug.
    • 3.0.2
      • Fixed getGroup bug.
    • 3.0.1
      • Fixed some NPE bugs.
    • 3.0
      • Total overhaul of Permissions. Adds many new features (see What's new in 3.0?).
    • 2.7.4
      • Added overload of has() and permissions() for plugin devs
    • 2.7.3
      • Fixed negate node add/remove bug.
    • 2.7.2
      • Fix for small subtle bug introduced in last minor version.
    • 2.7.1
      • Commit by DThielke to fix several bugs with programmatic modifications of user permissions.
    • 2.7
      • Further commits by rcjrrjcr
        • Removed negatedNode checks
        • Temp fix for NULL issue
        • WorldConfigurationModification to save only modified configs
        • Fix for cache problems

    Credits (open)

    Nijikokun - Without their original work this plugin would not be possible.​
    All of the members of the community that regularly provide support in this thread for Permissions​
    Rigby, Kainzo, DThielke, GoMySQL, sk89q, RightLegRed - For hanging out with me in IRC, tons of testing, and pushing me to improve on the code constantly and make changes to make this plugin constantly better and better, and in general being entertaining.​
    Everyone else on here and in IRC who provides support, feedback, assistance, plugins that have continued to support and integrate this, and in general makes my life a bit easier, THANK YOU!​

    I would like to thank Joy , jamesg and omgneeq for staying in #permissions for long periods of time to test out 3.0, and help me find many coding mistakes I made, patiently waiting for the next build while I fixed the bugs. I appreciate SvenBrnn 's and GoMySQL(Geoff Winans on this forum) 's help that allow me to design and code the SQL interface, and the HeroCraft coding team for providing support and some priceless IRC quotes (Dgco). Also, I would like to thank Lycano for helping me in many different aspects. Last but not least, I would like to thank Nijikokun and TheYeti for developing P2, which was one of my core plugins when I was still a 14-year-old server admin that didn't understand Java, and was the base for 3.0. Without these people, 3.0 would never be possible.​

    If after reading through all of that you are still having issues do one of two things. If it is a provable bug, and you have things like screenshots or copies of startup, steps to reproduce, your craftbukkit build and the version this is running along with your config files then submit the bug on the issue tracker. If it is general help or support you are needing then post a reply to this thread and someone will try to help you.

    Old thread: Permissions v2.7.4
  2. Offline


    someone wrote an explanation on how to do it back on pg 71 of this thread
    I'm not sure if he figured out how to do it the way it's meant to be done or if he just made it work for his particular situation. either way, it's something.
  3. Offline


    I saw that post and it made not to much sense to me, also he added *'s to the inheritance on every node and made admins inherit from others when admins alreay have every perm there is, so honestly that felt way to messy.

    Atm I still just let mcma create the global files, copy them to world and world_nether and rename them to groups and users and everything works.

    It just pisses me off to no end that they made that MASSIVELY IMPORTANT feature and then did no documentation on how to use it even tho its been WEEKS since the release and 100's of posts asking about it.
  4. Offline


    Has anyone had the problem where when new users join the server, they are not placed in any group in the users.yml file? As in they are "in" the default group on the server, but have no group listed in users.yml under their name.
  5. Offline


    Update: I've been suspecting this on and off since 3.1.5b was rolled out but it actually looks like the global files "just work" as long as you have a users/groups file inside the world folder with some existing valid stuff.

    I just added a new node to one of my groups in the global and it just worked right out of the gate.. the files in the world folder is practically identical except for this one node thats extra in the globalgroups.
  6. Offline


    i got one question ...
    can i change player groups while server is online ?

    thx ...
  7. Offline


    any news on the update of the web app for converting a 2.X yml file into 3.x sql?
  8. Offline


    I see your refering to my post.

    The * inheritance is what propagates the global groups automatically to all world files and was mentioned by the developer. think of the star as (globalgroupsfile , membergroup)

    It tells the file not to look in it itself for inheritance which it does normally (- Group) so with the * it looks on the global file for it instead.

    So you are both inheriting from the local file (-group) and the global groups file (-*,group)

    With global users the *,group as there group means the * is auto propagates the group over all worlds hence the * meaning ALL or GLOBAL.

    As for admins inheritance, our admins on our server do not have every permission as we have allot that conflict with each other like worldguard and essentials to myhome to mcdocs etc as we run up to about 30 or so plugins.

    So what we do is put nodes in at guest level then inherit upwards till admins only adding in commands in the higher group can use in there permissions.

    Ive been told why don't we just have * for admins well its really more trouble than its worth.

    Here is some of the conflicts we have
    Mcdocs > essentials /motd /rules /registration
    worldguard > essentials /god and others I beleive
    Myhome > essentials All home commands
    Icomony > essentials Money etc
    Multiverse > worldedit/guard etc with the select tool (you can change it yes also admins don't need the ability to delete worlds or create new ones once there setup anyway)
    Guestprev (allot of these are useless commands if you use the build=true method and don't need)

    And the list goes on and on. Having a * means that everything that conflicts is active at the same time on admins and that is BAD.

    And allot of commands you don't need to use more than once or ever like world create/delete wipe entire worlds inv of every player online global kick of every playere etc etc etc.

    Also you don't want 5 versions of superpick etc from all your plugins (guestprev / essentials / worldedit) enabled all at the same time, so even gameplay elements overlap on allot of stuff.

    Also region/spawn protection, economy, money, log rollback, guest rights, whatever you have every plugin wants to do it a different way and they can all conflict as we found out a few times by now.

    So we just give people what they need from the plugins making sure we don't add a conflicting node in

    I have 6 worlds all individual files fine here with inheritance that way and that was what rcjrrjcr told me to day on page 1 of this thread and its working fine on what I wrote up.

    I spent days asking rcjrrjcr and giving feedback to figure that solution out which works great.

    Only issue I'm having and why I am holding off still going live on this new system is while permissions are working great etc chat plugins are not supported with using the global users yet as they only work on local files which is a big downside currently for us as while they get the permissions if we have there group on there shows as default in each world which is guest as there is nothing in the local users files.
  9. Offline


    Add a swap command Save some time ;D
  10. Offline


    Are there any javadocs or something like that? I'm trying to figure out how to retreive some stuff, but i cannot find javadocs and methods that I'm looking at, are missing from source (or am i just blind?).

    Anyway, i want to retrieve group and user by its name, but parameters for getGroupObject and getUserObject are just bunch of strings and i have no idea what strings should i enter.
  11. Offline


    The error is that i dont get any permissions.
    also in the server console no command works (pr) when i want to execute any pr command the command list pops up.
    There is no errorstack
  12. Offline


    Having ans serious problem here,,
    Permissions isn't working at all, every User can use every command.
    Checked my Settings a few times, also i looked through the forums a few hours.
    Maybe I'm to dumb or whatever.

    Here's my Global Group Settings

            default: true
                prefix: ''
                suffix: ''
                build: false
                - ''
                - ''
                - 'dc.who'
                - 'dc.message.self'
                - 'dc.message.other'
            default: false
                prefix: '[Builder]'
                suffix: ''
                build: true
                - ''
                - ''
                - 'dc.teleport.self.*'
                - 'dc.home.self'
                - 'dc.sethome.self'
                - 'dc.warp.self.*'
                - 'dc.setwarp'
                - 'dc.hide.self'
                - ''
                - ''
                - ''
                - 'dc.who'
                - 'dc.message.self'
                - 'dc.message.other'
            default: false
                prefix: '[Mod]'
                build: true
                - Builder
                - ''
                - ''
                - 'dc.warps'
                - 'dc.worlds'
                - 'dc.hide.other'
                - 'dc.teleport.self.*'
                - 'dc.teleport.other.*'
                - 'dc.join.other.*'
                - 'dc.join.self.*'
                - 'godPowers.gaia'
                - 'godPowers.jesus'
                - 'godPowers.superjump'
                - 'dc.hide.see'
                - 'dc.give.other'
                - 'dc.give.self'
                - 'dc.message.all'
                - 'dc.time.*'
            default: false
                prefix: '[Admin]'
                build: true
                - '*'
    Thanks in Advance
  13. Offline


    Ok, i solved it! i had the Brigde and Group jars from Essentials installed... i just deleted them
  14. Offline


    Never mind, I read the post again and I see you are using globals, that can't be done without world specific files to inherit from those globals
  15. Offline


    Iss there a way to reload the permission without restart server ?
    /permissions -reload dont work :/
  16. Offline


    Hello. I'm sorry for my idiocy if i am wrong here.

    But is this going to be updated for the newest build for CraftBukkit 860?
  17. Offline


    check your server.log to see if there any errors as that is the way to reload permissions and it's been that way since v3 was released, not to mention god knows how long in v2

    818 plugins work on 860, only the OP is out of date

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: Sep 9, 2018
  18. Offline


    Right okay. Thank's a lot.
  19. Offline


    Could someone give us a nice overvieuw of all possible commands (ingame)
    It should help us all and avoid to get those questions like 3000 times over again.
    Something simple like:
    /pr NAME parent add GROUP
    Regards SqweakyGamer!
  20. Offline


    Anyone have any help for #2802?
  21. Offline


    Does 3.1.5b work with b860 too?
    3.1.4 works.
  22. Offline


    Can anyone answer me ? please :'(
  23. Offline


    I have a problem with my members being removed from their groups. It seems common now...
  24. Offline


    Damn, this helped me a lot !

    So if your problem is about not being able to build/break blocks and you're using SQL, this is probably the solution:
    permissions (<user|g:<group>) w:<world> info <get|set> build b:true
    Also, the xenforo "search this thread" feature is bullshit. I had to read 50+ pages in this thread to find Ashens' reply ><.

    As a newbie, there are some other things I had difficulties with:
    1. If you're installing Permissions with SQL, then you will have to insert your user in the database. You won't be able to do it from the in-game chat because you don't have yet the permisssion. So use the server console instead...
    2. Probably more to come...
  25. Offline


    Does anyone have any other recommendation on how to promote people through the tracks? I think that I have it setup correctly, but it is not working from what I can see.
  26. Offline



    Is there any documentation on the getUserObject function?
    matejdro likes this.
  27. Offline


    i have a problem where i set myself to admin and i cant build anywhere. my build is set to true and the program works fine. i followed the guide but everytime i build something it just dissapear my plugins are command book iconomy magic spells permissions and world edit mxring platform. i also have the * on my permissions. the program loads fine. also another problem. i set some nodes to players and some work and some dont in example mxring platform doesnt work for "builder" but i can use it with my admin. ive set the permission node for builders to be able to use that so i dont know whats going on. any help is appreciated.

    default: true
    prefix: ''
    suffix: ''
    build: false
    - 'commandbook.motd'
    default: false
    prefix: 'Knight'
    suffix: '^^'
    build: true
    - Default
    default: false
    prefix: 'Moderator'
    suffix: ''
    build: true
    - '*'
    default: false
    prefix: 'King'
    suffix: 'Of You All'
    build: true
    - '*'
  28. Offline


  29. Offline


  30. Offline


  31. Offline

    TEM Vogelwurst

    will there be a permissions update for recommended build 860 ? ....because i´m really sick of this plugin. Nothing works tough i read the documentation of how to install and use this plugin.

    i hope i´ll get an answer this time...
Thread Status:
Not open for further replies.

Share This Page