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. Im having a few other issues, I have set up the following:
    group 1 - default rank: 1000 ladder: core
    group 1 permissions: something.something
    group 2 - parent: group 1 rank 900 ladder: core
    group 2 permissions: something.something2, -something.something
    group 3 - parent: group 2 rank 800 ladder: core
    group 3 permissions: something.something3, -something.something2
    where something.something3 overides something.something2 and overrides something.something (prefix's in mchat)
    group 1: something.something is displayed correctly
    group 2: something.something2 is displayed correctly
    group 3: something.something2 is displayed (incorrect)
    this continues up my whole ladder....
  3. hey...i got a problem...i dont know if its a bug or worked before i downloaded the latest dev, but when i downloaded the latest dev...the problem came up...heres the problem:
    when i typed in a method this : String pReq = PM.getGroup(group).getOwnOption("profession-requirement", player.getWorld().getName());
    and then split them with a regex | splits into every character...not by the regex
  4. Negative ... : -permission.bla.bla
    Prefixes : /pex group <group> prefix "prefix between quotes"
  5. Offline


    I haven't been able to find this anywhere yet:
    In normal permissions I believe there is a way to 'subtract' a certain permission from a group. Like if you didnt want your mods to have lightning you could do like
                - - essentials.lightning
    Is there a way to do that with this?
  6. This doesnt work for my inherited permissions, it does for normal, just doesnt seem to overrule the inheritted ones
    Pastebin for checking:
  7. Offline


    what do you mean "it doesn't work"? it should work.

    Oh thank you good sir. But this converter works incorrectly.

            default: true
            - modifyworld.*
            - default
    converted into:
        default: true
        permissions: null
        0: 'modifyworld.*'
        build: null
        prefix: null
        suffix: null
          rank: 1000
        group: null
        0: default
          rank: 0
    Which completely incorrect.

    use "/pex toggle debug" to figure out whats wrong.

    Already done in dev 1.14

    Along iChat, HeroChat, mChat which confirmed to work with PEX, there is ChatManager, which bundled with PEX.


    You need to escape |, coz split() works using regexp

                - -essentials.lightning

    Oh dude, there is no need to list every block type which you want to place.
    Use negation!

    This will allow to place/destroy any blocks except TNT

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


    Ah hemmm, dudette! ;)

    I had just figured this out from your most recent post. I was ordering my commands wrong though. Thank you for showing me this. I'm so grateful!
  9. Offline


    Is it possible to run Permissions 2.7.4 and PermissionsEX at the same time?
  10. Offline


  11. Offline


    I'm going to take that as a no?
  12. Offline


    I'm having trouble migrating from Permissions 3.x. I'm following this tutorial and I've done everything exactly as it says and when I type "pex dump file permissions.yml" I get this error:
    2011-09-05 16:11:36 [INFO] Error: No default group defined. Use "pex set default group <group> [world]" to define default group.
    2011-09-05 16:11:36 [SEVERE] Error: No default group defined. Use "pex set default group <group> [world]" to define default group.
    2011-09-05 16:11:36 [SEVERE] java.lang.IllegalStateException: No default group defined. Use "pex set default group <group> [world]" to define default group.
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.PermissionManager.getDefaultGroup(
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.PermissionManager.getDefaultGroup(
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.PermissionUser.getGroups(
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.PermissionUser.getGroupsNames(
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.PermissionUser.getGroupsNames(
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.backends.FileBackend.dumpData(
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.bukkit.commands.UtilityCommands.dumpData(
    2011-09-05 16:11:36 [SEVERE]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    2011-09-05 16:11:36 [SEVERE]     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    2011-09-05 16:11:36 [SEVERE]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    2011-09-05 16:11:36 [SEVERE]     at java.lang.reflect.Method.invoke(Unknown Source)
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.commands.CommandsManager$
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.commands.CommandsManager.execute(
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.bukkit.PermissionsEx.onCommand(
    2011-09-05 16:11:36 [SEVERE]     at org.bukkit.command.PluginCommand.execute(
    2011-09-05 16:11:36 [SEVERE]     at org.bukkit.command.SimpleCommandMap.dispatch(
    2011-09-05 16:11:36 [SEVERE]     at org.bukkit.craftbukkit.CraftServer.dispatchCommand(
    2011-09-05 16:11:36 [SEVERE]     at net.minecraft.server.MinecraftServer.b(
    2011-09-05 16:11:36 [SEVERE]     at net.minecraft.server.MinecraftServer.h(
    2011-09-05 16:11:36 [SEVERE]     at
    2011-09-05 16:11:36 [SEVERE]     at
    What am I doing wrong here?
  13. Offline


    Am i on my own here?
  14. So i'm doing right ? I will look further then, I though I was doing wrong. Because after a lot of testing, nothing changed.
    (This permission is used to limit the number of warps a group can create, but even with the permissions it doesn't change anything, it's not the plugin's fault because it's working well with permission (file backend)).
  15. Offline



    love the "insane" btw
  16. I want to do this (Permission syntax) but with PEX and SQL backend :

        default: false
               private: 1
               public: 0
               global: 0
               total: 1
    I did this (Permissions table)
    id - name - type - permissions - world - value

    When i use permission, it's working, but when i do it with PEX it's not working (the warp limit is not changing). What am I doing wrong ?
  17. @t3hk0d3 any thoughts on this one? I'm using the latest dev build...

  18. Offline


    I get this when i load the server and none of the plugins reconise the permissions plugin

    PermissionsEx: sql backend registered!
    PermissionsEx: file backend registered!
    PermissionsEx: PermissionEx plugin initialized.
    PermissionsEx: Initializing file backend
  19. Offline


    Read my two posts, please. I'm almost positive it is the same issue. A) You have to assign custom info/option nodes to a specific world for them to work at all. B) These custom info/option nodes do not inherit and must be reassigned for every world. (This applies to the MySQL storage format. Unknown if YAML has the same problem.)


    And also, groups not having world-based assignments makes it impossible to identify which world a player is in by their group. It also will override a world default group if someone is assigned a group that is specific to a different world. The only way to get past this is to make all groups someone may be assigned to inherit (at the trunk of the tree) the defaults for other worlds.


    @Arno00 Assign those options to a specific world and they will work. If you have multiple worlds that must use those options, you will have to redefine them for each world regardless of world inheritance. It is a bug, unless I am missing something.
  20. Error on user not listed in permissions.yml on every permissions check.

    PermsEX 1.14 (dev-from now)

    2011-09-06 00:39:31 [INFO] kolorafa2 [/xxxxx:65001] logged in with entity id 10297 at ([dlk] -84.65625, 82.0, 116.46875)
    2011-09-06 00:39:31 [SEVERE] Could not pass event PLAYER_TELEPORT to PermissionsEx
    java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
            at ru.tehkode.permissions.backends.file.FileEntity.getNode(
            at ru.tehkode.permissions.backends.file.FileEntity.<init>(
            at ru.tehkode.permissions.backends.file.FileUser.<init>(
            at ru.tehkode.permissions.backends.FileBackend.getUser(
            at ru.tehkode.permissions.PermissionManager.getUser(
            at ru.tehkode.permissions.PermissionManager.clearUserCache(
            at ru.tehkode.permissions.PermissionManager.clearUserCache(
            at ru.tehkode.permissions.bukkit.PermissionsEx$PlayerEventsListener.clearUserCache(
            at ru.tehkode.permissions.bukkit.PermissionsEx$PlayerEventsListener.onPlayerTeleport(
            at org.bukkit.plugin.RegisteredListener.callEvent(
            at org.bukkit.plugin.SimplePluginManager.callEvent(
            at net.minecraft.server.NetServerHandler.a(
            at org.getspout.spout.player.SpoutCraftPlayer.updateNetServerHandler(
            at org.getspout.spout.SpoutPlayerListener.onPlayerJoin(
            at org.bukkit.plugin.RegisteredListener.callEvent(
            at org.bukkit.plugin.SimplePluginManager.callEvent(
            at net.minecraft.server.ServerConfigurationManager.c(
            at net.minecraft.server.NetLoginHandler.b(
            at net.minecraft.server.NetLoginHandler.a(
            at net.minecraft.server.Packet1Login.a(SourceFile:43)
            at net.minecraft.server.NetworkManager.b(
            at net.minecraft.server.NetLoginHandler.a(
            at net.minecraft.server.NetworkListenThread.a(SourceFile:91)
            at net.minecraft.server.MinecraftServer.h(
    2011-09-06 00:39:31 [SEVERE] Could not pass event PLAYER_TELEPORT to Multiverse-Core
    java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
            default: true
            - ....
            - def
            - ....
                    - vips
            - dlk
  21. I might be wrong but your user name appears to be kolorafa2 in the log but only kolorafa in the yml
  22. That's the problem, new users should be able to be 'auto added' or 'virtual defaulted'.
    My user kolorafa working great, but kolorafa2 (example ow new user on serwer) not.
    So now any user that isn't on list gets a shitstorm of errors and don't get any perms.

    Found my error, i had one of my players named '226' without ' in permissions.yml
    causing yml parasing as int, and create error. (file created manually that's how i get this ' problem)

    replacing with:
  23. Offline


    This permissions system is literarly the best permissions system ive ever come across! Thank you so much! :D t3hkod3 has been extremely helpful through my transition! The way this works now opens up so many possibilities on my server that I previously did not have with perms 2.x/3.x! (I spent around 4-6 hours customizing it and its just perfect now, I even got multiworld prefixes to work, ect, ect... its just... well... boss, with a bit of thinking)
    t3hkod3: Please post a donation button on your thread, I have no idea where to send off some $, and dont want this plugin to die :)
  24. Offline


  25. Offline


    Fixed in lastest dev version. Pls check.

    Make sure you installed PermissionsCompat (Permissions.jar)

    Try dev version.

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


    I'm unsure if this is a modifyworld thing, or a quirk with the way permissionsex evaluates permissions. I'm trying to get a setup whereby my default group has full modifyworld permissions, but in one world, they can't place any lava, use flint and steel etc.

    I thought I could get away with this:

            - modifyworld.*
    But it seems the negated nodes don't take effect in the specific world. Shouldn't world specific permissions override any global permission?
  27. Offline


    Hi all,

    Just wondering if someone could help me out with this plugin as I'm really new to it having just converted from Permissions 2.7.4 to it :)

    I'm trying to find a working chat plugin that's able to make my chat display like this, when I am an admin and the prefix for the admin group is &4 and the suffix is &c.


    Does anyone know of a chat plugin like that?

    So far I've tried iChat (experimental build btw.) and mChat. I've been unsuccessful with both, unfortunately.

    Never-mind! I fooled around with it some more and got it all working/figured out!
  28. Thanks a lot ! It's working now, I love you :)
    I tried everything for hours >.<

    ChatManager is bundled with PEX, and is working great, iChat is also working great (but not tested with PEX)
    You'll have to set the syntax in the config file, then set the prefix and suffix. You can do anything if you use your brain :)

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


    ChatManager? I saw that when downloading it but I was unsure of it's purpose - I thought it reported information to other chat plugins.

    I got mChat all figured out now :) I just had to think :p

    Going to fool with ChatManager/look into it now.

    Hey everyone,

    Correct me if I'm wrong but, based on the wiki, it appears that Chat Manager has no %group/&group variable to use in the message format?

    What a bummer :(

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: Sep 9, 2018
  30. When you set a prefix / suffix, juste write the name of the group :)

    Those configs :

    admin prefix : &cAdmin
    message-format: '&f[%prefix&f]&7 %player : &f%message'

    Will do :
    [Admin] DylanP : message here

    Now you can add a suffix, with a color code to change your name (ie only for admins)

    Just think :)

    Another question, I wrote a little script to give someone VIP acces via a little PHP script that changes the user group.
    Is there a way to auto reload the plugin, so the changes take effect immediately, so no one needs to /pex reload manually ?

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


    Is there an easy way to convert from Permissions 3.x to PermissionsEx ? I know you've got a guide on how to change from 2.x version but I've got 3.x - could I use the same method with my version as well?

    This is my server's plugin list:

    and of course Permissions 3.x

    Would any of these plugins interfere with the PermissionsEx plugin?

    Might be hideous questions, sorry. I'd appreciate it a lot if anyone could clear this out for me.

Share This Page