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

    OrtwinS

    - Ingame management
    - multigroups

    Looks like Permissions is closing the gap towards GM (finally, if I may say so)
    To bad your FAQ still says overloading will cause problems...

    Now if I start trusting the stability of 3.x... (I see to many bug reports now...)
    and if all of my favorite plugins start supporting it (20 isn't that many... and they are all major plugins, not fancy extras),
    AND if someone will make a 'Roles' sort of plugin like GM has (its inactive, but still works since Craftbukkit 455 or so...)

    Then I can finally move back to Permissions, and end the schism of permission management.
     
  3. Offline

    lolzrofl

    Just curious, does permissions 2.5.5 still work with #818?
     
  4. Offline

    Diaz9943

    Works for me :)
     
  5. Offline

    Takel

    Loaded that up on my test server (CraftBukkit 818)
    Multi-world provided by WormholeX-Treme Worlds and the plug-in is functional without any apparent problems with 818.
    storageconfig.yml explicitly mentions 3 additional worlds. On server load, pr -list worlds only lists: *, MainWorld

    Testing some commands, pr -list users MainWorld shows all the users as expected. pr -list groups MainWorld returns a console message advising that the world does not exist...
    Inheritance/permissions mirroring do not appear to be functioning as expected. User lists are not being returned when using pr -list users *worldname* even after manually loading the world using pr -load *worldname*.
    Using a fully defined config (manual mirror/inheriting) does work.

    Apart from the niggles in configuring everything, all the plug-ins I'm running don't appear to have any issues with hooking into the Permissions API, which is a good thing. The multi-world permissions inheritance and mirroring are a pain at the moment, but I suppose I can live with doing things the hard way or just sit back on 2.7.x for the time being.

    I'm going to have some of my players jump onto a server with 3.1 running with full configs and see if there are any issues.
     
  6. Offline

    rcjrrjcr

    Multiworld plugins have to explicitly call loadWorld() to load a world. Permissions only loads the default world (defined in server.properties) and the global config.

    Will look into this.
    Can you post your storageconfig.yml?

    EDIT: Can you try a new build from the same link?
     
  7. Offline

    ONeill

    Permissions 3.0.6 works for me with b818, no Problems for now
     
  8. Offline

    Takel

    Loaded the new build from the same link on my test server.

    Storageconfig.yml:
    Show Spoiler
    Code:
    permissions:
        storage:
            type: YAML
            worldcopy:
                Nether: MainWorld
            world-inheritance:
                ChildWorld: MainWorld
                TestWorld: MainWorld


    pr -list groups MainWorld again brings up: [INFO] [Permissions] World does not exist.
    pr -list users MainWorld still works without problems.

    Just as a FYI in case it matters, the global configs are null at this point. I've PM'd you with a URL containing a copy of the permissions config folder which I've got running on my test server.
     
  9. Offline

    rcjrrjcr

    Yep. That bug's fixed now. I uploaded the new build to the same link. I'll look at the world mirroring/inheritance next.
     
  10. Offline

    Takel

    Yeap, just double checked and the list groups on the world is working.
    Take your time with the world inheritance/mirroring. Right now it's just an inconvenience to have to mirror/inherit the permissions manually using extra config files.
     
  11. Offline

    xZise

    Okay I 3.0.6 (the newest in the bukkit forum thread). And it seems, that it doesn't store the info values:
    Code:
    >pr xZise w:world info get warp.timers.cooldown.private
    12:59:50 [INFO] [Permissions] null
    >pr g:Dedicated w:world info get warp.timers.cooldown.private
    13:01:22 [INFO] [Permissions] null
    >pr xZise w:world parents list
    13:11:50 [INFO] [Permissions] Parents: Group Admins in world
    My groups.yml.

    Fabian
     
  12. Offline

    skater40165

    With the new build I get this error



    2011-06-01 04:12:47 [SEVERE] tried to access class com.nijiko.permissions.ModularControl$1RefreshTask from class com.nijiko.permissions.ModularControl initia
    lizing Permissions v3.1 (Is it up to date?)
    java.lang.IllegalAccessError: tried to access class com.nijiko.permissions.ModularControl$1RefreshTask from class com.nijiko.permissions.ModularControl
    at com.nijiko.permissions.ModularControl.<init>(ModularControl.java:53)
    at com.nijikokun.bukkit.Permissions.Permissions.setupPermissions(Permissions.java:167)
    at com.nijikokun.bukkit.Permissions.Permissions.onLoad(Permissions.java:127)
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:106)
    at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:232)
    at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:219)
    at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:146)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:285)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
     
  13. Offline

    ArmEagle

    Hi, good luck on a new episode in Permissions, it is sometimes a bit confusing, but I guess we just have to make do as long as we have to use the forums :).

    If I can suggest one thing, that would be to edit point 2 in the What's New list in the OP. There you mention SQL support. Luckily I read on and found out you can choose to use it. Maybe you could change point 2 just a little bit, mentioning it's optional, or YAML is still supported.

    I understand why some people would like SQL support. But I love how there's simply one file containing it all.
     
  14. Offline

    AOD_KidDeath

    This plugin is way too complicated than it was before. Where is the readme that tells you how to use it because I had everything all set up properly and now I can't figure out what to do with the config files.

    To put it simple, make a proper readme. Not a readme with a freaking FAQ inside of it.
     
  15. Offline

    neko259

    Can you please tell: is built-in nether a different world or the same on with overworld? I don't have permissions in it.
     
  16. Offline

    DQuaN

    Hi, I'm having a little trouble setting up Permissions 3 on my server. I must admit I am new to Bukkit so this is a learning process for me. I've installed the Permissions plugin, created the folder (renamed it to be the same as my world) and configured the users and groups yml files. I don't get any errors, the server loads fine, I can run the command to reload permissions, but they just don't seem to apply. Everyone seems to end up in the Guest group which I have set as default. I've added people to the Player group, reloaded permissions, but they still cannot build. I can but I suspect that is because I am OP and not because of which group I am in. Did I miss a step?

    Being new to this would it be better if I started with PermissionsV2.x?

    Thanks
     
  17. Yeah, this doesn't actually work at all now, why change it? it used to work and now people are all getting block_place issues, it doesn't work. It freaks out whenever anyone places a block or breaks one and isn't actually giving anyone the permissions it's supposed to, everyone has the rights they woud have without it except no-one, not even admins can use the /permissions -reload all command. Hey here's an idea... update the installation intructions to THIS VERSION

    /rant
     
  18. Offline

    chrislxp

    I have set up everyone right the groups work now. But all the permission nodes do not work someone help!
     
  19. Offline

    neko259

    Oh, forget my question. I was too stupid :)
     
  20. Offline

    rcjrrjcr

    3.1 released. Fixes a ton of bugs. I edited the SQL schema, so current SQL databases need to be updated. Sorry about that, but I'll release a new converter script soon.
     
  21. Offline

    SalumoN

    Remember the'' between all of your permissions. Also, you should add four more spaces to all of your permissions...
     
  22. Offline

    ArmaSteiner

    The new Version of Permissions is very bad!
    Why give it user.yml and groups.yml.
    One file was O.K. Two are not good.
    Can somebody please make a Tutorial?
    If I copy the users from "world.yml" into users.yml, I haven't the rights! I don't can built!
     
  23. Offline

    mrgreaper

    will add 4 more spaces to them all

    where do the " go? its not mentioned in the upgrading from 2 to 3 wiki help sentence

    - kit.arrows "
    - kit.freebie "
    - kit.kit "
    like that?
     
  24. Offline

    rcjrrjcr

    https://github.com/TheYeti/Permissions/wiki/Transitioning-from-2.x-to-3.0
    Your file looks fine. Have you tried 3.1?
     
  25. Offline

    Lauless

    From the default users.yml:
    Is this a permanent change?
     
  26. Offline

    senior_hombre

    Hi, i read the intro post and noticed SQL support, are you talking about mySQL support in Permissions 3.1 ?
    I downloaded the zip file and unpacked it but found no config file next to the group ans user files. I am wondering if i have to use a mysql datebase or if i can stay with the plain yml file at first? Because there is not option to set if i want to use mysql or yml.
    And iam not sure whats with the user and group files when using mysql, do i need these then or does all user and group data is stored in the database then?
     
  27. Offline

    Maxis010

    Unsure but if it bothers you you can use multi group to have their main group and a presuf group to set per user prefix and suffix

    Go read the wiki about storage config, you won't need the YML files if you use SQLite or MySQL support

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 16, 2016
  28. Offline

    mrgreaper

    3.1 fixed it, its working great now thank you just need to hunt through the threads to find out how to add permisions to groups via the console now lol

    with mysql i wont need to use the yml files ? ah man i could kiss you! i hate yml files

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 16, 2016
  29. Offline

    senior_hombre

    But where is the switch to change Permission from using yml to mysql?

    edit: i found it in the wiki
     
  30. Offline

    mrgreaper

    im guessing the values will need to be re-entered via the console or phpmy admin. but atleast it would eliminate a few yml files
     
  31. Offline

    BangL


    Do it like this:

    Code:
        vip:
            default: false
            permissions:
                - 'home'
                - 'kit.armour'
                - 'kit.arrows'
                - 'kit.freebie'
                - 'kit.kit'
    
                ...
    
     
Thread Status:
Not open for further replies.

Share This Page