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

    ACStache

    it helps when dealing with straight adding and removing of groups, but that doesn't solve (unless i typed the wrong stuff in) demoting along a track. I tried the command and it claimed to have worked, but the user never got demoted after the initial promotion along the track
     
  3. Offline

    Maxis010

  4. Offline

    vReactiionz

    Can anyone tell me how to do this SIMPLE command? I posted a thread and it didn't help.

    I want to SIMPLY set a group for user. THAT IS ALL.
    What is the command?
     
  5. In my opinion this new version (3.X) is worse than old 2.7.X. I hope other plugins supports old one for long time.
     
  6. Offline

    ACStache

    you would use the command as follows:
    /pr <player> parents add <group>

    change <player> to the player's name, change <group> to the group name. Capitalization is important. If you're in a different world than default, it changes, but not by much.

    /pr <player> w:<world_name> parents add <group>
     
  7. Offline

    RaCooN

    Explain yourself without just making one-line-statements?
     
  8. Offline

    unversed

    For one users.yml and groups.yml can no longer be edited manually while the server is running
     
  9. Offline

    ACStache

    yes they can. make changes to them, save, then type /permissions -reload all
    or even /permissions reload <world_name> if it's just changes to one world's files
     
  10. Offline

    skisquirrrel

    I'm still at a loss for how to fix this... I can't seem to find anything wrong with the syntax, when comparing my user files to others. Does anyone have any ideas what I may be missing, or perhaps I am looking in the wrong place for the error?
     
  11. Offline

    unversed

    Have you tried this since upgrading? It worked fine before, but now when I do that it will add [] to online users. Any way to fix this?
     
  12. Offline

    Redeye83

    I finally got mine to work but have to give each member permissions via the users file.
     
  13. Offline

    Jalroth

    Ok, so I'm using permissions 3.1.5, and here is my groups file:
    Show Spoiler
    Code:
    groups:
        Default:
            default: true
            info:
                prefix: ''
                suffix: ''
                build: false
            inheritance:
            permissions:
                - 'general.spawn'
        Friends:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
            permissions:
                - 'general.spawn'
                - 'essentials.help'
                - 'essentials.depth'
                - 'essentials.getpos'
                - 'essentials.top'
                - 'essentials.world'
                - 'essentials.tp'
                - 'essentials.sethome'
                - 'essentials.home'
                - 'essentials.warp'
                - 'essentials.warp.list'
                - 'essentials.motd'
                - 'essentials.afk'
                - 'essentials.rules'
                - 'essentials.list'
                - 'essentials.item'
                - 'essentials.kit'
                - 'essentials.time'
                - 'essentials.heal'
        Admins:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
            permissions:
                - '*'


    and my users file:

    Show Spoiler
    Code:
    users:
        1:
            groups:
                - Admins
        2:
            groups:
                - Admins
        3:
            groups:
                - Friends
        4:
            groups:
                - Friends
        5:
            groups:
                - Friends
        6:
            groups:
                - Friends
        7:
            groups:
                - Friends

    (names obfuscated)
    problem is, everyone in group Friends cannot build. Everyone in group Admins CAN build. have not tested what happens if a Default tries, but i'm not really worried about that at the moment. server is not giving me any errors when they try, and as far as i can tell, the YML passes the online parser, so i'm just missing something obvious here. any tips?
     
  14. Well, I just don't like new version. I like more old one's config structure. Much better for me at least.
     
  15. Offline

    Jon1155

    (everything will turn up as correct in the YAML Parser cause' it is correct, its just some problem that will need addressing) I think i know your problem, it MAY be another plugin causing the problem, (one to do with building), or that in groups.txt; 'build: false', but yours is set to true, so that last thing that I could think of is that you could try to set the inheritance of 'friends' to 'default', seeing as that has not been done, or (just for testing), try setting on the 'default' group, the 'build:' to 'true', hope i helped.

    jon1155
     
  16. Offline

    KillerFoxE

    :L 1 thing I like the plugin 2. its hard now i want to be back to normal with non of those files just the folder world I want that its so confusing now :( oh and update to 860
     
  17. Offline

    orbitraiter

    why doesnt the rank name show up anymore? iv been trying so hard, and permissions just seems to mess up a little
     
  18. Offline

    ACStache

    it's working on 860, been running it for a couple days now :)
     
  19. Offline

    Crysillion

    Recently I've been having major issues with the Permissions plugin. Let me run you down entirely on what happened.

    I made a group called VIP*, this was for donators that donated such and such amount, I'd rather not go into detail. This group has been instated for a while, and offered users the "tag" of VIP* before their name. Only recently has someone donated enough to reach this status and of course, as it was due, I set them up with the server's very first VIP*. When the plugin reloaded, I noticed that my tag (<Admin>) as well as everyone elses tags ([clan] tags) completely disappeared. I put 2 and 2 together and nearly immediately came to the conclusion that the * symbol must fuck with the plugin big-time. Upon checking my users.yml in my world folder of Permissions, I was surprised to see it had completely wiped itself and only started documenting people who had just joined the server after the "issue". I had to restart the server to fix this, so it would start documenting everyone, and not just new players. No problem.

    I decided right off the bat that VIP* just wouldn't work, so I just stuck with VIP with different color codes. Fixed and no problems. I gave my admin's back their tags and the donor his tag just to test and let it run for a while. The automatic server save was due now and after which, as I talked to my players, I realized my tag was once again gone after the server save. So was the donors tag. Oh no, has the users.yml wiped again?

    I checked it out. It has not wiped, but it HAS reset everyones groups to blank, and thus no tags. Interestingly enough, I could still use my admin commands in-game without fail nor error.

    I decided I would simply re-edit the users.yml, put it in, and reload my plugins. Doing so, I noticed a trend. About 5 minutes after I put in the new users.yml, it will always - without fail - remove everyones groups. No matter what I do.

    I have tried completely reinstalling this plugin and nothing has changed. I am using the latest HeroChat and Permissions, if that will help any. I am running 1.6.6 Bukkt #818 and I have no idea why that after the incident with the symbol, the entire plugin has been completely unusable for me no matter what I do.

    Seeking help on this matter. Would GroupManager be any different? They seem exactly the same.

    EDIT: I noticed that at random, the tags would show back up in-game, only to disappear again sometime later.
     
  20. Offline

    vReactiionz

    I understand that. Now how would I remove it? Because if I add another group, the user would have 2 groups.
     
  21. Offline

    Maxis010

    Same again only instead of add it's remove
     
  22. Offline

    ACStache

    you would change the 'add' parameter to 'remove' :)

    edit: Maxis010 beat me to it, but yea, that's all that's different
     
  23. Offline

    KillerFoxE

    Lol now I know javascript ill make an easy permission thingy XD
     
  24. Offline

    Maxis010

    Good luck getting plugins to support that, if you really have a problem with permissions then jump to PEX
     
  25. Offline

    vein_mx

    My promote function works but demote doesnt. I agree that a simpler command would be very much welcomed and appreciated
     
  26. Offline

    gysi

    Please help me to find the error... -.- this is soo annoying. I cant find it...

    globalGroups.yml
    Code:
    groups:
        Gast:
            default: true
            info:
                prefix: '&2'
                suffix: '&f'
                build: false
            permissions:
                -
        NormalUser:
            default: false
            info:
                prefix: '&a'
                suffix: '&b'
                build: true
            permissions:
                -
        Admin:
            default: false
            info:
                prefix: '&1'
                suffix: '&2'
                build: true
            permissions:
                -
        SuperAdmin:
            default: false
            info:
                prefix: '&4'
                suffix: '&f'
                build: true
            permissions:
                - '*'
    globalUsers.yml
    Code:
    users:
        gysi:
            groups:
                - SuperAdmin
            permissions:
                -
     
  27. Offline

    Maxis010

    How about you post the error stack so we know where to look and what for
     
  28. Offline

    Daniel Heppner

    Do you know the difference between Java and Javascript? If you don't, then you really shouldn't go suggesting this to everyone.
     
  29. Offline

    DontTurnAround

    I have the node "permissions.*" in my permissions file, but when I try to promote people using "/pr [name] promote [group] [track]" I get something that says "You do not have permissions to use this command". I don't understand also, because I am an OP
     
  30. Offline

    lipe123

    Here's a thought.
    You guys made the best feature ever that allows for quick and easy multi-world permissions so how about you ********ing show us how to use it on the WIKI page?!
     
  31. Offline

    Maxis010

    Someone tell me how to set inheritance from the globals and I WILL ********ing show you have to use it with a WIKI page
     
Thread Status:
Not open for further replies.

Share This Page