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

    Solo7319

    Thanks Jeyge, I just tried everything out and it works like a charm!
    :D:):cool:
     
  3. Offline

    Jeyge

    I would suggest picking up the example files from the zip download and starting with those but to allow you to build using what you listed above, just replace your groups.yml with this one:
    Code:
    groups:
        Admins:
            info:
                build: true
            permissions:
            - '*'
            inheritance:
    
     
  4. Offline

    Spinner0205

    I have been pondering this ever since I read the schema like 2 months ago. I think they forgot to add that to the SQL side of Permissions..... let's hope they fix it soon.
     
  5. Offline

    baffu

    Is this plugin no longer being updated?? why is it at 935
     
  6. Offline

    MineMonkey

    Hey, I am getting used to all this plugin management stuff on my server and it is going pretty well. I have Permissions installed and it is working. Can I use Permissions to disable core features like the command /kill ? Is there a list of "info" nodes anywhere? (ie. build:true/false) Thanks in advance
     
  7. Offline

    Jeyge

    If you mean the OP only commands, you can use DefaultPermissions to add permissions to those. As for the list of info nodes, Permissions only uses prefix, suffix and build but other plugins can look for anything in that section so the list is limitless.
     
  8. Offline

    Grimmy777

    any update with the bug between this plugin and McMMO crashing servers yet?
     
  9. Offline

    Ajax_killer

    can you please fix the plugin after a while the permission plugin gets a CRAP load of errors
     
  10. Offline

    MineMonkey

    Where/What is default permissions?
     
  11. Offline

    Jeyge

    Only if you tell us what the errors are. Post your server.log.
    It is a plugin. Use "Get Plugins" at the top of the screen to find it.
     
  12. Offline

    ZaccieV

    Okay guys, I need ALOT of help here.
    I maintain plugins for a new server which will be quite big, but I have no permissions experience.

    Here is what needs to be done:
    Code:
    For permissions, there should be seven groups:
     Guest, Probationary Member, Member, VIP, Moderator, Head Moderator, and Admin.
    Guests should be able to do motd, rules, list, getpos, compass, and other basic tasks (no /msg or /mail though), they shouldn’t be able to build, and should have a white prefix of Guest.
     Probationary members should be able to build on the Hardcore worlds and Test, they should be able to spawn items (not infinite) on Test (I will add an item blacklist later) and do /more (not more.infinite).
     Members should be able to spawn infinite items, and can build on Earth.
     VIP-I will configure that later.
     Moderators should be able to ban, kick, mute, banip, and isbanned, but not unban, tp, tphere.
     Head Moderators should be able to unban, broadcast, reload.
    Admins have all privileges.
    There are 4 worlds on the server,
    Test
    Earth
    Hardcore
    Nether

    The plugisn we have are;
    Factions
    Iconomy
    Commandbook
    craftscripts
    Multiverse
    VoxelSniper For Head moderators +
    Worldedit ^^^^^^
    Worldguard ^^^^

    If someone could please do a barebone template of all this, or practically do it all, I have tried but to no prevail.
     
  13. Offline

    Sc1234freak

    How do I actually assign my users to groups using MySQL rather then YAML. This is the last issue I can't solve with using SQL, there is no info on how to actually rank the uesrs.
    Thanks,
    Sc
     
  14. Offline

    revenge129

    When ever I start my server, I get an error in the console.
    2011-08-11 19:07:46 [SEVERE] [Permissions] Unable to load permission data.
    2011-08-11 19:07:46 [SEVERE] [Permissions] Shutting down Permissions due to error(s).
    2011-08-11 19:07:46 [INFO] Permissions was initialized.
    2011-08-11 19:07:46 [INFO] Permissions disabled successfully.
    and after somemore digging
    at me.taylorkelly.bigbrother.BBPermissions.setupPermissions(BBPermissions.java:77) at me.taylorkelly.bigbrother.BBPermissions.initialize(BBPermissions.java:46) at me.taylorkelly.bigbrother.BigBrother.onEnable(BigBrother.java:150) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:126) at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:878) at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:272) at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:162) at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:146) at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:284) at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:271) at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:148) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:335) at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.ClassNotFoundException: com.nijikokun.bukkit.Permissions.Permissions
    please help me!
     
  15. Offline

    eXtra

    I am not sure what I have done wrong, but default users have absolutely no permissions.

    I want default users to have the standard permissions like before I installed the Permissions plugin, like /help, etc.
    Default users can't even build/break blocks even though I have the option set to 'true' in the .yml file.

    Please somebody tell me how I can add the standard permissions to my default users:

    Groups:
    Code:
    groups:
        Member:
            default: true
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
            permissions:
                - 'warpplugin.warp'
                - 'econplugin.basic.*'
        Moderator:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
                - Member
            permissions:
                - 'modplugin.ban'
                - 'modplugin.kick'
                - 'modplugin.unban'
        Admins:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
            permissions:
                - '*'
     
  16. Offline

    Jeyge

    We don't write peoples permissions for them but instead will help if you run into problems while doing it. I would suggest starting with the sample files from the zip download and making little changes and the next thing you know, you will have it all completed. Or, you could try posting in the Help forum and hope someone will come along to write it all for you.
    I haven't done this myself but from the table descriptions, it looks like you would use PrInheritance to create a parentid/childid relationship between a PrEntries row with a type of 0 and a type of 1.
    Sounds like you may have a plugin that is conflicting with Permissions. Take a look at he wiki FAQ for information about building problems and if that doesn't help fix it, then come back and zip up your plugins\permissions directory and post it here and include a server.log with it. Also, /help by default is an OP command so you will need an additional plugin which has a /help that you can add permissions for.
     
  17. Offline

    Sc1234freak


    So I assign the users rank in PrInheritance, I thought this was explicitly for defining group inheritance, as in, an Op would inheriting a Members permissions. Are you sure I assign rank to users here?
    Thanks for the help,
    Sc
     
  18. Offline

    Jeyge

    I'm not sure of anything but that is what the tables description says and it is meant to set up a parent/child relationship from the PrEntries table. PrEntries has both users and groups in it from the description with the only difference being that users have a "type" of 0 and groups have a "type" of 1. Either way though, creating a user and assigning it a group should be an easy way to prove it using nothing but the console. "/pr Foo create" and "/pr Foo parents add <somegroup>" would prove it easily.

    Edit - I guess you can add "/pr g:FooGroup create" and fill in <somegroup> will FooGroup just to make it easier.
     
  19. Offline

    Sc1234freak

    Thats a good idea, I am in the process of moving my current user base over and since I failed to set it up right, I can't start the test server. So I'll go ahead and just delete every user, see if I can get it working. Thanks for the help, I'll psot back soon.
    Sc
     
  20. Offline

    pitbully

    Ok, I need a bit of help. First off does promoting/demoting work with MySQL set up of Permissions?
    If it "should" work at Permissions 3.1.6:
    Show Spoiler

    My problem is that my promotion and demotion commands do not work. When used, I am informed that the player is not in the group specified. I have tried every format for promoting and demoting listed in the wiki.
    Here is a sample (not all data but should be way more than enough to help me out) of my MySQL Tables for Permissions:
    Also note that world_nether (3) copies world (2).

    PrWorlds
    worldid | worldname
    1 | *
    2 | world
    3 | world_nether
    5 | Anarchy

    PrEntries
    entryid | name | worldid | type
    4 | TrainingMod | 2 | 1
    5 | Mod | 2 | 1
    6 | SeniorMod | 2 | 1
    7 | ServerMod | 2 | 1
    8 | Savage | 2 | 1
    9 | WildChild | 2 | 1
    10 | CaveDweller | 2 | 1
    11 | FireStarter | 2 | 1
    12 | Domesticated | 2 | 1
    13 | Explorer | 2 | 1
    14 | Conquerer | 2 | 1
    15 | Vanquisher | 2 | 1
    16 | Survivor | 2 | 1
    44 | Default | 2 | 1
    73 | Anarchy | 5 | 1
    175 | Default | 5 | 1

    PrTracks
    trackid | trackname | worldid
    1 | Build | 2
    2 | Domesticated | 2
    3 | Survivor | 2
    4 | Mod | 2
    5 | Anarchy | 5

    PrTrackGroups
    trackgroupid | trackid | gid | grouporder
    1 | 1 | 44 | 1
    2 | 1 | 8 | 2
    3 | 2 | 8 | 1
    4 | 2 | 9 | 2
    5 | 2 | 10 | 3
    6 | 2 | 11 | 4
    7 | 2 | 12 | 5
    8 | 3 | 8 | 1
    9 | 3 | 9 | 2
    10 | 3 | 10 | 3
    11 | 3 | 11 | 4
    12 | 3 | 12 | 5
    13 | 3 | 13 | 6
    14 | 3 | 14 | 7
    15 | 3 | 15 | 8
    16 | 3 | 16 | 9
    17 | 4 | 4 | 1
    18 | 4 | 5 | 2
    19 | 4 | 6 | 3
    20 | 5 | 175 | 1
    21 | 5 | 73 | 2


    If it doesn't work, ignore above. I will wait for an update.

    BTW, when is an update for this coming out? Aka, the command restructuring...
     
  21. Offline

    Revenger

    Obviously you never saw the developers last active date on this forum and github.

    That might give you some indication.

    But if you don't get what I wrote this might help.

    rcjrrjcr was last seen: Jul 10, 2011
    Last github commit: 2011-07-03

    And to below ^^
     
  22. Offline

    Keetveter

  23. Offline

    Revenger

    See above I really don't see how CraftBukkitUpToDate will help Permissions when it isn't kept UpToDate
     
  24. Offline

    Keetveter

    Ah ok I see. Didn't read, just posted this by a few plugins so they could be kept up to date. Luckilly Permissions still works.
     
  25. Offline

    RedRoot

    How can I make the default storage for users be Global yet keep the world-based permissions? I have a guestworld and need the guest world permissions to be different so that guests can build in that world.
     
  26. How do I make it so new players can spawn limited items?
     
  27. Offline

    Ajax_killer

    i deleted all my plugins and cant get them back and restarted on everything
     
  28. Offline

    Jeyge

    I haven't seen anyone report that the SQL version of promote/demote isn't working so it should work. What exact command did you try? I don't see a default track so I hope it was something like "/pr <user> w:world promote t:Build" which would promote from Default to Savage.
    Changes in a plugin like Permissions make it such that you would really want to choose which version you are running so making it work with CBUTD would be a bad idea.
    See example 2 in the Global vs World topic on the wiki.
    You would need a plugin for that.
     
  29. Offline

    Sc1234freak

    I didn't realize that the author has taken a leave. What does this mean for the community that wants a SQL implemtation for permissions? Isn't this the only permissions plugin that supports SQL?
     
  30. Offline

    Jeyge

    We don't know if he has taken a leave or not. No one on the Permissions team wants to reply to any posts or PMs so we are just left in limbo with a plugin that continues to work. But if you want to switch to a different plugin, there is always PermissionsEX which also has a SQL option and even supports SuperPerms.
     
  31. Offline

    UnderMotion

    Hello there. I've been having a lot of troubles with this addon. Whenever I set permissions and try them, they don't seem to work. For example, I set myself as an admin, with my permissions as '*', I log in, and I can use ALL my plugins, but I can't use MobSpawn, WorldGuard, and WorldEdit! Then I set myself as Default and logged back in, I still had access to all the plugins except the 3 listed above! I double checked that my format is right, and double checked that I had no '*' given to me in my user permissions. This has been causing major headaches to me since I started configuring it. I would be very grateful if someone is to help me with this.
    (P.S: Everything used to work fine with the 2.x versions of Permissions, WorldGuard region protection was the only thing not working though (that's why I upgraded))
     
Thread Status:
Not open for further replies.

Share This Page