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

    rcjrrjcr

    Permissions 3.1.6 (Yeti)

    Download:
    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


    COMMAND RESTRUCTURING
    Feel free to comment and give suggestions.


    DO NOT USE GLOBAL CONFIGS FOR NOW. THE GLOBAL CONFIG IS MEANT TO SUPPLEMENT WORLD-SPECIFIC CONFIGS, NOT THE OTHER WAY ROUND. SEE https://github.com/TheYeti/Permissions/wiki/Global-vs-World .I WILL WRITE A PROPER TUTORIAL ON HOW TO USE THE GLOBAL CONFIGS SOON.

    TODO:
    • 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 server.properties 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)

    [FAQ]

    [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 server.properties 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.



    Changelog
    • 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)


    TheYeti:
    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!​

    rcjrrjcr:
    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

    Squidoris

    Went through my log and saw MyHome was somehow still installed. I guess I didn't delete the .jar. Anyways, did that and it is working again. Thanks!

    Also, GlobalUser/Group. If I just update this instead of the group/user files in each map folder, will this still allow me to use permissions on every map?

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

    Fenice

    Hello, where do I tipe in the Permission nodes?
     
  4. Offline

    Jeyge

    In theory it should.

    In the permissions: section of your group:
    Code:
            permissions:
                - <type permission here>
    
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Sep 9, 2018
  5. Offline

    Brianbloke

    Will permissions [818] work with the latest Bukkit patch [860] ?
     
  6. Offline

    Joseph

    Is there a way of configuring permissions to set the group of a new user automatically? Because I have to manually add new users the the group "Default" before they can build.
     
  7. Offline

    Burns1

    3.0a+MP , Admins with- '*' permissions are able to use this command
     
  8. Offline

    Allio567

    I'm a bit of a newbie when it comes to permissions, so I'm having a lot of troubles with it.
    Could you please correct me? Here are my user and group files:


    Code:
    ##
    # AntiBuild is included with this.  To disable a group from being able to build then
    # set the build: flag to false (build: false).  If you want a group to be able to build
    # then set it to true.
    ##
    # Groups can contain inheritance.
    #   To make a group inherit the permissions from another
    #   group simply place the groups name in the "inheritance:" like so:
    #
    #   Example:
    #       inheritance:
    #           - Default
    ##
    #   Globalized Permission settings:
    #
    #       If a permission contains periods (.) you can denote a globalized parameter:
    #
    #           - 'foo.*'
    #
    #       This will allow you to use all general commands.
    #
    ##
    #   Single Asterisk denotes all commands:
    #
    #       - '*'
    ##
    #   To exempt a node use the - prefix like so:
    #       - '-foo.bar'
    ##
    #   prefix: and suffix: do not do anything on their own.  You need another outside plugin
    #   such as iChat or HeroChat in order for these to do anything.
    groups:
        Default:
            default: true
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
            permissions:
                - 'foo.bar'
                - 'simpleshop.buy'
                - 'simpleshop.sell'
                - 'simpleshop.price'
                - 'commandbook.who'
                - 'commandbook.motd'
                - 'commandbook.rules'
                - 'commandbook.spawn'
                - 'commandbook.return'
                - 'commandbook.call'
                - 'commandbook.teleport.other'
                - 'commandbook.say.me'
                - 'commandbook.msg'
          Moderator:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance: Default
            permissions:
                - '*'
          Admins:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance: Moderator
            permissions:
                - '*'
    Code:
    users:
        Mr_Dougal:
            groups:
            - Moderator
            permissions:
            - '*'
        lordkeppie:
            groups:
            - Moderator
            permissions:
            - '*'
        xX_Recoil_Xx:
            groups:
            - Moderator
            permissions:
            - '*'
        Zetian:
            groups:
            - Moderator
            permissions:
            - '*'
        Allio567:
            groups:
            - Admins
            info:
                prefix: '&4'
            permissions:
            - '*'
    
    We're not able to use a whole lot of commands, including myself.

    Edit: It was not working on Build [818], we are now using build [860]
     
  9. Offline

    City Builder

    Hi,

    Something strange is happening to our 'users.yml' files for both our 'world' and our 'nether' world.

    The users are being rewritten to the following:
    Code:
        UserA:
            permissions: []
            groups:
            - '[Sponsors]'
        UserB:
            permissions: []
            groups:
            - '[Members]'
        UserC:
            permissions: []
            groups:
            - '[Admins]'
    


    Now, the problem is that when the user logs into the site, they have no permissions that they should.

    If I go back in and manually change so that - '[Admins]' Just becomes - 'Admins'
    then when I login to my admin acount, I have admin privileges again. I've chmodded the files to 444 just in case it want's to try changing them again.

    What is going on with this problem?

    Thanks,
     
  10. Offline

    Jeyge

    I'm guessing you are trying to only use the global files? If so, then the dev said he is looking at a fix for this.
    I would update to a more recent build then. I know the permission works in 3.1.5b.

    Unless your groups are actually [Admins], I would change all of those to just Admins and remove the quotes.

    Your Moderator: and Admins: are indented 2 extra spaces. They need to start at column 5.

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

    Maxis010

    As stated by the bukkit team there have been no changes that can break plugins between 818 and 860
     
  12. Offline

    Monkz

    In game whenever i type /pr info it tells me i am on 3.1.5.

    I do believe permissions 3.1.3 was the first version i had, but how can i be getting those problems still?
     
  13. Offline

    Jeyge

    There have been other reports of this as well since yours so it does sound as though there is a problem. I would post a bug on the Permissions GitHub and the dev will take a look at it.
     
  14. Offline

    Monkz

    It only resets the users when new players join. Not a reload. And i still dont know why i cant use global useres and grou
     
  15. Offline

    Jeyge

    You should be able to use them with 3.1.5b. That was one of the fixes with that version. What do your files look like?
     
  16. Offline

    killgoblen

    Hello! I'm just now upgrading to Permissions 3 (I'm a bit behind). Will this work now?

    Code:
    permissions:
        - '*'
        - -plugin1
    
    Will this give someone every permission except those in plugin1?
     
  17. Offline

    Jeyge

    There have been plenty of reports that it isn't working but I'm able to get it to work. I used the following:
    Code:
            permissions:
                - '*'
                - '-worldguard.*'
    
     
  18. Offline

    Allio567

    Thanks so much! I can't believe I missed that :p
     
  19. Offline

    Senladar

    Hello,

    Does anyone know what the "admin" permission for permissions is? I do not want to have a group with "*" as there are certain things I don't want access too.

    I tried "Permissions.*" but that doesn't work.

    Anyone know?
     
  20. Offline

    dogoferis

    To expand on this a little I am using the most recent build of CraftBukkit (MC 1.6.6 I think?) and the most recent version of Permission (3.1.5). Has anyone else had any success with configuring this to work with MySQL?
     
  21. Offline

    Jeyge

    It would be "permissions.*".

    There have been a few reports of people getting it working. I know I wasn't though and there have been a few reports of others not have any success either.

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

    Senladar

    figures....

    Thanks :)
     
  23. Offline

    Fenice

    Where do I tipe in the Permission Nodes?
     
  24. Offline

    Jeyge

    I responded to you above. Did you see it?
     
  25. Offline

    Toni

    I'm a little confused with the new tracks system - if anyone would like to help, please do. I plan on helping others in the future after learning how to use them myself!

    Well I've gotten a small understanding of it, but a little confused still.

    Say I have 3 groups:
    1) Regular
    2) Moderator
    3) Administrator

    Now, I want to set it up so I can do in-game commands to promote the user - which is Player 1

    Groups.yml
    Code:
    groups:
               Regular:
                   build: true
               Moderator:
                   build: true
               Administrator:
                   build: true
    tracks:
              TheTrack:
                  - Regular
                  - Moderator
                  - Administrator
    
    So my track would be promotions from Regular -> Moderator -> Administrator.

    Well from what I read the command syntax would be something like this:
    Code:
    /permissions <target> (w:<world>) promote <parent> (w:<parentworld>) <track>
    So to promote Player1, would I do something like this?
    Code:
    /permissions Player1 w:world promote Moderator w:world TheTrack
    (Player1 was a Regular player, now promoted to Moderator)


    I'm still really confused on the entire YML format thing, and the command syntax itself. Anyone willing to help, please do!
     
  26. Offline

    Jeyge

    Take a look at the post here and/or the wiki for tracks.
     
  27. Offline

    Toni

    I did look off of your old post / wiki, and great job on it. It's not you, just me being confused hah. The new post you just linked in that post was a much easier explanation without the tracks! Thank you! Just a question though, if those commands were created, what would be the purpose of tracks?
     
  28. Offline

    worldbmd

    Does anyone know if there is a way to limit the group that a moderator can place a new user into? I have my server set now so that moderators can make a new user, then add that user to the Default group of the world... however, this also gives the moderator the option to add the new user to ANY group that exists (ex. Admin... yikes!). Is there a way to prevent this? What I want is for the moderator to be able to add new users just to the Default group, then they can use the promote command to move them up different classes as defined in the tracks (which will NOT allow them to move up to Moderator or Admin...) Any help would be greatly appreciated!
    permissions: - 'permissions.reload.*' - 'permissions.list.*' - 'permissions.promote.*' - 'permissions.demote.*' - 'permissions.create' - 'permissions.delete' - 'permissions.parents.add' - 'permissions.parents.remove'
     
  29. Offline

    Jeyge

    If you mean the parents commands, then they are already there but they just add a group and not promote so tracks are still useful.
     
  30. Offline

    Kalerion

    I cant built in Nether! I changed the "Built: false" to "Built: true" in the groups.yml from wold_nether! I can break things but u can place nothing. Whats wrong? In the normal world i can do everything, just when i pass through the portal it doesnt work anymore (in the nether)
     
  31. Offline

    Jeyge

    You can give them access to permissions.promote.<track> and only give them access to the tracks that don't include admins/moderators.

    I think you want to actually change "build: false" to "build: true" but I have seen others report similar problems with the built-in nether support. Post your files though just so we can make sure there aren't any problems.

    I would think the best solution would be to have McMyAdmin give the option to update the local world files too. As for problems with the users being created in the local files, I think rcjrrjcr said that he was going to look at a possible way to have it default to the global files.

    Other than a couple prefix tags that don't have anything after them, I don't see anything wrong with your users file. Post the rest of your files and which commands they aren't able to use.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Sep 9, 2018
Thread Status:
Not open for further replies.

Share This Page