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

    tryy3

    is it permission that disable fire spread?
     
  3. Offline

    Openlanding

    anyone know what this means and/or how to fix it? thanks

    Code:
    151 recipes
    16 achievements
    14:47:59 [INFO] Starting minecraft server version Beta 1.7_01
    14:47:59 [INFO] Loading properties
    14:47:59 [INFO] Starting Minecraft server on *:25565
    14:47:59 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-896-g394e893-b948jnks (MC: 1.7_01)
    14:48:01 [INFO] While loading Unknown Command (plugins/UC.jar) found old-data folder: plugins/UC next to the new one: plugins/Unknown Command
    14:48:01 [SEVERE] ebean.properties not found
    14:48:01 [INFO] DataSourcePool [Self-Closing Doors] autoCommit[false] transIsolation[SERIALIZABLE] min[2] max[20]
    14:48:01 [INFO] SubClassFactory parent ClassLoader [org.bukkit.plugin.java.PluginClassLoader]
    14:48:02 [INFO] Entities enhanced[0] subclassed[1]
    14:48:02 [INFO] [Permissions] Creating storageconfig.yml.
    14:48:02 [SEVERE] java.lang.IllegalAccessError: tried to access class com.nijiko.permissions.ModularControl$RefreshTask from class com.nijiko.permissions.ModularControl
    14:48:02 [SEVERE]     at com.nijiko.permissions.ModularControl.<init>(ModularControl.java:64)
    14:48:02 [SEVERE]     at com.nijikokun.bukkit.Permissions.Permissions.setupPermissions(Permissions.java:179)
    14:48:02 [SEVERE]     at com.nijikokun.bukkit.Permissions.Permissions.onLoad(Permissions.java:133)
    14:48:02 [SEVERE]     at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:121)
    14:48:02 [SEVERE]     at org.bukkit.craftbukkit.CraftServer.<init>(CraftServer.java:89)
    14:48:02 [SEVERE]     at net.minecraft.server.ServerConfigurationManager.<init>(ServerConfigurationManager.java:51)
    14:48:02 [SEVERE]     at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:132)
    14:48:02 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:335)
    14:48:02 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    14:48:02 [SEVERE] [Permissions] Unable to load permission data.
    14:48:02 [SEVERE] [Permissions] Shutting down Permissions due to error(s).
    14:48:02 [INFO] [Permissions] (Yeti) was initialized.
    
     
  4. Offline

    BadHAL9000

    I really don't think plugin authors should be using YAML for configuration files :-\

    So many of the problems/posts on ALL plugins are mostly due to spacing and tab errors.
     
  5. Offline

    jungalist81

    oh which plugin does that?
     
  6. Offline

    Routaruo

    Okay- so I can't add myslef in anygroup what so ever.. everything is evenly spaced. triple checked it..
    but my storageconfig, globalusers, and globalgroups config files don't generate.. their there, but nothings in them?
    anyhelp ;--;
     
  7. Offline

    VALO

    hey can i use your guy's plugin in a plugin pack im doing ill give you guys full credit just reply to my thread on bukkkit discussions its called basic bukkit server pack
     
  8. Offline

    ACStache

    doing a quick search, I found this plugin
     
    jungalist81 likes this.
  9. Offline

    jungalist81

    Thanks for your continued help ACStache

    I think a problem would be allowing Guest capable of promoting anyone (typing: /promote name). And i just want to let them only promote themselves and have the trigger reload the permissions afterwards.

    On the github, I dont know which one is the permission node for the /promote command
     
  10. Offline

    ACStache

    @jungalist81 it's 'permissions.promote.<trackname>'
    that way they can promote along only the track specified (if you have more than one).

    edit: also with that triggercmd plugin, you can make it so a button/lever/pressure plate triggers the command. the user doesn't have to type anything and boom, command activated and it's whatever command you want it to be.

    edit2: just realized with triggercmd you can still type the command out, found another plugin that might work for you too. Here is the set up info.
     
  11. Offline

    greatman

    I'm trying to use the world inheritance but it doesn't do it. I stay a plain white guy when I am a admin Here is the config I use:
    Code:
    permissions:
        storage:
            type: YAML
            worldcopy:
                nether: world
            world-inheritance:
                freebuild: world
     
  12. Offline

    Firepun

    Oh thank youz

    Nvm... Fudge! it still comes up with this! :(

    17:41:52 [SEVERE] while scanning for the next token
    found character '\t' that cannot start any token
    in "<reader>", line 22, column 1:
    - '*'

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

    Routaruo

    Anyhelp for me? I'm still having troubles..
    the storageconfig.yml
    and worldgroups or whatevers configs aren't generating .. : (!
     
  14. Offline

    Maxis010

    then you missed one or more, highlight the entire file and do it again, \t = tab
    Also change the language setting to YAML and it will mark tab lines in red
     
  15. Offline

    ACStache

    Global Permissions!

    So... This is a much larger wall of text than I thought it was going to be. It explains my take (and set up) on Global Permissions. Open the spoiler at your own risk :p, and plan on reading for a while.
    Show Spoiler

    Ok, so yesterday I said I'd put a post about global users/groups. Here goes:
    First off, make sure your folder hierarchy is as such:
    Code:
    \Permissions
        globalUsers.yml
        globalGroups.yml
        storageconfig.yml
    
        \world1 <-- Change these to your world names, add a folder per world
            groups.yml
            users.yml
        \world2 <--
            groups.yml
            users.yml
        \etc... <--
            groups.yml
            users.yml
    
    So now, if you've already set up your main world's groups & users yml files, this next part is easy.
    For your globalUsers.yml, copy your main world's users.yml into it. If you don't have a users.yml set up yet, then the following will be the basic structure for a globalUsers.yml.
    Code:
    users:
        dasbreen:
            groups:
            - ?,Owner
            permissions: []
        thepoint44:
            groups:
            - ?,Admin
            permissions: []
        amukon:
            groups:
            - ?,Mod
            permissions: []
        awaj2006:
            groups:
            - ?,Mod
            permissions: []
        julyjoe88:
            groups:
            - ?,Mod
            permissions: []
        vader501:
            groups:
            - ?,Mod
            permissions: []
    
    Now looking at my globalUsers.yml, you wonder, "why are the groups '- ?,<group>'? that seems silly."
    What this does, is it negates the need to put anything (except "users:" on line one) of your worlds (any of them) users.yml. It also makes it so that when you join the server, it checks which world you're currently in.
    It then gives you the groups permissions listed after the comma. In this case, no matter which world I join (dasbreen in this example), I'm given Owner permissions, while on the other hand no matter what world vader501 joins, he gets Mod permissions.
    Ultimately - ?,<group> does [check world] then [give <group> permission]

    Now you may ask, "Then how come the users.yml file is left nearly blank?". As stated above, in the globalUsers.yml, it checks your world, then gives you the globalGroups permissions that get inherited (that's explained below). No need for the users.yml.
    You will also notice that as new users sign into the different worlds, the users.yml gets filled in a little. This is normal, but you need not worry about it. As I just set this up yesterday and my server is very low traffic, only 2 people have joined my main world, making my users.yml for 'world' look like this:
    Code:
    users:    #this should be the only line you leave initially, the rest gets filled in automatically
        dasbreen:
            permissions: []
            groups: []
        amukon:
            permissions: []
            groups: []
    
    Now comes where all the goodies come into play: globalGroups.yml and per world groups.yml
    your globalGroups.yml is really the core of it, as this gives groups permissions across ALL worlds. Each individual world's groups.yml can add anywhere from zero extra permissions to as many as you want, as you will see. And they'll only affect the world that they're in, not all of them like the globalGroups.yml permissions. If you're going from a per world set up to global, copy the whole groups.yml that you want as the core for permissions across ALL worlds. You can go back and change the permissions later, but for now, start with that.

    This is my globalGroups.yml
    Code:
    groups:
        Default:
            default: true
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
            permissions:
                - 'commandbook.who'
                - 'commandbook.whois'
                - 'commandbook.whois.other'
                - 'commandbook.motd'
                - 'commandbook.rules'
                - 'commandbook.kit.*'
                - 'commandbook.time.check'
                - 'commandbook.call'
                - 'commandbook.say.me'
                - 'commandbook.msg'
                - 'stealthlogin.kick'
                - 'GiftSend.send'
                - 'icedrop.destroy'
                - 'mywarp.warp.sign.warp'
                - 'Campfire.heal'
        Trusted:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
                - Default
            permissions:
                - 'bog.*'
                - 'bof.*'
                - 'commandbook.more'
                - 'commandbook.give'
                - 'commandbook.give.stacks'
                - 'commandbook.teleport'
                - 'commandbook.whereami'
                - 'textplayer.use'
                - 'textplayer.text'
                - 'textplayer.textadmin'
                - 'textplayer.add'
                - 'textplayer.watch.server'
                - 'textplayer.listcarriers'
                - 'textplayer.listusers'
                - 'textplayer.free'
                - 'scavenger.scavenge'
                - 'choptree.chop'
                - 'WolfSpawn.release'
                - 'WolfSpawn.respawn'
                - 'simplechestlock.lock'
                - 'BlockRemover.Block.2'
                - 'BlockRemover.Block.18'
                - 'BlockRemover.Block.49'
                - 'icedrop.*'
                - 'myhome.home.*'
                - 'mywarp.warp.basic.*'
                - 'mywarp.warp.soc.*'
                - 'simplesignedit.edit'
                - 'simplesignedit.colour.*'
        Mod:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
                - Trusted
            permissions:
                - 'instabreak.toggle'
                - 'instabreak.bedrock'
                - 'instabreak.ranged'
                - 'weather.get'
                - 'weather.set.*'
                - 'SimpleGodMode.isGod'
                - 'commandbook.give.other'
                - 'commandbook.give.stacks.unlimited'
                - 'commandbook.time'
                - 'commandbook.spawnmob'
                - 'commandbook.teleport.other'
                - 'commandbook.slap'
                - 'commandbook.slap.other'
                - 'commandbook.barrage'
                - 'commandbook.barrage.other'
                - 'commandbook.debug.info'
                - 'textplayer.watch.user'
                - 'herosneak.sneak'
                - 'ClothCommand.cloth'
                - 'remotedet.remote'
                - 'BlockRemover.Block.30'
                - 'BlockRemover.Block.52'
                - 'BlockRemover.Block.92'
                - 'creaturebox.set'
                - 'creaturebox.dropspawner'
                - 'creaturebox.placespawner'
                - 'mywarp.warp.sign.create'
                - 'miner.ore'
        Admin:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
                - Mod
            permissions:
                - 'instabreak.force'
                - 'weather.strike.*'
                - 'weather.invulnerable'
                - 'SimpleGodMode.isGodByDefault'
                - 'permissions.reload.*'
                - 'permissions.list.*'
                - 'permissions.create'
                - 'permissions.delete'
                - 'permissions.has'
                - 'permissions.perms.*'
                - 'permissions.parents.*'
                - 'permissions.info.get'
                - 'permissions.promote.*'
                - 'commandbook.give.infinite'
                - 'commandbook.spawnmob.many'
                - 'commandbook.broadcast'
                - 'commandbook.say'
                - 'commandbook.mute'
                - 'commandbook.rocket'
                - 'commandbook.rocket.other'
                - 'commandbook.shock'
                - 'commandbook.shock.other'
                - 'commandbook.thor'
                - 'commandbook.thor.other'
                - 'commandbook.debug.clock'
                - 'commandbook.reload'
                - 'commandbook.kick'
                - 'commandbook.bans.*'
                - 'stealthlogin.check'
                - 'textplayer.watch.item'
                - 'choptree.command.*'
                - 'herosneak.exempt'
                - 'WolfSpawn.spawn'
                - 'WolfSpawn.spawnatplayer'
                - 'egg.*'
                - 'ClothCommand.cloth.unlimited'
                - 'simplechestlock.reload'
                - 'simplechestlock.save'
                - 'simplechestlock.ignoreowner'
                - 'BlockRemover.Block.7'
                - 'BlockRemover.Block.46'
                - 'myhome.admin.*'
                - 'mywarp.admin'
                - 'creaturebox.give'
                - 'creaturebox.creature.*'
                - 'creaturebox.period'
                - 'creaturebox.count'
                - 'creaturebox.limit'
                - 'creaturebox.requires'
                - 'simplesignedit.edit.all'
                - 'simplesignedit.setowner'
                - 'giveall.give'
        Owner:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
            permissions:
                - '*'
                - '-herosneak.auto'
    
    Mine has a lot of permissions from a lot of plugins already listed. I'm mainly getting the global infrastructure ready for when I start doing a bunch of worlds and actually start having people on my server. Doing it before you need it is always a good way to plan for future growth. I'll eventually go back and reduce a large number of these and make them per world depending on what I feel like having each world be.

    As you can tell, it looks identical to how any world's groups.yml would be set up. It is, no syntax changes or little tricks like the globalUsers.yml for deciding which world you're in.

    Now comes the nice part. In groups.yml for my main world, 'world', I have this as my groups.yml:
    Code:
    groups:
        Default:
            default: true
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
                - '*,Default'
            permissions:
        Trusted:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
                - '*,Trusted'
                - Default
            permissions:
        Mod:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
                - '*,Mod'
                - Trusted
            permissions:
        Admin:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
                - '*,Admin'
                - Mod
            permissions:
        Owner:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
                - '*,Owner'
            permissions:
    
    At this point, I have no chat plugin, so I have no need for prefix/suffix and can probably remove them. But again, going for the infrastructure, I keep it there so I know the full capabilities when the time comes. You may also be wondering, "What the hell is he inheriting with - '*,<group>' ?". That's simple. I'm inheriting the global version of the <group> into this world. That's how come the globalGroups.yml has no syntax changes. It's in each world that you call out to get those permissions. It's also where you change and add to the groups.yml if there's something you want to have be used in a specific world vs another. You can also do it so that globally everyone gets access to a plugin, but in one of the worlds you negate those permissions. Entirely up to you how you set it up.

    Using the above example of dasbreen, I join 'world' and the globalUsers.yml tells the server that I'm part of the group: Owner. But in 'world' groups.yml, Owner doesn't have ANY permissions. "But he's inheriting himself?" No. He's inheriting everything the GLOBAL Owner gets, which in this case is pretty much everything.

    If we take vader501 from above, he'll inherit 2 things: '*,Mod' & Trusted. "Why?" This bit I'm not 100% sure on, as it's a grey area for potential duplicate permissions (which would cancel out and not work), but as far as I can tell, everything is currently still working. I can't say for sure why, but I haven't seen anything break as of yet (set this up on Tuesday myself). It's making sure that he does indeed get the inheritance from the 'Trusted' group of the world, which pulls from the globalGroups.yml as well. Ultimately, he gets his permissions and all is well.

    Now we take a look at the storageconfig.yml. A seemingly arbitrary file, but yet a very powerful one.
    Mine looks like this:
    Code:
    permissions:
        storage:
            type: YAML
            world-inheritance:
                world_nether: world
    
    The normal storageconfig.yml doesn't have the last 2 lines. Those lines help with setting up Global Permissions.
    As mentioned before with per world groups.yml vs globalGroups.yml, you inherit the global version then can add more in each world. What the "world-inheritance:" does is inherits EVERYTHING from one specific world. In the case above, my 'world_nether' inherits all settings for groups and users straight from 'world'. And as with the groups, when you inherit, you get all of what it has to offer, and can then add even more to it!
    I personally don't have anything extra in world_nether at the moment, so both the groups.yml and users.yml are blank. I would most likely, for the moment, be better off doing "worldcopy:" instead of "world-inheritance", but again, infrastructure for when I get around to adding more worlds. I would also take a guess that instead of groups inheriting '*,<group>' that they would inherit '<world>,<group>'.

    In dasbreen's example it would (again, guessing on this bit) be inheriting 'world,Owner'
    This inherits the permissions from Owner of 'world', which inherits from globalGroups.yml. Not the best solution, but it works none-the-less.
    In vader501's example it would be inheriting both 'Trusted' as well as 'world,Mod'.

    The information above was gathered and combined from Revenger on Page 71, as well as the Wiki page provided Here, with my own spin put on it (but mostly just reiterating what had already been said)

    I hope this helps anyone who may have had questions about Global Permissions and didn't know of Revenger's post or the Wiki(which is in the OP).

    tl;dr - start at the top, open the spoiler, and READ!! no shortcuts allowed here :)

    I answered questions 1 thru 3 in my post (on this page even...). Give it a read and come back if you have more questions.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Nov 10, 2018
    noahjk likes this.
  16. Offline

    locutus

    Hey, I'm working on integrating Permissions with another plugin, and I'd like to know the API commands for adding a player to a group.

    I've read the API reference on the wiki, but I couldn't find it there. I didn't check the forum, because 133 pages is too many pages of such low signal to noise. Even searching returned 10 pages.

    Thanks!
     
  17. Offline

    ArmaSteiner

    Hello,
    I need 2 files: users.yml and the group.yml. Can somebody write it down?
    I have got problems with the orders ingame. I can't promote someone in a better group.
    What's the ingame order to promote? group [NAME] [GROUP] is not running!
    I have listened, permissions 3 don't need permissionsplus.
    Is this right?
    But the last problem is: i can't see the prefix ingame:
    users.yml
    Code:
    users:
        Steinerhead:
            groups:
                -Admins
            permissions:
                - '*'
    groups.yml
    Code:
    groups:
        Default:
            default: true
            info:
                prefix: ''
                suffix: ''
                build: false
            inheritance:
        Member:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
                - Default
            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: '&1[Admin]&f'
                suffix: '&f'
                build: true
            inheritance:
            permissions:
                - '*'
    Thanks for the helping hands and eyes
    bye
    AS
     
  18. Can we expect updated documentation? Track have never worked for me but now I'm getting "Track Does not Exist" message.
     
  19. Offline

    senior_hombre

    Can anyone help me?
     
  20. Offline

    Tealk

    hi i become this error message
    http://pastebin.com/q0C7nAy5

    i use
    2011-07-01 14:56:36 [INFO] [Permissions] version [3.1.6] (Yeti) loaded
     
  21. Offline

    rockiesfan1234

    im trying to make 3 more ranks on my server called " architect " "carpenter " and "sculptor"
    i want to make it so they can only spawn certain items.
    ive been trying for several days now to figure it out but i give up.. could someone please take a look at this and tell me what need to be fixed
    Code:
    groups:
        Civil:
            default: true
            info:
                prefix: '&3[&3Civil&3]&f'
                suffix: ''
                build: true
            permissions:
                - 'essentials.rules'
                - 'essentials.motd'
                - 'essentials.spawn'
                - 'essentials.list'
                - 'essentials.msg'
                - 'essentials.warp'
                - 'essentials.sethome'
                - 'essentials.home'
                - 'essentials.tp'
                - 'essentials.afk'
                - 'essentials.signs.buy.use'
                - 'supplysign.access'
                - 'craftbook.mech.elevator.use'
                - 'lwc.protect'
                - 'essentials.back'
                - 'essentials.balance'
                - 'essentials.pay'
                - 'PressurePort.Use'
                - 'commandbook.say.me'
                - 'commandbook.whereami'
                - 'commandbook.whereami.compass'
                - 'commandbook.clear'
                - 'commandbook.call'
                - 'factions.participate'
                - 'factions.create'
                - 'scavenger.scavenge'
                - 'scavenger.scavenge'
                - 'commandbook.items.1'
                - 'commandbook.items.4'
                - 'commandbook.items.5'
                - 'commandbook.items.17'
                - 'commandbook.items.20'
                - 'commandbook.items.24'
                - 'commandbook.items.35'
        TestSubject:
            default: false
            info:
                prefix: '&9[&9TestSubject&9]&f'
                suffix: ''
                build: true
            permissions:
                - 'essentials.rules'
                - 'essentials.motd'
                - 'essentials.spawn'
                - 'essentials.list'
                - 'essentials.msg'
                - 'essentials.warp'
                - 'essentials.sethome'
                - 'essentials.home'
                - 'essentials.tp'
                - 'essentials.afk'
                - 'essentials.signs.buy.use'
                - 'supplysign.access'
                - 'craftbook.mech.elevator.use'
                - 'lwc.protect'
                - 'essentials.back'
                - 'essentials.balance'
                - 'essentials.pay'
                - 'essentials.clearinventory'
                - 'PressurePort.Use'
                - 'commandbook.say.me'
                - 'commandbook.whereami'
                - 'commandbook.whereami.compass'
                - 'commandbook.clear'
                - 'commandbook.call'
                - 'factions.participate'
                - 'factions.create'
                - 'scavenger.scavenge'
                - 'scavenger.scavenge'
                - 'commandbook.items.1'
                - 'commandbook.items.4'
                - 'commandbook.items.5'
                - 'commandbook.items.17'
                - 'commandbook.items.20'
                - 'commandbook.items.24'
                - 'commandbook.items.35'
        Carpenter:
            default: false
            info:
                prefix: '&8[&8Carpenter&8]&f'
                suffix: ''
                build: true
            permissions:
                - 'essentials.item'
                - 'essentials.rules'
                - 'essentials.motd'
                - 'essentials.spawn'
                - 'essentials.list'
                - 'essentials.msg'
                - 'essentials.warp'
                - 'essentials.sethome'
                - 'essentials.home'
                - 'essentials.tp'
                - 'essentials.afk'
                - 'essentials.signs.buy.use'
                - 'supplysign.access'
                - 'craftbook.mech.elevator.use'
                - 'lwc.protect'
                - 'essentials.back'
                - 'essentials.balance'
                - 'essentials.pay'
                - 'PressurePort.Use'
                - 'commandbook.say.me'
                - 'commandbook.whereami'
                - 'commandbook.whereami.compass'
                - 'commandbook.clear'
                - 'commandbook.call'
                - 'factions.participate'
                - 'factions.create'
                - 'scavenger.scavenge'
                - 'commandbook.items.35'
        Sculptor:
            default: false
            info:
                prefix: '&8[&8Sculptor&8]&f'
                suffix: ''
                build: true
            permissions:
                - 'essentials.item'
                - 'essentials.rules'
                - 'essentials.motd'
                - 'essentials.spawn'
                - 'essentials.list'
                - 'essentials.msg'
                - 'essentials.warp'
                - 'essentials.sethome'
                - 'essentials.home'
                - 'essentials.tp'
                - 'essentials.afk'
                - 'essentials.signs.buy.use'
                - 'supplysign.access'
                - 'craftbook.mech.elevator.use'
                - 'lwc.protect'
                - 'essentials.back'
                - 'essentials.balance'
                - 'essentials.pay'
                - 'PressurePort.Use'
                - 'commandbook.say.me'
                - 'commandbook.whereami'
                - 'commandbook.whereami.compass'
                - 'commandbook.clear'
                - 'commandbook.call'
                - 'factions.participate'
                - 'factions.create'
                - 'scavenger.scavenge'
                - 'commandbook.items.1'
                - 'commandbook.items.4'
                - 'commandbook.items.5'
                - 'commandbook.items.17'
                - 'commandbook.items.20'
                - 'commandbook.items.24'
        Architect:
            default: false
            info:
                prefix: '&e[&eArchitect&e]&f'
                suffix: ''
                build: true
            permissions:
                - 'essentials.item'
                - 'essentials.rules'
                - 'essentials.motd'
                - 'essentials.spawn'
                - 'essentials.list'
                - 'essentials.msg'
                - 'essentials.warp'
                - 'essentials.sethome'
                - 'essentials.home'
                - 'essentials.tp'
                - 'essentials.afk'
                - 'essentials.signs.buy.use'
                - 'supplysign.access'
                - 'craftbook.mech.elevator.use'
                - 'lwc.protect'
                - 'essentials.back'
                - 'essentials.balance'
                - 'essentials.pay'
                - 'PressurePort.Use'
                - 'commandbook.say.me'
                - 'commandbook.whereami'
                - 'commandbook.whereami.compass'
                - 'commandbook.clear'
                - 'commandbook.call'
                - 'factions.participate'
                - 'factions.create'
                - 'scavenger.scavenge'
                - 'scavenger.scavenge'
                - 'commandbook.items'
        Jr.Hitman:
            default: false
            info:
                prefix: '&b[&bJr.Hitman&b]&f'
                suffix: ''
                build: true
            permissions:
                - 'essentials.rules'
                - 'essentials.motd'
                - 'essentials.spawn'
                - 'essentials.list'
                - 'essentials.msg'
                - 'essentials.warp'
                - 'essentials.sethome'
                - 'essentials.home'
                - 'essentials.tp'
                - 'essentials.afk'
                - 'essentials.signs.buy.use'
                - 'supplysign.access'
                - 'craftbook.mech.elevator.use'
                - 'lwc.protect'
                - 'essentials.back'
                - 'iConomy.access'
                - 'iConomy.payment'
                - 'PressurePort.Use'
                - 'commandbook.say.me'
                - 'commandbook.whereami'
                - 'commandbook.whereami.compass'
                - 'commandbook.clear'
                - 'commandbook.call'
                - 'factions.participate'
                - 'factions.create'
                - 'commandbook.shock'
                - 'scavenger.scavenge'
                - 'scavenger.scavenge'
                - 'commandbook.items.1'
                - 'commandbook.items.4'
                - 'commandbook.items.5'
                - 'commandbook.items.17'
                - 'commandbook.items.20'
                - 'commandbook.items.24'
                - 'commandbook.items.35'
        ApprenticeHitman:
            default: false
            info:
                prefix: '&d[&dAprrenticeHitman&d]&f'
                suffix: ''
                build: true
            permissions:
                - 'essentials.rules'
                - 'essentials.motd'
                - 'essentials.spawn'
                - 'essentials.list'
                - 'essentials.msg'
                - 'essentials.warp'
                - 'essentials.sethome'
                - 'essentials.home'
                - 'essentials.tp'
                - 'essentials.afk'
                - 'essentials.signs.buy.use'
                - 'supplysign.access'
                - 'craftbook.mech.elevator.use'
                - 'lwc.protect'
                - 'essentials.back'
                - 'iConomy.access'
                - 'iConomy.payment'
                - 'PressurePort.Use'
                - 'commandbook.say.me'
                - 'commandbook.whereami'
                - 'commandbook.whereami.compass'
                - 'commandbook.clear'
                - 'commandbook.call'
                - 'factions.participate'
                - 'factions.create'
                - 'commandbook.shock'
                - 'worldguard.slay'
                - 'worldguard.slay.other'
                - 'scavenger.scavenge'
                - 'scavenger.scavenge'
                - 'commandbook.items.1'
                - 'commandbook.items.4'
                - 'commandbook.items.5'
                - 'commandbook.items.17'
                - 'commandbook.items.20'
                - 'commandbook.items.24'
                - 'commandbook.items.35'
        ServerBuilder:
            default: false
            info:
                prefix: '&2[&2ServerBuilder&2]&f'
                suffix: ''
                build: true
            permissions:
                - 'commandbook.override.any-item'
                - 'essentials.give.*'
                - 'essentials.rules'
                - 'essentials.motd'
                - 'essentials.spawn'
                - 'essentials.list'
                - 'essentials.msg'
                - 'essentials.warp'
                - 'essentials.sethome'
                - 'essentials.home'
                - 'essentials.tp'
                - 'essentials.signs.buy.use'
                - 'supplysign.access'
                - 'craftbook.mech.elevator.use'
                - 'lwc.protect'
                - 'essentials.back'
                - 'iConomy.access'
                - 'iConomy.payment'
                - 'PressurePort.Use'
                - 'nocheat.*'
                - 'magiccarpet.mc'
                - 'magiccarpet.ml'
                - 'factions.participate'
                - 'factions.create'
                - 'commandbook.say.me'
                - 'commandbook.whereami'
                - 'commandbook.whereami.compass'
                - 'commandbook.clear'
                - 'commandbook.call'
                - 'scavenger.scavenge'
        Moderator:
            default: false
            info:
                prefix: '&1[&1Moderator&1]&f'
                suffix: ''
                build: true
            permissions:
                - '*'
        Warlord:
            default: false
            info:
                prefix: '&6[&6Warlord&6]&f'
                suffix: ''
                build: true
            permissions:
                - '*'
        Thor:
            default: false
            info:
                prefix: '&e[&bThor/&eHitman&b]&f'
                suffix: ''
                build: true
            permissions:
                - '*'
        King-Owner:
            default: false
            info:
                prefix: '&4[&4King-Owner&4]&f'
                suffix: ''
                build: true
            permissions:
                - '*'
        Poseidon:
            default: false
            info:
                prefix: '&9[&1P&4o&es&5e&2i&dd&6o&3n&9]&f'
                suffix: ''
                build: true
            permissions:
                - '*'
        KingOfTheOzone:
            default: false
            info:
                prefix: '&4[&4KingOfTheOzone&4]&f'
                suffix: ''
                build: true
            permissions:
                - '*'
    
     
  22. Offline

    ACStache

    first off, to promote you'd need a track. You can use the add/remove commands found on this page.
    secondly, you need a chat plugin to be able to see Prefixes/Suffixes/Colors.
    lastly, you've given yourself - '*' permission in the user file and group of Admin, when Admin already has - '*' permission. Take the one out from your users file and that should ensure you don't have permission nodes not working for you.

    that may be a question to post in the CommandBook thread. it looks like you're trying to use the item blacklist/whitelist. I'm not familiar with how that works, so you'd be better off asking there. As far as your permissions config set up, it looks fine. Is permissions not working or is what you're trying to achieve not working?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Nov 10, 2018
  23. Offline

    rockiesfan1234

    They dont have the permission so ill go ahead and try that. thanks
     
  24. Offline

    m0dulus

    How do I set up the promotion/demotion tracks?
     
  25. Offline

    wouter0100

    I use this:

    Code:
    permissions:
        storage:
            type: YAML
            world-inheritance:
                NLMineCraft_nether: NLMineCraft
    But it dont work?

    NLMineCraft_nether: NLMineCraft
    is good.
     
  26. Offline

    poppit

    Ok just so you all know, permissions 3.16 does not work with Bukkit build #946. The only people that are allowed to use ANY of the commands are the OP's like me. None of my moderators on the server can use commands because most of our MineCraft's auto-updated and didn't ask, so we had to go to build #946 for 1.7_01. If you want a user to use commands make them a op and restart your server, but be warned, they have access to all commands.
     
  27. Offline

    Trevor_



    I don't know what the fuck you think you're doing for this plugin but the whole long ass command for promotion is absolute bullshit. I've already screwed up 8 times in a row trying to promote one person. You either need to get the new commands out now or this plugin is going to die very quickly.
     
  28. Offline

    Maxis010

    PermissionsPlus or fork permissions and rewrite the command structure, I offered to do a rewrite but I received no support so I dropped it
     
  29. Offline

    Firepun

    I did ALL of the files, and there are no more red thingys. It works! Thanks a whole lot! :D
     
  30. Offline

    riuthamus

    works with newest 1.7.2 build. Although we are having a weird issue where if we use tracks to update a persons rank, it prevents them from building certain objects... like diamond tools or pistons.
     
  31. Offline

    Our Revolution

    Code:
    2011-07-01 19:18:27 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-904-g9277096-b953jnks (MC: 1.7.2)
    2011-07-01 19:18:27 [INFO] [Permissions] Creating storageconfig.yml.
    2011-07-01 19:18:27 [SEVERE] java.lang.IllegalAccessError: tried to access class com.nijiko.permissions.ModularControl$RefreshTask from class com.nijiko.permissions.ModularControl
    2011-07-01 19:18:27 [SEVERE]     at com.nijiko.permissions.ModularControl.<clinit>(ModularControl.java:45)
    2011-07-01 19:18:27 [SEVERE]     at com.nijikokun.bukkit.Permissions.Permissions.setupPermissions(Permissions.java:184)
    2011-07-01 19:18:27 [SEVERE]     at com.nijikokun.bukkit.Permissions.Permissions.onLoad(Permissions.java:139)
    2011-07-01 19:18:27 [SEVERE]     at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:121)
    2011-07-01 19:18:27 [SEVERE]     at org.bukkit.craftbukkit.CraftServer.<init>(CraftServer.java:89)
    2011-07-01 19:18:27 [SEVERE]     at net.minecraft.server.ServerConfigurationManager.<init>(ServerConfigurationManager.java:51)
    2011-07-01 19:18:27 [SEVERE]     at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:132)
    2011-07-01 19:18:27 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:335)
    2011-07-01 19:18:27 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-07-01 19:18:27 [SEVERE] [Permissions] Unable to load permission data.
    2011-07-01 19:18:27 [SEVERE] [Permissions] Shutting down Permissions due to error(s).
    2011-07-01 19:18:27 [INFO] [Permissions] (Yeti) was initialized.
    2011-07-01 19:18:27 [INFO] Preparing level "Merium"
    2011-07-01 19:18:27 [INFO] Preparing start region for level 0 (Seed: 2128520613)
    2011-07-01 19:18:27 [INFO] [SpawnMob] Permission system found, plugin enabled
    2011-07-01 19:18:27 [INFO] [SpawnMob] Version 1.9.4 enabled.
    2011-07-01 19:18:27 [INFO] [Permissions] (Yeti) disabled successfully.
    Hello,
    It doesn't work with newest minecraft (1.7.2)^^
     
Thread Status:
Not open for further replies.

Share This Page