[Bukkit guide] PermissionsEX (PEX)

Discussion in 'Bukkit Help' started by zipron, Feb 16, 2012.

?

Did this guide help youN

  1. Yes

    24 vote(s)
    51.1%
  2. A bit

    9 vote(s)
    19.1%
  3. No

    14 vote(s)
    29.8%
Thread Status:
Not open for further replies.
  1. Offline

    zipron

    [Bukkit guide] PermissionsEX (PEX)
    In this guide I’ll try to explain some things about PEX, the permission plugin most used at the moment.

    Table of contents
    - About permissions
    - PEX and addons
    - The permissions file
    - Useful links
    - Endings

    About permissions
    Permissions are a must for a bukkit server with plugins. It’s the best way of securing your server, fully configure groups and more. I wrote a beginner guide for permissions here: http://forums.bukkit.org/threads/bukkit-guide-permissions.50305/#post-964739. This guide uses EGM (essentials groupmanager). It’s an older plugin but very easy to start with. I used this plugin for a year before starting with PEX. I won’t explain full YAML syntax here, if you never worked in a YAML file, please read the guide linked before.

    PEX and addons
    PEX offers a very easy (though difficult for beginner users) way of handling permissions. The good thing about the plugin is that it supports more then the “default” plugin permission nodes. It gives us the possibility to fully configure all permissions in one file, for your whole server. Ofcrouse, you’ll need addons for these functions. At the moment there are the ChatManager plugin and the Modify world plugin. These plugins give some very easy to use nodes, wich allows us for example denying certain groups to destroy certain blocks,.. You’ll find the download links in the “useful link” section. I’ll explain the permission nodes of these two plugins also, but remember you don’t have to use them, they are only addons to PEX.

    The permissions file
    The PEX permissions files is located here: <serverdir>/plugins/PermissionsEx/permissions.yml. Unlike some other permission plugins, PEX has one file for all worlds. It makes things a lot easier and gives us a very good system to work with: A player with “VIP” status in world1 can also have it automatically in world2 without any need of the admin promoting that player in the other world. You This system isn’t supported by any other plugins, which is a big advantage. Before taking a look at the config file, I would like to give some basic YAML tips:
    - Use - ‘*’ to give all permissions of all plugins.
    - Use –plugin.* or –plugin.node.* to give a group of permissions at once.
    - Use double – to deny a permission: - -plugin.node
    Open the config file, The best editor you can use is notepad++, a free editor. As we know, YAML doesn’t support tabs, so be sure to use spaces (notepad++ can replace tabs by spaces). The PEX config file spaces by 4. This means 4 spaces = a new level in the YAML file. This is not the same in other permission plugins such as EGM. To start, we create a default group with the following options:
    Code:
    groups:
        default_group:
            default: true
            permissions: []
            inheritance: []
            options: []
            worlds: []
            prefix: ''
            suffix: ''
    
    You can already see a list of all available properties you can add to a group. [] means there aren’t any nodes for this property. You can also leave these properties out, but of course we’ll add nodes very soon.

    The default property decides which group players are when they newly join the server. Only one group can be default.

    The permission property decides which commands/permissions a group has. This is the main reason why to use a permission plugin. You’ll be able to add nodes, each on a separate line:
    Code:
            permissions:
            - -'*’
    
    This node will deny a player to use any command. This is an extra safety you can build in so you’re sure a new player cannot use anything. You can add as much nodes as you want:
    Code:
            permissions:
            - -'*’
            - essentials.rules
            - essentials.warp
            - authme.*
            - -authme.admin.*
    
    This setup will: deny all permissions, add the permission for /rules, /warp, /login, /register and will deny all Authme admin commands. See that I first allow all commands, and afterward I deny the admin section of Authme. This is a way of making things easier, it’s possible to add all nodes for separate permissions, but you can also do it vice versa. If you’re not sure how to use the permission nodes, I suggest you check out the permissions guide I wrote (links at the end of this guide)

    The inheritance property defines which group the group has to inherit from. Say you have a default group “guest” and a group above that called “player”. You want guests being able to use some commands: /rules, /info,… and players are allowed to set homes, to whisper, to use ktis, to destroy block and so on. But you also want players being able to use /help and /info. You can add the permissions to the player group too, or you could inherit the guest group. This means all permissions for guests, are allowed for players too. An example:
    Code:
        guest:
            default: true
            permissions:
            - -'*’
            - essentials.rules
            - essentials.warp
            - authme.*
            - -authme.admin.*
        …
        player:
            default: false
            permissions:
            - essentials.back
            - essentials.back.ondeath
            - essentials.clearinventory
            - essentials.delhome
            - essentials.help
            - essentials.home
            - essentials.ignore
            - essentials.mail
            - essentials.mail.send
            - essentials.motd
            - essentials.msg
            - essentials.r
            - essentials.reply
            - essentials.rules
            - essentials.sethome
            - essentials.spawn
            - essentials.tpaccept
            - essentials.tpdeny
            inheritance:
            - guest
    
    You can see that the player group will now inherit the guest group.

    The option property holds ranking information. You can define ranks and rank-ladders. Both are a unique feature in PEX, and makes it a lot easier to promote and demote players. Let’s talk about ranks first. This is a number which you can choose. It can be 1, it can be 1000 or more. The group should get the highest rank number. For example:
    Code:
        guest:
        …
            options:
                rank: ‘1000’
        player:
        …
            options:
                rank: ’900’
        member:
        …
            options:
                rank: ’800’
        VIP:
        …
            options:
                rank: ’20’
        admin:
        …
            options:
                rank: ’10’
    
    Assuming guests is the default group, using the command /pex promote zipron will make me a player. Using it again makes me member and so on. This way you don’t have to remember which groups players have to be in, one single command for all promotion. /pex demote zipron will demote the same way. You can also add people to a group using /pex group <group> user add <user>, to remove you do /pex group <group> user remove <user>. Be sure to understand the differences between these commands! Adding a user to a group (let’s say I add myself to admin group) will not remove the user from the other group (so I would be in member & admin group). Listing all users can be done with /pex groups list, list all users in a group can be done with /pex group <group> users. The reason I use 1000,900,800,... is just a matter of choice, you can use 10,9,8,7,.. if you like but this way is useful if you want to add another group somewhere between.

    Next in the option property is the rank-ladder node. This is an ingenious system, making it possible to have several “communities”. Each rank-ladder has his own rank countdown. Let’s give an example (yes, yes WoW reference, I wasn’t very creative when I wrote this =D)
    Code:
        guest:
        …
            options:
                rank: ‘1000’
        human:
        …
            options:
                rank: ’900’
                rank-ladder: alliance
        night-elf:
        …
            options:
                rank: ’900’
                rank-ladder: alliance
        orc:
        …
            options:
                rank: ’1000’
                rank-ladder: horde
        blood-elf:
        …
            options:
                rank: ’900’
                rank-ladder: horde
    
    As you can see, we have the default guest group, with no rank ladder. This will be the default ladder group. When you sue /pex demote/promote <player> it will use this group. There is only one group with no rank-ladder, which means you’ll always become guest when using previous command. To promote someone on a ladder, you use /pex promote <user> <ladder> and demote with /pex demote <user> <ladder>. This means you can have several groups with the same permissions, fully separated from each other. It’s a pretty cool feature and easy to use.

    The worlds property is a very powerful one. The idea is the same as other permission plugins: assigning other permissions to people when they are in another world. The major difference with PEX is that worlds are handled in the same file, using the same groups. This means you can make someone VIP in all your world, with only one promotion. I had this issue with EGM for a long time: I only wanted members being able to build in creative world. This meant I had to promote someone to member in survival, go to creative and promote him again. With PEX, you can do it at once, and in my opinion, this is the true power of PEX. Now let’s take a look at the way we do this:
    Code:
        guest:
            default: true
            permissions:
            - -'*’
            - essentials.rules
            - essentials.warp
            - authme.*
            - -authme.admin.*
            worlds:
                world_pvp:
                    permissions:
                    - -factions.money.withdraw.any
                    - essentials.ignore
                    - essentials.mail
                    - essentials.mail.send
                    - essentials.motd
                    - essentials.msg
                    - essentials.r
                    - essentials.reply
                    - essentials.rules
                    - essentials.spawn
                    - essentials.warp
                    - -factions.admin
                    - factions.*
                    inheritance:
                    - guest
                    prefix: ‘[pvp]’
    
    As you can see, a lot more nodes now for the guest group. In this example we have two worlds: world and world_pvp. In the normal world, only people who get permission (read: who get promoted) can build and play. However, the PvP world, where everything is allowed, players are allowed to play even when they are new. That’s why we use the world property. In the world property we add properties as we did before. This example means “players are guests in all world but in world_pvp, where they can use more commands such as the faction commands and they also have another prefix.” We also inherit the guest group so we get all permissions needed.

    Prefixes and suffixes are pretty straight forward, just add the desired pre-/suffix in the ‘ ‘.

    A good example: now we know how inheritance and worlds properties work, it’s time for a good examples. I will include my permission file in here, but first I will explain the idea. I have a server with three major worlds: survival, creative and pvp. I want all players being able to play pvp, but not survival and creative unless promoted. The ranks are these:
    Junk: not allowed to do anything
    guest: only pvp allowed (hey are allowed to access the others, but not build in it)
    player: can build in pvp and survival, and use some basic commands in survival
    member: can build in pvp, survival and creative, can use many survival commands such as kits and homes
    admin: admin of the server, he needs all permissions
    owner: that would be me.
    Code:
    groups:
        pvp:
            default: false
            permissions:
            - -'*'
            - modifyworld.bucket.*
            - modifyworld.blocks.*
            - modifyworld.items.*
            - modifyworld.damage.*
            - modifyworld.vehicle.*
            - -lockette.user.create.*
            - -jobs.admin.*
            - -factions.money.withdraw.any
            - -authme.admin.*
            - authme.*
            - chestShop.shop.buy
            - chestShop.shop.sell
            - essentials.ignore
            - essentials.mail
            - essentials.mail.send
            - essentials.motd
            - essentials.msg
            - essentials.r
            - essentials.reply
            - essentials.rules
            - essentials.spawn
            - essentials.warp
            - factions.admin
            - factions.chat
            - factions.claim
            - factions.create
            - factions.deinvite
            - factions.description
            - factions.disband
            - factions.help
            - factions.home
            - factions.invite
            - factions.join
            - factions.kick
            - factions.leave
            - factions.list
            - factions.mod
            - factions.money.*
            - factions.money.balance
            - factions.money.balance.any
            - factions.money.deposit
            - factions.money.withdraw
            - factions.owner
            - factions.ownerlist
            - factions.power
            - factions.power.any
            - factions.relation
            - factions.sethome
            - factions.show
            - factions.tag
            - factions.title
            - factions.unclaim
            - iConomy.access.*
            - iConomy.help
            - iConomy.holdings
            - iConomy.payment
            - jobs.*
            - jobs.join.*
            - jobs.world.*
            - lockette.user.create.*
            - multiverse.access.*
            - multiverse.portal.access.*
        junk:
            default: false
            permissions: []
            inheritance: []
            options:
                rank: '1001'
            prefix: '&7'
        guest:
            default: true
            permissions:
            - -'*'
            - modifyworld.*
            - -modifyworld.bucket.*
            - -modifyworld.blocks.*
            - -modifyworld.items.*
            - -modifyworld.damage.*
            - -modifyworld.vehicle.*
            - authme.*
            - -authme.admin.*
            - essentials.rules
            - essentials.warp
            - multiverse.access.*
            - multiverse.portal.access.*
            - multiverse.portal.access.survival_pvp
            inheritance: []
            options:
                rank: '1000'
            prefix: '&7[Guest] &f'
            worlds:
                world_pvp:
                    permissions: []
                    inheritance:
                    - pvp
                    prefix: '&4[PvP] &f'
                world_pvp_nether:
                    inheritance:
                    - pvp
                    prefix: '&4[PvP] &f'
                world_pvp_the_end:
                    inheritance:
                    - pvp
                    prefix: '&4[PvP] &f'
        player:
            default: false
            permissions:
            - modifyworld.bucket.*
            - modifyworld.blocks.*
            - -modifyworld.blocks.place.46
            - -modifyworld.blocks.interact.46
            - modifyworld.items.*
            - modifyworld.damage.*
            - modifyworld.vehicle.*
            - -multiverse.portal.access.*
            - -authme.admin.*
            - authme.*
            - essentials.back
            - essentials.back.ondeath
            - essentials.clearinventory
            - essentials.delhome
            - essentials.help
            - essentials.home
            - essentials.ignore
            - essentials.mail
            - essentials.mail.send
            - essentials.motd
            - essentials.msg
            - essentials.r
            - essentials.reply
            - essentials.rules
            - essentials.sethome
            - essentials.spawn
            - essentials.tpaccept
            - essentials.tpdeny
            - essentials.warp
            - multiverse.access.*
            - multiverse.portal.access.creative
            - zipron.build
            - zipron.tnt
            inheritance:
            - guest
            options:
                rank: '900'
            prefix: '&3[P] &f'
            worlds:
                world_pvp:
                    permissions: []
                    inheritance:
                    - pvp
                    prefix: '&4[PvP] &f'
                world_pvp_nether:
                    inheritance:
                    - pvp
                    prefix: '&4[PvP] &f'
                world_pvp_the_end:
                    inheritance:
                    - pvp
                    prefix: '&4[PvP] &f'
                world_creative:
                    inheritance:
                    - guest
        member:
            default: false
            permissions:
            - modifyworld.blocks.place.46
            - modifyworld.blocks.interact.46
            - authme.*
            - -authme.admin.*
            - chestShop.shop.buy
            - chestShop.shop.create
            - chestShop.shop.sell
            - ecocreature.gain.*
            - ecocreature.reward.*
            - essentials.kit
            - essentials.kit.axe
            - essentials.kit.pick
            - essentials.kit.spade
            - essentials.kit.sword
            - essentials.kit.tools
            - essentials.sethome.multiple
            - essentials.tpa
            - essentials.warp
            - essentials.warp.arena
            - essentials.warp.creative
            - essentials.warp.list
            - essentials.warp.shop
            - essentials.warp.survival
            - factions.chat
            - factions.home
            - iConomy.access.*
            - iConomy.help
            - iConomy.holdings
            - iConomy.payment
            - jobs.join.*
            - jobs.world.*
            - jobs.world.world
            - lockette.user.create.*
            - multiverse.access.*
            - multiverse.portal.access.*
            - worldguard.region.addmember.own.*
            - worldguard.region.info.*
            - worldguard.region.removemember.own.*
            - zipron.build
            inheritance:
            - player
            options:
                rank: '800'
            prefix: '&3[M] &f'
            worlds:
                world_pvp:
                    permissions: []
                    inheritance:
                    - pvp
                    prefix: '&4[PvP] &f'
                world_pvp_nether:
                    inheritance:
                    - pvp
                    prefix: '&4[PvP] &f'
                world_pvp_the_end:
                    inheritance:
                    - pvp
                    prefix: '&4[PvP] &f'
        admin:
            default: false
            permissions:
            - '*'
            inheritance:
            - member
            options:
                rank: '2'
            prefix: '&3[Admin] &f'
        owner:
            default: false
            permissions:
            - '*'
            inheritance:
            - admin
            options:
                rank: '1'
            prefix: '&3[Owner] &f'
    
    Let’s take a look at each group:
    Pvp is a group we will use to grant per world permission in the pvp worlds. We want all permissions the same in the overworld, the nether and the end for pvp. This group won’t be used as a real group, it will be inherited, that’s why we don’t give it any ranking.
    Junk is a group for player who are being punished, they aren’t allowed to do anything: - -‘*’. Their rank is 1001, one higher than the default group.
    Guest is the default group. They have few permissions: some help and warp commands to all worlds. They aren’t allowed to build etc, in this example I use ModifyWorld, I’ll talk briefly about that in the end of this guide.We can see guests are rank 1000, so every group that is higher, needs a lower rank. We also notice that the worlds property is specified: in world_pvp, world_pvp_nether and world_pvp_the_end people are allowed to do a lot more, even if they are new to the server. That’s why we inherit the pvp group. You could manually add all permissions, but you had to do that than for each world (which would give a much longer permissions list). This is a very useful technique you can use and I highly recommend it!
    Player group is the group for people who are allowed to play in survival (of course also in pvp, that’s why we add the worlds property). Notice that we don’t want them to build in creative, so we add world_creative in the worlds property, and make it inherit guest group. This means it will use the guest permissions, not the one players have.
    Members gain access to all worlds, and have much more commands. We don’t have to add world_creative in the worlds property: the group permissions will be used in all worlds, unless specified in the worlds property. So for survival and creative, PEX will use member permissions, for pvp it will use the pvp group permissions.
    Admin gets all permissions: - ‘*’ and that’s all.
    Owner is the same as Admin, only with another title.

    ModifyWorld and Chatmanager can be used for protection and chat purposes. ModifyWorld can do the same as worldguard’s blacklist does, only you can add things directly into the permissions file, you don’t have to use the blacklist (be sure to check out my anti-grief guide for more information about blacklist). Chatmanager has some cool features, be sure to check the config file of both plugins. I will provide a link to the permission nodes pages.

    ATTENTION!
    In theory and in logic minded people brains, all the inheritance options like I explained should work fine. Now there is an issue with PEX (I think of it as a bug, however people will say it's not, it's a way of implementing stuff): if you inherit another group, you cannot use the - -'*' node. This means you cannot clear the permissions a group got for a subgroup. The way to fix this (and I don't like that but there is no other way) is by assigning only permissions to your parent group which that group can have in all worlds. Than you can simply add per-world permissions in the subgroups and inherit them.

    Useful links
    PEX forum: http://forums.bukkit.org/threads/admn-dev-permissionsex-pex-v1-18-tomorrow-is-today-1-1.18140/
    PEX wiki: https://github.com/t3hk0d3/PermissionsEx/wiki
    All PEX commands and nodes: https://github.com/t3hk0d3/PermissionsEx/wiki/Commands
    ModifyWorld: https://github.com/t3hk0d3/PermissionsEx/wiki/Modifyworld
    Chatmanager: https://github.com/t3hk0d3/PermissionsEx/wiki/Chat-Manager
    Permission guide: http://forums.bukkit.org/threads/bukkit-guide-permissions.50305/
    A very nice tool for building your permissions file online: http://www.wi-alliance.com/yamlhelper/

    Endings
    I’ve worked with essentials groupmanager for more than a year. I liked this plugin, but it has some things I would like to have different. That’s when I heard of PEX. This is the best permission plugin around at the moment, no doubt. However, PEX is a lot more difficult because it offers a lot more. You’ll have to learn YAML syntax always, for almost each plugin so that’s not really a problem. My advice to all new users: read some guides about these plugins (I also wrote a few). Decide if you need all the feature PEX offers, or if you only need the basics. Upgrading to PEX is pretty easy, you can even use commands for it (however I would advice to make your permission file fully manually). I wish everyone good luck with this plugin, and I hope I helped you a bit.
    Thanks,
    Zipron

    About the permission examples:
    I included my own permission file as an example to understand the plugin. I hope everyone is respectful enough not to claim it as his own. I won't make permission files, I do want to help you and give feedback if you need it in this topic.
    Feedback:
    feedback is always apprieciated =)
     
    JWhy and Gengarx33 like this.
  2. Offline

    ZeroZX4

    in every prefix why there is space after ] ?
     
  3. Offline

    zipron

    Because then there is a space after the name in the chat:
    [pvp]zipron or [pvp] zipron it's just the way you want to have it =)
     
  4. Offline

    cayeldo

    This has been a great help (thanks for writing this). I was hoping that I could get some help with PermissionsEx. I have recently set it up and I believe i have everything set up correctly (copy of permissions file below). I do not get a lot of errors, however, upon restart the permissions will work fine, but at some point, they stop working for everyone. I run a small server for family and friends, and I basically want to limit some of the core bukkit commands (e.g. gamemode, teleport, etc). Can someone please review my settings to see if I have something wrong? (I have the spaces correct in the .yml file)

    Code:
    groups:
        Default:
            default: true
            options:
                rank: '300'
            prefix: null
            permissions:
            - modifyworld.chat
        Friend:
            options:
                rank: '200'
            prefix: '[&aFriend&f]'
            permissions:
            - appleseed.plant.*
            - modifyworld.*
            - iConomy.plus
            - minevehicles.aircraft.*
            - minevehicles.submarine*
            - minevehicles.general.*
            - parachute.enable
            - ChestShop.shop.*
            inheritance:
            - Default
        Manager:
            options:
                rank: '100'
            prefix: '[&9Manager&f]'
            permissions:
            - bukkit.command.gamemode
            - bukkit.command.give
            - bukkit.command.teleport
            - bukkit.command.list
            - bukkit.command.kill
            - appleseed.infinite.cap
            - chestlock.*
            - -chestlock.admin
            - worldedit.*
            - mobdisguise.*
            inheritance:
            - Friend
        Admin:
            options:
                rank: '0'
            prefix: '[&cAdmin&f]'
            permissions:
            - '*'
    users:
        cayeldo:
            group:
            - Admin
        apachekiller:
            group:
            - Manager
        cheseballs1519:
            group:
            - Admin
        vampier1234:
            group:
            - Manager
    

    I'm also including the config file:

    Code:
    permissions:
        log-players: false
        backends:
            file:
                file: permissions.yml
        backend: file
        superperms:
            parent-nodes: true
            enable: false
            strict-mode: false
        createUserRecords: false
        allowOps: false
        debug: false
        basedir: plugins\PermissionsEx
    I don't get any major console errors that could be causing this. Please help!
    Sincerely,
    Don
     
  5. Offline

    zipron


    The only problem I can see if the prefix in your default group:
    if you don't want a prefix do it like this:
    Code:
    prefix: []
    if you do want a prefix use ':
    Code:
    prefix: 'null'
    All seems fine, so if this doesn't help to get rid of the errors, copy-paste your server.log file in here =)
    zip
     
  6. Offline

    cayeldo

    Thank you so much for helping. Here is the server.log file (i just changed the name to serverlog.txt from server.log.

    (i uploaded the file, but i don't see it in this post. How do i upload it so it shows up?)
     

    Attached Files:

  7. Offline

    ZeroZX4

    paste content here

    http://pastebin.com/
     
  8. Offline

    cayeldo

    I just noticed this in the log. Could this be what is messing things up?

    I have also uploaded the file here.

    http://www.cayelli.com/minecraft/server.log.txt

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

    ZeroZX4

    2012-02-18 09:51:54 [SEVERE] java.lang.RuntimeException: Permissions manager is not accessable. Is the PermissionsEx plugin enabled?
    2012-02-18 09:51:54 [SEVERE] at ru.tehkode.permissions.bukkit.PermissionsEx.getPermissionManager(PermissionsEx.java:155)
    2012-02-18 09:51:54 [SEVERE] at ru.tehkode.permissions.bukkit.PermissionsEx.getUser(PermissionsEx.java:162)
    2012-02-18 09:51:54 [SEVERE] at ru.tehkode.permissions.bukkit.superperms.PermissiblePEX.performCheck

    i think you got bukkit permissions and pex configured and that make collision on each other but who cares

    paste here your pex

    http://pastebin.com/

    and if by any chance u also got group manager than move it to temp folder but leave no files of it on plugins folder

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

    cayeldo

    I don't understand. How do i disable the bukkit permissions then? My PEX cofig and permissions.yml file were posted in my earlier post in the thread. Thanks again for looking in to this for me. I have no idea why PEX stops working. A simple console reset and the PEX will work again for a while.
     
  11. Offline

    ZeroZX4

    in ur bukkit folder you have permissions.yml open it and clean it up - delete all from it


    and i dont see your permissions uploaded

    just upload it to pastebin and post here a link to it that wont harm u
     
  12. Offline

    cayeldo

    Last edited by a moderator: May 24, 2016
  13. Offline

    ZeroZX4

  14. Offline

    cayeldo

    So I should list the users first in my permissions file and then the groups second?
     
  15. Offline

    zipron

    Doesn't matter which one comes first =)
    cayeldo be sure you don't use any other permission plugins but PEX. Download the pex pack from the dev page (http://dev.bukkit.org/server-mods/permissionsex/) and before putting the jars in your plugins folder, delete all permission-related plugins: essentialsGroupManer, groupBridge, bPerms,.. Also do what zero suggested (thanks zero) and clean your permission.yml file in your root folder =)

    zip
     
  16. Offline

    ZeroZX4

    zipron

    well some guy here had problem with mcmmo when in his pex groups was 1st and than users

    so just in case i advise every1 to list 1st users

    since for this guy listing users 1st made mcmmo work perfectly
     
  17. Offline

    zipron

    Ok didn't know that, thanks for the information =) we can never know enough =)
     
  18. Offline

    Mr. LethaL

    I need help Dx. All the people that join tell me they get an Internal Server Error, i know it has to be PEX cause this is the only file i edited when i got the error please tell me if im missing something?


    Code:
    groups:
      Guest:
        default: true
        build: false
        prefix: '&8[Guest]&f'
        options:
          rank: '10'
        permissions:
        - essentials.spawn
        - essentials.rules
        - essentials.motd
        - essentials.list
        - essentials.helpop
        - essentials.help
        - jobs.world.*
        - essentials.warp
        - ChestShop.shop.buy
        - ChestShop.shop.sell
        - ChestShop.shop.create
        - iConomy.user
        - essentials.back
        - essentials.afk
        - essentials.home
        - essentials.mail.send
        - essentials.sethome
        - essentials.tpa
        - essentials.warp
        - essentials.warp.list
        - essentials.worth
        - lwc.create
        - lwc.modify
        - lwc.remove
        - lwc.unlock
        - factions.join
        - lwc.protect
        - modifyworld.chat
        - qQuest.give
        - qQuest.info
        - qQuest.drop
        - qQuest.done
      Member:
        default: false
        prefix: '&5[Member]&f'
        options:
          rank: '9'
        permissions:
        - essentials.afk
        - essentials.back
        - essentials.back.ondeath
        - essentials.balance
        - essentials.balance.others
        - essentials.balancetop
        - essentials.chat.shout
        - essentials.chat.question
        - essentials.compass
        - essentials.depth
        - essentials.home
        - essentials.ignore
        - essentials.kit
        - essentials.kit.tools
        - essentials.mail
        - essentials.mail.send
        - essentials.warp
        - essentials.warp.list
        - essentials.me
        - essentials.msg
        - essentials.pay
        - essentials.ping
        - essentials.powertool
        - essentials.protect
        - essentials.sethome
        - essentials.signs.use.*
        - essentials.signs.create.disposal
        - essentials.signs.create.mail
        - essentials.signs.create.protection
        - essentials.signs.create.trade
        - essentials.signs.break.disposal
        - essentials.signs.break.mail
        - essentials.signs.break.protection
        - essentials.signs.break.trade
        - essentials.suicide
        - essentials.time
        - essentials.tpa
        - essentials.tpaccept
        - essentials.tpahere
        - essentials.tpdeny
        - essentials.warp
        - essentials.warp.list
        - essentials.worth
        - lwc.create
        - lwc.modify
        - lwc.remove
        - lwc.unlock
        - iConomy.hel
        - iConomy.holdings
        - iConomy.payment
        - factions*
        - essentials.kit*
        - essentials.warp
        - essentials.spawn
        - essentials.motd
        - iConomy.help
        - iConomy.holdings
        - iConomy.holdings.others
        - iConomy.payment
        - factions.kit.halfplayer
        - modifyworld.*
        inheritance:
        - Guest
      Helper:
        default: false
        prefix: '&a[Helper]&f'
        options:
          rank: '8'
        permissions:
        - essentials.afk
        - essentials.back
        - essentials.back.ondeath
        - essentials.balance
        - essentials.balance.others
        - essentials.balancetop
        - essentials.chat.color
        - essentials.chat.shout
        - essentials.chat.question
        - essentials.compass
        - essentials.depth
        - essentials.home
        - essentials.ignore
        - essentials.kit
        - essentials.kit.tools
        - essentials.mail
        - essentials.mail.send
        - essentials.me
        - essentials.msg
        - essentials.pay
        - essentials.ping
        - essentials.powertool
        - essentials.protect
        - essentials.sethome
        - essentials.signs.use.*
        - essentials.signs.create.disposal
        - essentials.signs.create.mail
        - essentials.signs.create.protection
        - essentials.signs.create.trade
        - essentials.signs.break.disposal
        - essentials.signs.break.mail
        - essentials.signs.break.protection
        - essentials.signs.break.trade
        - essentials.suicide
        - essentials.time
        - essentials.worth
        - lwc.create
        - lwc.modify
        - lwc.remove
        - lwc.unlock
        - iConomy.hel
        - iConomy.holdings
        - iConomy.payment
        - factions*
        - essentials.kit*
        - essentials.warp
        - essentials.spawn
        - essentials.motd
        - iConomy.help
        - iConomy.holdings
        - iConomy.holdings.others
        - iConomy.payment
        - factions.kit.halfplayer
        - essentials.tpa
        inheritance:
        - Member
      Builder:
        default: false
        prefix: '&9[Builder]&f'
        options:
          rank: '7'
        permissions:
        - worldedit.generation.cylinder
        - worldedit.generation.cylinder
        - worldedit.generation.sphere
        - worldedit.generation.sphere
        - worldedit.generation.forest
        - worldedit.history.undo
        - worldedit.history.redo
        - worldedit.navigation.unstuck
        - worldedit.navigation.up
        - worldedit.region.replace
        - worldedit.region.stack
        - worldedit.region.set
        - worldedit.region.overlay
        - worldedit.region.naturalize
        - worldedit.region.walls
        - worldedit.region.faces
        - worldedit.region.smooth
        - worldedit.region.move
        - worldedit.regen
        - worldedit.region.move
        - worldedit.selection.pos
        - worldedit.selection.hpos
        - worldedit.wand
        - worldedit.wand.toggle
        - worldedit.superpickaxe
        - worldedit.clipboard.copy
        - worldedit.clipboard.paste
        - worldedit.clipboard.rotate
        inheritance:
        - Helper
    Donator:
        default: false
        prefix: '&b[Donator]&f'
        options:
          rank: '6'
        permissions:
        - essentials.chat.color
        - essentials.thunder
        - essentials.time
        - essentials.time.set
        - essentials.jump
        - essentials.togglejail
        - essentials.top
        - essentials.tp
        - essentials.tphere
        - essentials.tppos
        - essentials.tptoggle
        inheritance:
        - Builder
    HeadBuilder:
        default: false
        prefix: '&9[HeadBuilder]*&f'
        options:
          rank: '5'
        permissions:
        - iConomy.plus
        - worldedit.clipboard.flip
        - worldedit.generation.cylinder
        - worldedit.generation.cylinder
        - worldedit.generation.sphere
        - worldedit.generation.sphere
        - worldedit.generation.forest
        - worldedit.history.undo
        - worldedit.history.redo
        - worldedit.navigation.unstuck
        - worldedit.navigation.up
        - worldedit.region.replace
        - worldedit.region.stack
        - worldedit.region.set
        - worldedit.region.overlay
        - worldedit.region.naturalize
        - worldedit.region.walls
        - worldedit.region.faces
        - worldedit.region.smooth
        - worldedit.region.move
        - worldedit.regen
        - worldedit.region.move
        - worldedit.selection.pos
        - worldedit.selection.hpos
        - worldedit.wand
        - worldedit.wand.toggle
        - worldedit.superpickaxe
        - essentials.ban
        - essentials.ban.notify
        - essentials.banip
        - essentials.broadcast
        - essentials.clearinventory
        - essentials.delwarp
        - essentials.eco.loan
        - essentials.ext
        - essentials.getpos
        - essentials.helpop.recieve
        - essentials.home.others
        - essentials.invsee
        - essentials.jails
        - essentials.kick
        - essentials.kick.notify
        - essentials.kill
        - essentials.mute
        - essentials.nick.others
        - essentials.realname
        - essentials.setwarp
        - essentials.signs.create.*
        - essentials.signs.break.*
        - essentials.spawner
        - essentials.protect.alerts
        - essentials.protect.admin
        - essentials.protect.ownerinfo
        - essentials.ptime
        - essentials.ptime.others
        - essentials.unban
        - essentials.unbanip
        - essentials.weather
        - essentials.whois
        - essentials.world
        - permissions.user.promote.default
        - permissions.user.demote.default
        - permissions.manage.membership
        - factions.kit.halfmod
        - ChestShop.mod
        - jobs.admin.*
        inheritance:
        - Donator
      Moderator:
        default: false
        prefix: '&6[Moderator]&f'
        options:
          rank: '4'
        permissions:
        - iConomy.plus
        - worldedit.superpickaxe
        - essentials.ban
        - essentials.ban.notify
        - essentials.banip
        - essentials.eco.loan
        - essentials.ext
        - essentials.getpos
        - essentials.helpop.recieve
        - essentials.home.others
        - essentials.invsee
        - essentials.jails
        - essentials.jump
        - essentials.kick
        - essentials.kick.notify
        - essentials.mute
        - essentials.realname
        - essentials.setwarp
        - essentials.signs.create.*
        - essentials.signs.break.*
        - essentials.spawner
        - essentials.thunder
        - essentials.time
        - essentials.time.set
        - essentials.protect.alerts
        - essentials.protect.admin
        - essentials.protect.ownerinfo
        - essentials.ptime
        - essentials.ptime.others
        - essentials.togglejail
        - essentials.top
        - essentials.tp
        - essentials.tphere
        - essentials.tppos
        - essentials.tptoggle
        - essentials.unban
        - essentials.unbanip
        - essentials.weather
        - essentials.whois
        - essentials.world
        - permissions.manage.membership
        - factions.kit.halfmod
        - ChestShop.mod
        - jobs.admin.*
        inheritance:
        - HeadBuilder
      Admin:
        default: false
        prefix: '&2[Admin]&f'
        options:
          rank: '3'
        permissions:
        - iConomy.accounts.*
        - essentials.backup
        - essentials.essentials
        - essentials.setspawn
        - essentials.broadcast
        - essentials.clearinventory
        - essentials.reloadall
        - essentials.delwarp
        - essentials.nick.others
        - essentials.kill
        - essentials.*
        - permissions.manage.users
        - permissions.manage.users.permissions
        - permissions.manage.users.permissions.timed
        - permissions.user.promote.default
        - permissions.user.demote.default
        - factions.kit.admin
        - ChestShop.admin
        inheritance: Moderator
     
      Technician:
        default: false
        prefix: '&2[&4Techy&2]&f'
        options:
          rank: '2'
        permissions:
        - '*'
        inheritance: Admin
      Owner:
        default: false
        prefix: '&3[Owner]&f'
        options:
          rank: '1'
        permissions:
        - '*'
    users:
      iceey_912:
        group:
        - Owner
      Ian_mac:
        group:
        - HeadBuilder
      LethaLx_xMunsteR:
        group:
        - Technician
      headshotxx32:
        group:
        - Moderator
      Manshark3000:
        group:
        - Admin
      Derby9499:
        group:
        - Builder
      Ballin77:
        group:
        - Member
      minecraftkingop:
        group:
        - Member
      Awesomedude173:
        group:
        - Member
      Goldarrow731:
        group:
        - Member
     
     
     
     
     
    
     
  19. Offline

    zipron

    you've got a new pm
     
  20. Offline

    ZeroZX4

    http://pastebin.com/LyeuUjtY

    words
    groups:
    and
    users:
    need to have 0 spaces

    groups names and user names have 4 spaces

    to rest u need to add another 4 spaces so they have 8 spaces and than it will work

    and for editing better use this

    http://notepad-plus-plus.org/download/v5.9.8.html

    ow an ur problem was that u had like 2 spaces between left side of file and users and groups name and it was saying its unicode error or wtf

    u can check it here

    http://yaml-online-parser.appspot.com/

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

    zipron

    read what zero said =) thanks ZeroZX4, saved me some work =)
    zip
     
  22. Offline

    Mr. LethaL

    i tried the pastie you sent, and apparently it fixed all the other errors but this is what came up:
    Code:
    2012-03-15 14:04:24 [SEVERE] java.lang.RuntimeException: Default user group is not defined. Please select one using the "default: true" property
    2012-03-15 14:04:24 [SEVERE] at ru.tehkode.permissions.backends.FileBackend.getDefaultGroup(FileBackend.java:158)
    2012-03-15 14:04:24 [SEVERE] at ru.tehkode.permissions.PermissionManager.getDefaultGroup(PermissionManager.java:288)
    2012-03-15 14:04:24 [SEVERE] at ru.tehkode.permissions.PermissionManager.getDefaultGroup(PermissionManager.java:277)
    2012-03-15 14:04:24 [SEVERE] at ru.tehkode.permissions.PermissionUser.getGroups(PermissionUser.java:221)
    2012-03-15 14:04:24 [SEVERE] at ru.tehkode.permissions.PermissionUser.getOption(PermissionUser.java:132)
    2012-03-15 14:04:24 [SEVERE] at ru.tehkode.permissions.PermissionEntity.getOptionBoolean(PermissionEntity.java:298)
    2012-03-15 14:04:24 [SEVERE] at ru.tehkode.permissions.PermissionEntity.initialize(PermissionEntity.java:57)
    2012-03-15 14:04:24 [SEVERE] at ru.tehkode.permissions.PermissionUser.initialize(PermissionUser.java:53)
    2012-03-15 14:04:24 [SEVERE] at ru.tehkode.permissions.ProxyPermissionUser.initialize(ProxyPermissionUser.java:41)
    2012-03-15 14:04:24 [SEVERE] at ru.tehkode.permissions.PermissionManager.getUser(PermissionManager.java:115)
    2012-03-15 14:04:24 [SEVERE] at ru.tehkode.permissions.PermissionManager.getUser(PermissionManager.java:132)
    2012-03-15 14:04:24 [SEVERE] at ru.tehkode.permissions.bukkit.PermissionsEx.getUser(PermissionsEx.java:155)
    2012-03-15 14:04:24 [SEVERE] at ru.tehkode.permissions.bukkit.superperms.PermissiblePEX.performCheck(PermissiblePEX.java:124)
    2012-03-15 14:04:24 [SEVERE] at ru.tehkode.permissions.bukkit.superperms.PermissiblePEX.checkPermission(PermissiblePEX.java:110)
    2012-03-15 14:04:24 [SEVERE] at ru.tehkode.permissions.bukkit.superperms.PermissiblePEX.hasPermission(PermissiblePEX.java:102)
    2012-03-15 14:04:24 [SEVERE] at org.bukkit.craftbukkit.entity.CraftHumanEntity.hasPermission(CraftHumanEntity.java:99)
    2012-03-15 14:04:24 [SEVERE] at com.gmail.nossr50.mcPermissions.axesAbility(mcPermissions.java:56)
    2012-03-15 14:04:24 [SEVERE] at com.gmail.nossr50.datatypes.AbilityType.getPermissions(AbilityType.java:185)
    2012-03-15 14:04:24 [SEVERE] at com.gmail.nossr50.skills.Skills.monitorSkill(Skills.java:117)
    2012-03-15 14:04:24 [SEVERE] at com.gmail.nossr50.runnables.mcTimer.run(mcTimer.java:56)
    2012-03-15 14:04:24 [SEVERE] at com.bergerkiller.bukkit.nolagg.examine.TimedWrapper.run(TimedWrapper.java:17)
    2012-03-15 14:04:24 [SEVERE] at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126)
    2012-03-15 14:04:24 [SEVERE] at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:520)
    2012-03-15 14:04:24 [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452)
    2012-03-15 14:04:24 [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:490)
    2012-03-15 14:04:24 [WARNING] Task of 'mcMMO' generated an exception
    java.lang.RuntimeException: Default user group is not defined. Please select one using the "default: true" property
    at ru.tehkode.permissions.backends.FileBackend.getDefaultGroup(FileBackend.java:158)
    at ru.tehkode.permissions.PermissionManager.getDefaultGroup(PermissionManager.java:288)
    at ru.tehkode.permissions.PermissionManager.getDefaultGroup(PermissionManager.java:277)
    at ru.tehkode.permissions.PermissionUser.getGroups(PermissionUser.java:221)
    at ru.tehkode.permissions.PermissionUser.getOption(PermissionUser.java:132)
    at ru.tehkode.permissions.PermissionEntity.getOptionBoolean(PermissionEntity.java:298)
    at ru.tehkode.permissions.PermissionEntity.initialize(PermissionEntity.java:57)
    at ru.tehkode.permissions.PermissionUser.initialize(PermissionUser.java:53)
    at ru.tehkode.permissions.ProxyPermissionUser.initialize(ProxyPermissionUser.java:41)
    at ru.tehkode.permissions.PermissionManager.getUser(PermissionManager.java:115)
    at ru.tehkode.permissions.PermissionManager.getUser(PermissionManager.java:132)
    at ru.tehkode.permissions.bukkit.PermissionsEx.getUser(PermissionsEx.java:155)
    at ru.tehkode.permissions.bukkit.superperms.PermissiblePEX.isPermissionSet(PermissiblePEX.java:202)
    at org.bukkit.permissions.PermissibleBase.hasPermission(PermissibleBase.java:71)
    at ru.tehkode.permissions.bukkit.superperms.PermissiblePEX.checkPermission(PermissiblePEX.java:113)
    at ru.tehkode.permissions.bukkit.superperms.PermissiblePEX.hasPermission(PermissiblePEX.java:102)
    at org.bukkit.craftbukkit.entity.CraftHumanEntity.hasPermission(CraftHumanEntity.java:99)
    at com.gmail.nossr50.mcPermissions.axesAbility(mcPermissions.java:56)
    at com.gmail.nossr50.datatypes.AbilityType.getPermissions(AbilityType.java:185)
    at com.gmail.nossr50.skills.Skills.monitorSkill(Skills.java:117)
    at com.gmail.nossr50.runnables.mcTimer.run(mcTimer.java:56)
    at com.bergerkiller.bukkit.nolagg.examine.TimedWrapper.run(TimedWrapper.java:17)
    at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:520)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:490)
    2012-03-15 14:04:25 [INFO] LethaLx_xMunsteR lost connection: disconnect.endOfStream
     
  23. Offline

    ZeroZX4

    i tried the pastie you sent, and apparently it fixed all the other errors but this is what came up:
    Code:
    2012-03-15 14:04:24 [SEVERE] java.lang.RuntimeException: Default user group is not defined. Please select one using the "default: true" property

    lol man 2nd line
     
    zipron likes this.
  24. Offline

    zipron

    Indeed, set one group to default true =)
     
  25. Offline

    Mr. LethaL

    except i have guest as as default and the boolean is true
     
  26. Offline

    ZeroZX4

  27. Offline

    kimson1000

    Im having a weird problem, My players (Or I) can Chat globally or Build/Destroy
    We can however do some plugin commands, here is my Permissions: http://pastebin.com/sXPj5U6e
     
  28. Offline

    ZeroZX4


    words
    users:
    and
    groups:

    need to have 0 spaces

    all groups and users names have 4 spaces

    rest have 8 spaces - permissions prefix suffix and other shit

    go fix it

    here is my permissions so u can have a template

    http://pastebin.com/YqjhQc6q


    and remember SPACES not TABS
     
  29. Offline

    Gengarx33

    Awesome tutorial man. Worked awesome with me.
    Also in the end you stated, "I included my own permission file as an example to understand the plugin. I hope everyone is respectful enough not to claim it as his own."
    Well I'm using yours, but I changed the permissions and ranks and prefixes to my liking.
    Just wanted to let you know.
    Again, thanks for the help!
     
  30. Offline

    zipron

    You can use it sure, although I think there is a small bug, which I stated in the topic: using per-world inheritance does not allow you to clear the nodes given in the main group permission. Keep that in mind and you're able to create good permission files =)

    zip
     
Thread Status:
Not open for further replies.

Share This Page