Inactive [ADMN/DEV] PermissionsEx (PEX) v1.19.5 - Tomorrow is Today! [1.4.6-R0.1]

Discussion in 'Inactive/Unsupported Plugins' started by t3hk0d3, May 21, 2011.

  1. Offline


    Version: 1.19.5


    PermissionsEx (PEX) is a new permissions plugin, based on Permissions ideas and supports all of its features. But PEX is more! It offers different backends, powerful ingame management, fine grained restrictions for world modification.


    Current features
    1. Bukkit Permissions (SuperPerms) compatible.
    2. Several backend support. Currently bundled backends is File (YAML) and SQL (MySQL, SQLite). Also it's possible to add your own.
    3. YAML backend, with new, fully rethinked, config schema. Now all user, groups and their permissions are stored in one file - permission.yml. BTW file name is adjustable too.
    4. SQL backend, most delicious. Currently MySQL and SQLite supported, but other DB (like Postgre) are possible too. PEX deploys the DB scheme (tables and initial data) automatically. This means, that you only need to provide data on how to connect to the db, everything else PEX will handle by itself.
    5. Flexible architecture and API - you can change a lot programmatically.
    6. Compatibility layer with TheYeti's Permissions (2.7.4) (as a separate part of the plugin). In most cases plugins, which use Permissions, will alsowork with PEX also.
    7. Rich chat/console command interface. You can do almost everything ingame. Command list below.
    8. Modifyworld - Embedded restrictions mechanism (we call it "modifyworld"), which provides the possibility to control players abilities, such as destroying/placing blocks, riding carts/boats or even getting spotted by mobs and much more. Disabled by default.
    9. Multigroup inheritance. User, as well as Group, can be member of several groups. And inherit their permissions, options and prefix/suffix.
    10. Permissions based upon Regular Expressions. This mean you can use regular expressions. Example: modifyworld.blocks.(destroy|place).(3|12) - this permission allow place or destroy only sand (12) or dirt (3) blocks. There is still limitation on dot usage in your regexps - dots are escaped by default.
    11. Multiworld permissions. Just don't specify world and permission would work in any world.
    12. Multiworld inheritance. You can inherit different groups in different worlds.
    13. Easy migration from Permissions 2.x. Converter for both YAML and SQL are embedded into PermissionsCompat. Just use simple instruction.
    14. Perfomance friendly. Low-level caching helps alot when you have 100+ online users :)
    15. Promotional/Demotional system. You can assign ranks to groups and promote/demote users to higher/lower ranked group.
    16. World-inheritance - permissions/option of one world can be inherited by another world.
    17. Timed Permissions - you can give user permission only for some amount of time.
    18. Chat Manager - small chat plugin, bundled with PEX. With prefixes/suffiex and colors. Check wiki for more details.


    Basic setup tutorial (Thanks to lycano)

    Nice tutorial made by Bennetman

    Stable version

    Development version (mostly stable) - always lastest dev build.



    Maven Repository

    Join us on #permissionsex, Feel free to ask any related questions.

    Tools !NEW!
    Pex Auto-Setup Tool - MySQL and FlatFile !

    Show Changelog (open)
    Proper intervals for timed commands (both group/permissions management), without pesky seconds calculations (like /pex user t3hk0d3 timed add cool.permission 10days)
    1.4.6 compatibility.

    Built for Bukkit 1.4.2-R0.1
    Added inventory permissions (modifyworld.items.put/take.<item>.of.<chest>)
    Added item hold permission (modifyworld.items.hold.<item>)
    Sdded monster egg spawn permission (modifyworld.spawn.<creature>)
    Few other minor fixes
    Modifyworld improvements (configurable messages, now independent from PEX)
    /pex help command
    Minor improvements and bugfixes
    New modifyworld permissions
    Some bugfixes
    Bugfix release
    Bukkit R6 compatible.
    Several bugfixes!
    Permissions now case-insensetive.
    Users logging and cleanup feature.
    Non-inheriting nodes feature.
    Several Bugfixes.
    PermissionsCompat is finally remove from default bundle.
    User/group specific management permissions (
    Fixed some superperms compatibility issues
    Fixed several bugs
    SuperPerms compatbility bridge were rewritten - no lags anymore and now with debug output (now you can view superperms checks).
    Numerous of bugs were fixed (Thanks you guys for reporting them)
    Modifyworld were improved (modifyworld.item.use)
    Compatiblity for 1317+
    Fixed perfomance issues with SuperPerms (if you still experience they try to disable "raw-permissions" in config.yml)
    Fixed issue with prefix inheritance
    Improved Options mechanism.
    Auto saving new users feature, disabled by default.
    SuperPerms bridge improved - more permissions supported by wildcards.
    File backend dumping now fully functional. SQL dumping is still bogus (do not dump world-specific inheritance and prefixes), will be fixed soon.
    Many bugfixes and minor improvements.
    Superperms (BukkitPerms) support
    Multiworld inheritance and prefixes/suffixes
    Groups weighting
    ChatManager, chat plugin which bundled with PEX.
    Modifyworld now separate plugin, but still bundled with PEX.
    API changed slightly, CustomEvents (PermissionsEntityEvent, PermissionsSystemEvent) introduced.
    Many lesser improvements and tons of bugfixes.
    API get slightly improved
    Ranking ladders.
    User/group name case-insensetivity.
    Timed permissions.
    Modifyworld rules are get improved.
    Tons of minor improvements and bugfixes.
    Many bugfixes and improvements.
    MySQL connection stability improved - reconnection mechanism.
    Promotional/Demotional system.
    Perfomance improvement, with new low-level caching system (thx Joy)
    Modifyworld improved.
    Many lesser improvements and bugfixes.
    New p2compat backend, for easy migration from Permissions 2.x to PEX.
    Users/Groups dumping (pex dump <backend> <file>).
    New commands pex promote/demote. Actually this is just aliases for "pex user group set/remove"
    Few bugfixes.
    Players now can be informed about changes (has been added to group, changed permission/option). Disabled by default - set "permissions.informplayers.changes" to "true"
    Config node "permissions.verbose", which responsible for player informing about modifyworld restrictions has been renamed to "permissions.infromplayers.modifyworld".
    Autocomplete has been improved.
    New command "pex config <node> [value]". This command help to manipulate configuration file (config.yml) from console/chat interface.
    Many bugfixes.
    Autocomplete for users (taken from registred users and online users) and groups names.
    New command for user removing (pex user <user> delete)
    Fixed several nasty bugs. Thanks for bugreports!
    Compatibility layer loading order issue fixed. Now most of plugins should work.
    Tested with new CB 803 build.
    Regular expression permissions support.
    Newer permissions now added above (bugfix).
    Several bugfixes.
    Initial public release.
    BRampersad, grid21, MrRazull and 71 others like this.
  2. Offline


    I'm getting "User are not in this ladder" when I try to promote from the default group (Guest) using /pex promote <user>.
    Any idea why?
  3. Offline


    if i use the yml , can i promote an user ingame ? or i need to use the sql database
  4. Offline


    Sorry about that, it's pex.user.promote.default. I could of swore I was using the other node, but meh.

    Yes you can use yml and still use in game commands.
  5. Offline


    Very slight tiny small suggestion:
    In ChatManager, can you not force the < > on the player names? I am trying to set it up to be something like this:
    [Admin] Flenix: Message (in white)

    But I currently get this:
    <[Admin] Flenix:>
    (Again, the < is actually in white)
    Removing them makes the server sad (gives errors, not suprisingly)
  6. @Flenix I'm not using the chat manager from this, but wouldn't you just do something like this?:

    '%prefix%suffix%player: %message'

    I assume that their chat manager just uses event.setFormat();, so there's no reason for that not to work.

    Also, back to my multi-world issue. I've now (finally) setup the groups and the admin users, however I can't seem to find a way to provide the user a different group depending on world. I can give them different permissions and prefixes between worlds, that's fine. However I have one world that requires an application to become a member in, thus I'm not able to simply provide different permissions for that world.

    I've attempted to do:

                    - groupname
                    - othergroupname
    But to no avail. Is there any current way of doing this? Or am I going to have to make that other world FFA?
  7. Offline


  8. Offline


    made logo :D
    erickingsr likes this.
  9. Offline


    Thats what I want - when trying it it disables the plugin and cries on the server though. I'm no java person but I looked at the source and couldn't see anything blatant so gave up for now.

    Also, is PEX supposed to have SuperPerms by default, or do I need to do something special? I only have one plugin that uses them so far, but it doesn't seem to be working....
  10. Offline

    sexy vampire

    im having a little probel seting up my server useing this as permistions and im geting an error when i try to get it to convert my old file any one can show me how ??
    permissions yml
            system: default
                prefix: '&5'
                suffix: '&d'
            group: Admins
                prefix: '&4'
                suffix: '&c'
            group: Admins
                prefix: '&6'
                suffix: '&c'
            group: Admins
            default: true
                prefix: '&9'
                suffix: '&f'
                build: true
            - modifyworld.*
            - 'commandbook.who'
            - myhome.home.basic.*
            - 'commandbook.spawn '
            - lockette.create.
            - myhome.home.basic.*
            - mywarp.warp.basic.warp
            - commandbook.kit.kits.starter
            - supplysign.create
            default: false
                prefix: '&a'
                suffix: '&f'
                build: true
            - Builder
            - 'commandbook.teleport '
            - 'commandbook.teleport.other '
            - myhome.home.soc.*
            - 'mywarp.warp.*'
            - mywarp.warp.soc.*
            - mywarp.warp.basic.createpublic
            - worldguard.region.addmember.*
            - worldguard.region.addmember.own.*
            - worldguard.region.addmember.member.*
            - lockette.create.
            - commandbook.kit.list
            - commandbook.kit
            default: false
                prefix: '&3'
                suffix: '&b'
                build: true
            - Builder
            - 'commandbook.teleport '
            - 'commandbook.teleport.other '
            - 'commandbook.time '
            - lockette.admin.create.
            - 'myhome.*'
            - regionmembership
            - myhome.home.soc.*'
            - worldguard.region.addmember.*
            - worldguard.region.addmember.own.*
            - worldguard.region.addmember.member.*
            - worldguard.region.addowner.*
            - worldguard.region.addowner.own.*
            - worldguard.region.addowner.member.*
            - commandbook.kick
            - commandbook.bans.ban
            - commandbook.bans.unban
            - commandbook.kit.list
            - commandbook.kit.kits.donator
            - commandbook.kit
            - supplysign.create
            - supplysign.destroy
            - supplysign.reload
            default: false
                prefix: '&e'
                suffix: '&6'
                build: true
            - '*'
            - lockette.admin.create.
            - lockette.admin.break
            - lockette.admin.reload
            - lockette.admin.snoop
            - lockette.admin.bypass
            - region
            - reloadwg
            - locate
            - reloadwe
            - regionmembership
            - myhome.home.soc.*
                prefix: '&5'
                suffix: '&d'
            group: Admins
                prefix: '&4'
                suffix: '&c'
            group: Admins
                prefix: '&6'
                suffix: '&c'
            group: Admins
  11. Offline


    Would really appriciate any help as im going nuts trying to solve it:
    getting error in ingame console: An internal error occured while attempting to perform this command.
    command attempted: /pex group Member create

    note: i'm using McMyAdmin also

    Note2: if i dont set up permissions like below (it then is simply the default that is installed) i dont get the error but i can't setup the permissions in the ingame console then. Because i dont have permission

    Note 3: the wiki is talking about this but i don't understand it:
    If you haven't done this already create the "Admins" group via console with pex group Admins create and add "*" permission to this group with pex group Admins add "*". Add yourself to this group with pex user YourPlayerName group set Admins.

    How can you do this (above) if you don't have permission in first place. Do you do this in a (not ingame) console i don't know about???

    i set up the permissions like this (what did i do wrong?):
    group: owner
    - modifyworld.*
    - '*'
    default: true
    - modifyworld.*
    default: false
    - modifyworld.*
    - '*'
  12. Offline


    How to migrate from GroupManager?
  13. Offline


    Just to make sure, you are using v1.13 of PEX and Bukkit build 1060 right?
    Make sure your username is set to Admin in the McMyAdmin settings. Is it only the in game chat that you are having this issue with or with the McMyAdmin console as well? If you can execute the command on the McMyAdmin console then just do it that way.

    merge <world>/users.yml and <world>/groups.yml into one file <world>.yml
    and put the file into plugins/PermissionsEx/ directory.

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


    First of all thanks for teplying:

    yes im using v1.13 of PEX and Bukkit build 1060
    username is set to Admin (changed name from Admin to Owner with same rights) in the McMyAdmi

    "If you can execute the command on the McMyAdmin console then just do it that way."
    how do i execute it that way? (i can use McMyadmin admin commands ingame)

    Edit: aha i found the "chat" console. lol me noob trying it now
  15. Offline


    Well for one, you should get rid of the

    plugin: permissions: system: default

    at the top.

    2. you have Users: on both the top and bottom of the YML file, get rid of the bottom half Users: setting an keep the top.

    3. your
    setting does not line up correctly.
    In Moderator group you have inheritance set to builder group, change that to the VIP group.

    those are the only mistakes i can tell so far. if that doesnt fix it, tell me the error you said you were getting.
    Personally if it was me, id redo the whole perms file and generate a new yml file from Pex to go off of.

    use this as a guide for how the perms should be set up in PEX
  16. Offline


    Switched to PEX - from BukkitPermissions - and it went without a hitch. Love it! Even set it all up as SQL-backend, working fine.

    My only question now: Using ingame commands and phpmyadmin are a bit tedious in setting up and especially maintaining permission nodes / users / etc.

    Are there any tools I missed (like a web-backend solely for sql-permissions management) in this thread?
  17. Offline


    I think Multiverse2 allows you to Blacklist users from specific worlds. Will that work for you?

    But Different permissions in that world can also work for you.
    If you look back to the post I made earlier in this thread, you'll see how I managed to get world-specific perms to work in pEx: I gave each user multiple groups, with each groups permissions specific to a different world.
    {nested under world: parameters much the same way you did it for users: }

    As for your restricted access world, how do users get to the world? I limit access using Stargate networks, and only allowing public warps in one world. Users that aren't allowed there are not given a group in that world - and they get the default group (Ghost) without build rights if they somehow do end up there.

    One problem I have with this setup is that every time I promote a user, that group falls to the bottom of the users groups list in the permissions.yml, and these users are denied access to Movecraft and restricted Chestshop signs until I move the relevant group back to the top of the list. There also seem to be issues with Lockette group access, including the [Everyone] set, but that plugin is in dire need of updating so I wont blame pEx.
    Suggestions for fixes to this multigroup problem most welcome.:confused:
    (PS: I love the new logo, t3hk0d3 :) )
  18. @Inscrutable Thanks, your previous post provided me with some help.

    The world is free for anyone to access, however if they're not a part of a certain group they're not able to build in there. I've tried your method and it does work, there's just the slight problem that it uses the prefix/suffix from their main group, which while in this world is "Guest", rather than the tag it should be getting from the group that allows them to build in this world, thus it becomes slightly confusing to the members of this limited-access world.

    It seems that their needs to be a new config schema, as this one isn't very multi-world friendly :p. Just the implementation of per-world main user groups would do that job :)
  19. Offline


    im using v1.13 of PEX and Bukkit build 1060
    problem Prefixes won't show (edit i fixed it). I have chatmanager installed. Do i have to enable it somewhere?
    tried the following
    /pex group Owner prefix "&0(&4Owner&0)&7 "
    the ingame console says it created the prefix but when i say something nothing shows

    edit also the /pex group Owner add "-modifyworld.mobtarget.*"
    didn't work but the console said it was added
    Edit 2 well the prefixes works now had to enable chatmanager as i thought.
    checking "-modifyworld.mobtarget.*"
  20. Offline


    Lol I went back to flatfile, SQL totally borked on me and stopped to adhere to any inheritance settings. Oh well :D



    Is there any way to convert flatfile PEX permissions.yml to the sql syntax, if I ever wanna try using SQL again?
  21. im stuck and need help

    i have permissions 2.7.4 set up on my server now, i saw that you can migrate 2.x permissions into pex by typing the console commands. i have tried this a few times now and all it does is add the current online users into the default group and doesnt migrate any of my permissions at all, is there something im doing wrong? do i have to tell it how to find my permissions world.yml? sorry im a noob at this, been using 2.7.4 with yeditor since it was released so this is a big change for me

  22. Offline


    Put your world.yml file in your old Permissions folder.

    Put your worldname.yml in there, if you have the nether enabled you will need a yaml file for that as well!
  23. Offline


    I'm having some trouble...
    When i do the command /pex ingame
    i get this:
    [PermissionsEx] Version [3.13]
    An internal error occurred while attempting to perform this command.

    and when i type /pex in console, i get all the commands.
    but when i try one, like... /pex user denlink group set Admin This comes up:

    >pex user denlink group set Admin
    15:59:36 [WARNING] Unexpected exception while parsing console command
    org.bukkit.command.CommandException: Unhandled exception executing command 'pex' in plugin PermissionsEx v1.13
        at org.bukkit.command.PluginCommand.execute(
        at org.bukkit.command.SimpleCommandMap.dispatch(
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(
        at net.minecraft.server.MinecraftServer.b(
        at net.minecraft.server.MinecraftServer.h(
    Caused by: java.lang.RuntimeException: java.lang.RuntimeException: Permissions manager is not accessable. Is the PermissionsEx plugin enabled?
        at ru.tehkode.permissions.commands.CommandsManager.execute(
        at ru.tehkode.permissions.bukkit.PermissionsEx.onCommand(
        at org.bukkit.command.PluginCommand.execute(
        ... 6 more
    Caused by: java.lang.RuntimeException: Permissions manager is not accessable. Is the PermissionsEx plugin enabled?
        at ru.tehkode.permissions.bukkit.PermissionsEx.getPermissionManager(
        at ru.tehkode.permissions.bukkit.commands.UserCommands.userSetGroup(
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(
        at java.lang.reflect.Method.invoke(
        at ru.tehkode.permissions.commands.CommandsManager$
        at ru.tehkode.permissions.commands.CommandsManager.execute(
        ... 8 more

  24. thanks for the reply, but my world.yml is in my permissions folder in plugins/permissions/world.yml, permissions 2.7.4 is already set up and working on my server, the reason i need pex is so i can edit the world.yml ingame since my Yeditor wont work now.
  25. Offline


    Remove Permissions 2.7 then run these commands:
    pex backend p2compat
    pex dump file permissions.yml
    pex backend file
  26. Offline


    I used mChat 1.7.10_5, it seems to work fine. I added the groupname, suffix, prefix nodes I defined in the mChat info file to the per-world groups. Just remember to negate any inherited group name nodes (or they inherit the group name, which may end up in everyone being called Guest). A custom nametag node would also work.

    Glad to be of help, it was excruciating having to translate from Permissions3.15, may it rest in peace.
  27. Offline


    Hey @t3hk0d3 , I got another problem: My users can't use minecarts? I think they can put it on the ground, but can't go in! And they recieve the error message from Modifyworld, that they have no permissions to use this. Here is my Permissions.yml (the important part):

            prefix: '&0[&2Bewohner&0]&f'
                rank: '500'
            - essentials.afk
            - essentials.compass
            - essentials.getpos
            - essentials.helpop
            - essentials.ignore
            - essentials.list
            - essentials.mail
            - essentials.mail.send
            - essentials.motd
            - essentials.msg
            - essentials.whois
            - factions.participate
            - herobounty.accept
            - herobounty.locate
            - herobounty.list
            - iConomy.access
            - iConomy.rank
            - iConomy.list
            - iConomy.payment
            - jail.usercmd.jailstatus
            - jail.usercmd.jailpay
            - lc.unlevel.*
            - lc.level.defence
            - modifyworld.bucket.empty.*
            - modifyworld.bucket.fill.*
            - modifyworld.blocks.destroy.1
            - modifyworld.blocks.destroy.2
            - modifyworld.blocks.destroy.3
            - modifyworld.blocks.destroy.4
            - modifyworld.blocks.destroy.5
            - modifyworld.blocks.destroy.6:0
            - modifyworld.blocks.destroy.6:1
            - modifyworld.blocks.destroy.6:2
            - modifyworld.blocks.destroy.12
            - modifyworld.blocks.destroy.13
            - modifyworld.blocks.destroy.17
            - modifyworld.blocks.destroy.18
            - modifyworld.blocks.destroy.18
            - modifyworld.blocks.destroy.18
            - modifyworld.blocks.destroy.20
            - modifyworld.blocks.destroy.25
            - modifyworld.blocks.destroy.26
            - modifyworld.blocks.destroy.31
            - modifyworld.blocks.destroy.32
            - modifyworld.blocks.destroy.35
            - modifyworld.blocks.destroy.35
            - modifyworld.blocks.destroy.43
            - modifyworld.blocks.destroy.44
            - modifyworld.blocks.destroy.47
            - modifyworld.blocks.destroy.50
            - modifyworld.blocks.destroy.52
            - modifyworld.blocks.destroy.53
            - modifyworld.blocks.destroy.54
            - modifyworld.blocks.destroy.58
            - modifyworld.blocks.destroy.63
            - modifyworld.blocks.destroy.64
            - modifyworld.blocks.destroy.65
            - modifyworld.blocks.destroy.68
            - modifyworld.blocks.destroy.72
            - modifyworld.blocks.destroy.78
            - modifyworld.blocks.destroy.79
            - modifyworld.blocks.destroy.80
            - modifyworld.blocks.destroy.82
            - modifyworld.blocks.destroy.85
            - modifyworld.blocks.destroy.88
            - modifyworld.blocks.destroy.92
            - modifyworld.blocks.destroy.96
            - modifyworld.blocks.destroy.321
            - modifyworld.blocks.destroy.323
            - modifyworld.blocks.destroy.324
            - modifyworld.blocks.destroy.328
            - modifyworld.blocks.destroy.333
            - modifyworld.blocks.destroy.342
            - modifyworld.blocks.destroy.343
            - modifyworld.blocks.destroy.354
            - modifyworld.blocks.destroy.355
            - modifyworld.blocks.interact.*
            - modifyworld.damage.*
            - modifyworld.items.drop.*
            - modifyworld.items.have.*
            - modifyworld.items.pickup.*
            - modifyworld.mobtarget.*
            - modifyworld.usebeds
            - modifyworld.vehicle.destroy
            - modifyworld.vehicle.enter
            - modifyworld.vehicle.collide
            - pvpreward.getreward
            - pvpreward.givereward
            - Vouchers.use.teleport
            - Vouchers.use.parachute
            - Vouchers.use.resurrect
            - Vouchers.use.superpick
            - Vouchers.use.sunshine
            - Vouchers.use.thunderpunch
    All other groups got inheritance to this group, and all of my users are in this groups that got the inheritance from "Bewohner".
    Can u help me?
  28. Well I'm using a plugin I made myself, which has local/shout chat. I just simply obtain the prefix and suffix, I don't obtain them via permission nodes like mChat does. This of course causes the problem I'm facing when there's only 1 main group.
  29. remove the jar or remove everything?
  30. Offline


    I am in the same boat and this is highly frustrating, as the previous permission plugins (Perms 2/3 & Group Manager) handled it fine by segmenting the files per world in different folders.

                      - group3
                     - group1
                     - group2
    The default group is taking precedence over Group1, Group2, or Group 3 in the respective worlds. The same happens if the "group:" field for the user (not within "worlds:") is set to any group. This breaks the systems previously used by other permission plugins, and the functionality of pEX for multi-world group permissions.

    If the groups set per world are not used as the main group for that world only, then what's the point of using this plugin when multiple worlds are being used on a server?
  31. Offline


    Answer my message, plz...

Share This Page