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

    nala3

    Found another IAE with RegionMarket. Can be fixed the same way as help.
     
  3. Offline

    hatchling

    So the permissions: gets 4 spaces
    storage: gets 8 spaces
    type: YAML gets 12 spaces

    But http://yaml-online-parser.appspot.com/ still says thats wrong

    SO like this?

    Code:
        permissions:
            storage:
                type: YAML
     
  4. Offline

    redworld2

    But those two ones I showed you are fine so why would it say it is incorrect?
     
  5. Offline

    Jeyge

    No, just replace your tabs with 4 spaces not the nodes. As for the file, it should look like:
    Code:
    permissions:
        storage:
            type: YAML
    
    Perhaps I'm not understanding. The files you showed me do not match the error you listed but there was still an error in the file. If those aren't your files and you are still getting the error, then post the correct files. If the files are yours and it was the posted error that was wrong, then take the fix I gave you. If neither the files or the errors are yours, then post your errors.
     
  6. Offline

    redworld2

    Perhaps I'm not understanding. The files you showed me do not match the error you listed but there was still an error in the file. If those aren't your files and you are still getting the error, then post the correct files. If the files are yours and it was the posted error that was wrong, then take the fix I gave you. If neither the files or the errors are yours, then post your errors.[/quote]

    I fixed the error you said and I love you it works!!! You should be on the Permissions team, you are always on and so helpful. Thank You!
     
  7. Offline

    hatchling

    Alrigt that is fixed but it looks like I dont have permissions but I did add my self

    Code:
    users:
        hatchlingduif:
            info:
                prefix: '[Owner]'
            groups:
                - Admins
            permissions:
            'rocketboots.boots.gold'
    I wish to have all the permissions is there a special command for?
     
  8. Offline

    Jeyge

    You would actually want to have your permissions in your groups.yml file but the permission for all is "- '*'". That should be part of your Admins group already so you can remove the rocketboots.boots.gold. As it stands right now though, you have an error in your users.yml right before that permission. It should look like:
    Code:
            - rocketboots.boots.gold
    
     
  9. Offline

    Doctor_Cheese

    I'm having trouble trying to get prefixes to work in both users and groups.yml

    I've tried playing with quotes and backslashes, but I just can't get them to work. Can you give me a simple guide or something? D:
     
  10. Offline

    jasvecht

    We rarely reload, usually once a day or so. Less then we crash. And actually, I ran about 70-80 plugins from here on some point and this would be the 2nd plugin to actually get big problems reloading and the first to crash my server from it :p
     
  11. Offline

    Jeyge

    You will need a chat plugin for the prefix and suffix to work and most of them have the guides on how to set them up. Permissions was just a good place to store the information they needed.
    Does it seem to happen after a reload though? Or is there any pattern at all? I know the dev was trying to track things down before he disappeared but could never find a pattern.
    I responded asking for a zipped version of your permissions folder so I could play with it on my test server.
     
  12. Offline

    ryladine

    Oh I see it now... I have no idea I missed it, I've been watching since I posted it... really sorry about that.
    Here is the file you asked for. If it will let me I'll delete the duplicate post.
    Still, I am really grateful for all the help you guys are giving me. Thanks alot.
     

    Attached Files:

  13. Offline

    Jeyge

    I don't think world-inheritance is what you are really looking for. All of your files with the exception of your users.yml are exactly the same. I'm guessing you really want to just use worldcopy so you only have to make changes in one place. If this is true, then change world-inheritance: to worldcopy: in your storageconfig.yml file and remove everything from your global and War_Zone_nether files. One change though in the storageconfig.yml, you need to change War_Zone_Nether to War_Zone_nether.

    If you really don't want all worlds to have the same permissions, then we can take a look at properly setting up your global files so you can inherit the permissions from there.
     
  14. Offline

    Crete21

    Alright =), finally decided to switch to permissions 3.

    Couple of questions:

    1. Is there a way to change/add prefixes for a user/group in-game?

    2. with the global files, is it setup the same way as the per-world files? And what is the danger of depending on these (it seems like in the first post the dev is talking about problems with the global files)?

    3. How do I find out what Group(s) a user is a member of in-game? As /pr NAME perms list, only lists permissions specific to a player, but not groups EDIT: Nevermind, found /pr NAME parents list

    I was skeptical, but Permissions 3 is working out great! Just took some work to make the switch, Thx! =D
     
  15. Offline

    Jeyge

    1) Take a look at the Info Management portion of the Chat Commands topic from the wiki. You can use those commands to change the prefix and suffix.
    2) Global files work great as long as you understand that they only supplement the local world files and not replace them.
    3) Try "/pr <user> parents listall".
     
  16. Offline

    Crete21

    Basically I am just worried about Moderators having access to commands across all worlds, but if theres no danger in using the globals, then its cool. For normal users, I'd imagine If I wanted to have permissions the same in Nether/World, then separate permissions for like a Creative world i could just mirror World to Nether, then any changes I make in world, will carry over to Nether? And the Creative world would just be separate alltogether. Sound right?
     
  17. Offline

    Jeyge

    That would be what I would do and then you don't even need to touch the global files.
     
  18. Offline

    Pandaren

    I want to use give command from bukkit plugin.
    What should I do?
    Is there any other way except giving op?
     
  19. Offline

    ryladine

    That's from the server I'm using to get it all set up, once I get it running Its going on an RP server I work with, we're going to have at least two more worlds that we will want to have certain people with different permissions in those worlds, so as far as I could tell inheritance is what I would need to use for that.
     
  20. Offline

    Donald Scott

    Attention Dev's
    This plugin has confirmed FATAL crashing issues with the latest development bukkit build! It will crash a populated server every couple of hours with no indication of the problem!

    Edit: Proof permissions hangs - http://pastebin.com/ejc9GBpq
     
  21. Offline

    ACStache

    @Donald Scott
    i think that's why it's not marked as working with it :p lol
     
  22. Offline

    Jeyge

    In that case, it should work for you once you get it all set up. It won't work when all of the files are the same because it doesn't have anything to do.
     
  23. Offline

    ryladine

    Alright, after your reply I had it working in about 2 minutes, Thanks alot.
     
  24. Offline

    Donald Scott

    Ok, but why has there been no commits in over a month! :'(
     
  25. Offline

    Jeyge

    Because you are good at making huge statements about how a plugin is broken but not very good at finding commits made 12 days ago.
     
  26. Offline

    ryladine

    Hmm That's a problem, What do you mean by populated? And does anyone know if 935 is still compatible with the MC client?
     
  27. Offline

    Jeyge

    I wouldn't worry about it yet. He offers no supporting information to his "confirmed" fatal crashing issue so it may just be the fixes to the "huge memory leak" fix introduced by Dinnerbone in build #993. That build had a potential even larger memory problem which crashed servers even faster than before but was fixed very quickly in build #996. By the time the recommended build comes out, there shouldn't be any problems anymore and this is the reason it is recommended to not run with the dev builds unless you can restrain yourself from screaming that the sky is falling.
     
  28. Offline

    ACStache

    as of right now I have it working on CB953 (1.7.2) and have no issues besides an occasional read time out (haven't been able to pinpoint why though)
     
  29. Offline

    Sshadow

    I am trying to give my mods some ability to promote users. It doesn't seem to be working so I am unsure if I am just doing it wrong or what. The permissions I gave them are as follows.

    - permissions.demote.Default
    - permissions.demote.Member
    - permissions.promote.Member
    - permissions.promote.Builder

    My tracks look like this.

    track:
    - Default
    - Member
    - Builder
    - Moderator
    - Super-Mod
    - Admins

    Any help is appreciated since I am probably doing it wrong lol
     
  30. Offline

    Jeyge

    In a perfect world, your permissions would be permissions.demote.<trackname> but that was broken with 3.1.6. Some of the command restructuring slipped in and removed the individual permissions. What we are left with is just permissions.promote or permissions.demote. If you only want your mods to promote/demote to/from Default, Member and Builder, I would change your track to be:
    Code:
    track:
    - Default
    - Member
    - Builder
    
    It will mean that you can't promote/demote to/from Moderator, Super-Mod and Admins though.
     
  31. Offline

    Sshadow

    Ok so if I remove those tracks then I can still use the groups right? I will just have to edit the users file?
     
Thread Status:
Not open for further replies.

Share This Page