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


    another quick question tehkode;

    Did you impliment a command to 'unset' a prefix or suffix via console/in-game? It seems that once you set a prefix/suffix, you can't unset it without going to the database/file and removing it manually.

    I've tried all manner of setting it to '' "" or null, and that just sticks too (nice code sanitization :) )
  3. Offline


    >pex user t3hk0d3 prefix
    23:56:14 [INFO] t3hk0d3's prefix is:
    >pex user t3hk0d3 prefix "hello"
    23:56:22 [INFO] t3hk0d3's prefix is: hello
    >pex user t3hk0d3 prefix ""
    23:56:26 [INFO] t3hk0d3's prefix is:
    >pex user t3hk0d3 prefix
    23:56:32 [INFO] t3hk0d3's prefix is:
  4. Offline


    Got it, Thanks again. This mod will be in use on our high-traffic server (~400 connections a day). Thank you for all the time you've devoted, and for answering my questions.
  5. Offline


    Im glad to help. Thank you for bug reports.

    New version 1.05
    New command - pex dump <backend> <filename>
    New commands - pex promote/demote <user> <group> - Aliases for pex user <user> group set/remove <group>

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


    for those trying to migrate from yml to mysql abadon84 posted this script
    i had to edit it to add
    at the top of the file (running linux) along with changing the database info. Its really easy to use. Put it in your bukkit folder and it reads your old permissions .yml
  7. Offline


    Hey cool thx
  8. Offline


    Please can we have an permission for the command "/ kill me" ?
    and can you add the permission "modifyworld.blocks.interact .*"?
  9. Offline


    ask the dev of the plugin where that command is to add permission support. pex is a permission system and not a bunch of useless commands!

    modifyworld.blocks.interact .* is already in. stop be retard
  10. Offline


    Sorry, the modifyworld.blocks.interact .* did not work.
  11. Offline


    More detail pls. You are sure enabled modifyworld? Type "pex config permissions.modifyworld true" to be sure.
  12. Offline


    Yes, I enabled modifyworld, but several permissions did not work: .*
    modifyworld.blocks.destroy .*
    modifyworld.blocks.interact .*

    I do not know why, I just withdrew permission "" and it worked.
    Edit : I wanted permission to control /kill me, because my players locked away in prison escape while he no longer leaves. I thought a permission like this could be in modifyworld (permission to kill).
    And sorry for my spelling, I'm french
  13. Offline


    np, im not native english speaker too :) Well, im russian.

    "modifyworld.blocks.*" works fine for me. You are sure there isn't any typos or whitespaces?
  14. Offline


    I do not think I made typos or whitespace, I made a copy and paste from the README. The key is that it works, I would write if it does not work! ^ ^
  15. Offline


    try this permission node: modifyworld.*
  16. Just a reminder, this script does not seem to work for me, did you have an updated version?
  17. Offline


    New version - 1.06.
    Now migration from Permissions 2.x are pretty easy thing.
  18. PEX was working extremely well, but sadly it has a memory issue for us.

    GC logs:

    We have about 5k entries in Perm table, and 2k both in Entities and Inheritance.
  19. Offline


    PEX utilize lazy loading - less memory consuption, but more operation intensive. This mean data "loaded" on-demand. To be honest there is some exceptions. Anyway, this problem is solveble - needs more caching, but this would lead to more memory consuption.

    Also as i can see from logs GC sweep is faster.

    Is that so much curical?
  20. Well I would love to test a version with more caching, and less dynamic loading. Ideally with a config flag to toggle it, so I can properly compare the two methods.
  21. Offline


    How do you add world-specific permissions in the YAML file? I looked through your documentation and I could not find it.
  22. Offline


    Use command interface:
    pex user Drat333 add "permission.node" "WorldName"

    And look changes :)

    I recommend you to use command interface instead of manual file edit.

    Version 1.10
    Perfomance tweak.
    Just more caching. Thanks @Joy for testing.

    New Promotional/Demotional system:
    pex group <group> rank [rank]
    pex promote <user>
    pex demote <user>

    Set 0 (zero) to group to exclude group from ranking.
    Lower number - higher rank. Example: SuperVIPAdmins rank = 1
    Higher number - lower rank. Example: DirtyPeasants rank = 100

    New modifyworld permission:
    modifyworld.entity.interact.<entityname> - Interaction with entities, like taming wolfs.
    modifyworld.items.have.<itemid> - Permission to have specific item.

    This permissions are disabled by default. To enable them set "permissions.modifyworld.itemRestrictions" = true.

    Changed old ones:<entityname> - Now it's possible to specify entity.

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



    But in all seriousness, I have A LOT of commands that I do not want to be allowed on my Survival world. Its a lot more convenient to directly edit the file than entering in the command 20-30 times, plus errors due to typos. I believe you should make file editing easier for the user i.e. give us a format for where each aspect of the file should be.
  24. Offline


    @Drat333: use command interface to make only few settings, then look into generated file. you will see, that it works exactly the same way like permissions, just a little bit different syntax. after you are set, use command /pex reload

    btw. if you already have a permissions 2.x setup, just use permissionscompat to import from the old ;)
  25. Offline

    Devon L Ferree

    I would like to request a sub-node feature of "permissions.manage.membership" and "permissions.users.rank".
    The feature I am wanting is the ability to allow a group to add/remove users to their group only, and in/de-crease the rank of only the users in their group set. I want this feature to be permission node based.
    btw, love this plugin
  26. Offline


    No I used the script from that post. I just added
    at the top of the file and made sure I had perl installed. After that i just ran it with ./ (after changing the file again to add my mysql user and password) and it worked, though I did have to add users to groups in game afterwards. This was using ubuntu 11.04.

    the perl interpreter might also be in
    so use that if it doesn't work at first.
  27. Lol I can manage to get perl working, that was not the issue :p

    I got a working script linked at some point later, and that did the job :)


    On another note, seems PEX is not entirely PR 2.7 compatible, please check this post, Devs:

    Are those methods deprecated, or can't be implemented, or?
  28. Offline


    Well, this methods (setCacheItem) is intended to be internal Permission's kitchen, which shoudn't be used by another plugins. I'll look what i can do for this.
  29. Offline


    is this a replacemnt for the normal permissions and will it work with the otherplugins
  30. Offline


    This is a question? If yes than im advice you to read first post again. Please.
  31. Offline


    i really like you plugin, thanks a lot for the job !
    unfortunetely iConomy is not hooking in the permissions correctly. i'm running a bukkit818 server
    i don't know if it's the compatibily permissions plugin that's not working well or iconomy
    is it possible to make them work together well ?

Share This Page