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


    Can't reproduce this. Which backend do you use? How many registered users do you have?
  3. Offline


    Around 100 maybe less also we use .yml files if that helps


    maybe more like 60-70

    EDIT 2

    what do you mean by backend?
  4. Offline


    backend (storage base): file, mysql, sqlite

    maybe it antivirus or something else who doing check system when file save
  5. Offline


    and by registered users you mean every player in the .yml file?

    i dont think so as i have used this since 1.11 and it did not do it back then but i cant say when it started

    Hum just a bit more info it seems to do it with all the commands

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


  7. Offline


    I'm having problems with the -modifyworld.entity.mobtarget.* working. I tried first on SQL (since there is where our server will be), but then did YML just to see if I could get it working. Here is my permissions.yml:
            default: true
            - -modifyworld.entity.mobtarget.*
            - modifyworld.*
            - '*'
            - VIP
    All permissions were done through console. I still get targeted by mobs when in the VIP group. Also, order matters for the YML files, but does it matter for the SQL backend? And if so, what is the order (e.g. specific nodes before globals before inheritance, etc.)?

    So far this is an excellent plugin. I've spent the last month working with and writing a web front-end for Permissions 3.X, and I have to say that it completely sucks. Half of the features don't work, and the SQL is completely neglected. I'm excited to see a plugin that not only works, but is being actively developed. Keep up the good work!
  8. Offline


    Thank you for bug report. This bug were fixed in lastest build. Download package from OP post.

    In PEX 1.13 modifyworld.entity.mobtarget were renamed into modifyworld.mobtarget
    same for modifyworld.entity.damage, modifyworld.entity.interact and modifyworld.entity.tame.
    Read disclamer in first post.

    Order matter everywhere.

    PS/ Updated wiki, sorry for that ;)

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


    I found the source while looking through the source code. My new config looks like:
    More documentation would be appreciated on this!
                directory: 'MMOMinecraft'
        backend: p2compat
        basedir: plugins\PermissionsEx

    I get this error whilst enabling P2compat:
    11:20:12 [SEVERE] Specified directory doesn't exist. Check "permissions.backends" param. initializing PermissionsEx v1.13 (Is it up to date?)
    java.lang.RuntimeException: Specified directory doesn't exist. Check "permission" param.
            at ru.tehkode.permissions.compat.P2Backend.loadPermissions(P2Backend.jav
            at ru.tehkode.permissions.compat.P2Backend.initialize(
            at ru.tehkode.permissions.PermissionManager.setBackend(PermissionManager
            at ru.tehkode.permissions.PermissionManager.initBackend(PermissionManage
            at ru.tehkode.permissions.PermissionManager.<init>(PermissionManager.jav
            at ru.tehkode.permissions.bukkit.PermissionsEx.onLoad(
            at org.bukkit.craftbukkit.CraftServer.loadPlugins(
            at org.bukkit.craftbukkit.CraftServer.reload(
            at org.bukkit.command.SimpleCommandMap$ReloadCommand.execute(SimpleComma
            at org.bukkit.command.SimpleCommandMap.dispatch(
            at org.bukkit.craftbukkit.CraftServer.dispatchCommand(
            at net.minecraft.server.MinecraftServer.b(
            at net.minecraft.server.MinecraftServer.h(
    Another post. How do I configure the p2compat backend?

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


    will PEX intercept/work with plugins that only use the default 'built in' bukkit permissions?
  11. Offline


  12. Offline


    Hello? I posted the info you wanted. Anything else you need to know just ask, but server crashing every time i use /pex promote or /pex group xxx user add xxx is getting annoying.
  13. Offline


    look on point 18 of feature list in OP post :)

    p2compat backend made only for migration, no need to configure.
    Just follow instruction on wiki.

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


    whoops, thanks
  15. Offline


    This is definitly a lightweight and much more easier Permission Plugin as that
    one from the Essentials Team or Nijkokun...
    Siriusoly this is a masterpiece.
    I learned the commands like in 2 Minutes, cause they are logical made.
    The developer of this plugins: He's awsome, helpfull and calm.
    He helped me on IRC, understandable and fast!

    You are definitly a upper class t3hk0d3.

    big_hairy_jimbo likes this.
  16. Offline


    Not entirely, but mostly. If you try to import world.yml and your world name is something different, it will still error like that. You should make it detect different world names and either ask or warn. Not only that, but it only imports groups. It doesn't import users.
  17. Offline


    how can I prevent placing TNT with modifyworld perms?

    can anyone inform me a perm node for that?
  18. Offline


  19. Offline


    Whenever I give myself permission to use something, the file writes this:

    - Admins
    permissions: []

    Why does it say [] and not the permission node?
  20. Offline


    Loved timed permissions. They make some really interesting events possible. When the timed permission is granted, we get the 'permissions have changed' message, which is great. Is there anyway to have it given again when the permission expires?
  21. Offline


    Can anyone do a video or link me to a video explaining how to set up PEX? I don't have a clue what all the programming stuff means. I managed to set up Yeti's Permissions just fine but this just doen't explain thngs very well. Please?
  22. Offline


    Does 1.1.3 Allow users to be in multiple tracks?
    For example, one track goes Default -> Nation1Builder - >Nation2Expert....
    and another goes Default ->Nation2Builder - >Nation2Expert....

    Basically Multi-Ladder, as you said it would be added here:
    If that was/is added, PEX would be perfect, in my opinion :D
  23. Offline


    Multi-Ladder were added in 1.12 :) User can be on several ladders.
    There is currently one limitation - group can be member only of one ladder. This are planned to be fixed in 1.14.
  24. Offline


    ^^That was the feature I'm looking for, multipler ladders for one user. Any estimate on when 1.14 will be released? Or is a dev build out for it? I'd love to test it and give error/debug messages, because I need that feature.
    Great work with PEX though. Definately the most superior permissions plugin.
  25. Offline


    Currently you can have user on multiply ladders. Limitation what you can't have group in several ladders.
  26. Offline


    I am a little bit lost with this plugin. Do I need PermissionsBukkit installed?
    Basicly what I have now is PermissionsEx and the Permissions that was bundled.

    I also can't get the /pex user <player> add "permission.node" working.
    If I use the command and check the Permissions.yml file I see this:
    permissions: []
    And world permissions do not work for me?
  27. Offline


    Yeah that's what I need.
    I need the group, "Default," to be in multiple ladders.
    Is there a dev. build with that ready?

    It worked for me on 1.12 (I havn't upgraded yet).
    Do you put quotation marks around the permission node? If so, don't.

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


    Either with or without won't work.
  29. Offline


    So if I wanted to prevent people from building on or placing bedrock, I would give them -modifyworld.blocks.interact.7 and , correct?
  30. Offline


    interact is enough
  31. Offline


    Update: Fixed! See bottom!
    So I have a problem. I know your permissions compatability plugin works great for the most part with most of my plugins, but upon updating residence I see that this error appears:
    11:10:31 [SEVERE] Could not pass event BLOCK_PLACE to Residence
    java.lang.NoSuchMethodError: com.nijiko.permissions.PermissionHandler.getPrimaryGroup(Ljava/lang/String;Ljava/
            at com.bekvon.bukkit.residence.permissions.PermissionManager.getGroupNameByPlayer(PermissionManager.ja
            at com.bekvon.bukkit.residence.permissions.PermissionManager.getGroupNameByPlayer(PermissionManager.ja
            at com.bekvon.bukkit.residence.listeners.ResidenceBlockListener.onBlockPlace(ResidenceBlockListener.ja
            at org.bukkit.plugin.RegisteredListener.callEvent(
            at org.bukkit.plugin.SimplePluginManager.callEvent(
            at org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(
            at org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(
            at net.minecraft.server.ItemBlock.a(
            at net.minecraft.server.ItemStack.placeItem(
            at net.minecraft.server.ItemInWorldManager.interact(
            at net.minecraft.server.NetServerHandler.a(
            at net.minecraft.server.Packet15Place.a(SourceFile:57)
            at net.minecraft.server.NetworkManager.b(
            at net.minecraft.server.NetServerHandler.a(
            at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
            at net.minecraft.server.MinecraftServer.h(
    I looked at it and it's saying that a methods are missing. This method is getPrimaryGroup. Since this method is missing it means the rest of the code is caused to error. I've just asked the author to attempt to support PermissionsEx, but I was wondering what it would take to have your permissions compatability plugin also hav compatability with the function: getPrimaryGroup. I'll in to this further, but I'm just letting you know.
    Okay so I did some exploring and I found the method that isn't interfacing with your plugin well. This is main section:
     public String getGroupNameByPlayer(String player, String world) {
            String defaultGroup = Residence.getConfig().getDefaultGroup();
                String group = playersGroup.get(player);
                    group = group.toLowerCase();
                    if(group != null && groups.containsKey(group))
                        return group;
            if (authority == null && newperms == null) {
                return defaultGroup;
            } else {
                String group = null;
                if(authority != null && Residence.getConfig().useLegacyPermissions())
                    group = authority.getGroup(world, player);
                else if(newperms!=null)
                    List<Group> newgroups = newperms.getGroups(player);
                    for(Group newgroup : newgroups)
                        group = newgroup.getName().toLowerCase();
                 [B][COLOR=rgb(255, 0, 0)][x][/COLOR][/B]   group = authority.getPrimaryGroup(world, player);
                    group = group.toLowerCase();
                if (group == null || !groups.containsKey(group)) {
                    return defaultGroup;
                } else {
                    return group;
    Now the error originates from the line of code with the red x next it. To include some items in the example when it refers to Authority it refers to this:
    protected static PermissionHandler authority;
    I did some more investigation to find what PermissionHandler was and I found out that it was a handler that someone made to allow for use of legacy permissions. He has since added a config option to allow legacy permissions. For anyone hacing problems with the plugin just enable it in the config!

Share This Page