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


    upload to your full server.log please.
  3. Offline


  4. Offline


    EPIC you can even set more build permissions etc then in permissions
  5. Offline


    t3hk0d3 does it reread the DB every 15m ins, let say, or only on restart?
  6. Offline


    it doesn't reread DB by time. It query database for each user/group.

    For users it happens when anyone request user permission first time and get cleaned after user reconnect.
    This means to refresh user permissions user need to reconnect.

    For groups you need make pex reload, if you modify them directly in database. Since group permissions doesn't change frequently i think its okay.

    Look like your user/password settings are invalid.

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


    Ammmm... So if Xman join the game he will be on G1 till he reconect, and then he willgo to G2, if I change his status while he is online?

    If I change a group permissions to add new permission they will be updated ONLY if I put in console pex reload.

    Did I understood you right?
  8. Offline


    Erm, taking forward what you answered MadMaid (He and I are working on the same server)...
    Take a look at the document below. I'm asuming the Database user has been set up correctly
  9. Offline


    Yes. This compromise done for perfomance reasons.

    Also you can change permissions using command interface, than all changes would be online.

    You see,
    Communications link failure
    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    Such things happens on MySQL >= 5.0, new feature - if login or password are invalid than disguise as offline.

    Tested on 928. Works well, maaan.

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


    I try to run this query:

    INSERT INTO permissions_entity (id, name, type, prefix, suffix, default) VALUES (NULL, 'username','1', '', '&8', '0')
    And I get this error
    [SQL] INSERT INTO permissions_entity (id, name, type, prefix, suffix, default) VALUES (NULL, 'dd','1', '', '&8', '0')
    [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'default) VALUES (NULL, 'username','1', '', '&8', '0')' at line 1
    Is this error becouse you named that column default?
  11. Offline


    default are integer value, so no quotes.
    INSERT INTO permissions_entity (name, type, prefix, suffix) VALUES ('username','1', '', '&8')
  12. Offline


    Works like a charm.
    Didn't know that trick, thx :)
  13. Offline


    @ t3hk0d3
    Is there any possiblity of adding a feature to let users join certain groups on their own?
    Similar to this (ROLES) plugin that is now broke thanks to CB 928 killing groupmanager :(
    In a nutshell, this allows admins to define groups, with required groups (if the desire), for users to join, it also sets categories and limits to the amount of said groups that the user can join.

    I honestly dont think it would be extremely difficult to code, then again, i have roughly ZERO coding experience :p

    Any feed back would be greatly appreciated
  14. Offline


    Hello! Im moving from Permissions 3 to your pluggin and I am re-writting permissions right now!.

    Somehow, default still can build.
    That is my permissions YAML
            - '*'
            prefix: '[Admin] '
            default: false
                rank: '0'
            default: false
                rank: '800'
            prefix: '[Moderator] '
            default: true
                rank: '1000'
            permissions: []
            prefix: '[Noob] '
                rank: '900'
            - modifyworld.*
            prefix: '[Builder] '
            - Admins
            group: Admins
            group: Moderators
    Is there something wrong in there?
  15. Offline


    Sorry but this is would be excessive functional for PEX.
    I looked into source of ROLES. Conversion into pex would be very easy. (find/replace)
    If you find developer who would agree to convert from GM to PEX plugin for you - you can rely on my help.

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


    @t3hk0d3 I hope you will consider my offer of 1 (one) first-born child in exchange for Buyabilities support. Thank you.


    Truly though, I love your plugin, and this would be an enourmous cherry on top!
  17. Offline


    I'll keep this in mind for when GM breaks again :p (it's inevitable with no support) But i did manage to get it running again with a bit of tweaking, so i can ride it out a bit longer. Thanks for your support anyways :D
  18. Offline


    didnt see that note lol.
    enabled Modifyworld!

    Thanks a whole lot!
  19. Offline


    " test.*groups: null"
    Nice permission.
  20. Offline


    Please add support for Time Rank.
    10:26:38 [INFO] [PermissionsEx] sql backend registered!
    10:26:38 [INFO] [PermissionsEx] file backend registered!
    10:26:38 [INFO] [PermissionsEx] PermissionEx plugin initialized.
    10:26:38 [INFO] [PermissionsEx] p2compat backend registered!
    10:26:38 [INFO] [PermissionsCompat] Compatibility Layer Initalized!
    10:26:38 [INFO] [PermissionsEx] Initializing file backend
    10:26:38 [INFO] [PermissionsEx] Modifyworld is enabled.
    10:26:38 [INFO] [PermissionsEx] v1.12 enabled
    10:26:38 [INFO] [Time Rank] Keys size 1
    10:26:38 [INFO] [Time Rank] Loaded admins with group admins in world world
    10:26:38 [INFO] [Time Rank] Version 0.0.7Enabled.
    10:26:38 [INFO] [TimeRank] Permissions 3.x found.
    10:26:38 [SEVERE] Could not pass event PLUGIN_ENABLE to TimeRank
    java.lang.NoClassDefFoundError: com/nijiko/permissions/Entry
            at com.oberonserver.timerank.timerank.setupPermissions(
            at com.oberonserver.timerank.TimeRankServerListener.onPluginEnable(TimeR
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage
            at org.bukkit.craftbukkit.CraftServer.loadPlugin(
            at org.bukkit.craftbukkit.CraftServer.loadPlugins(
            at net.minecraft.server.MinecraftServer.e(
            at net.minecraft.server.MinecraftServer.a(
            at net.minecraft.server.MinecraftServer.init(
    Caused by: java.lang.ClassNotFoundException: com.nijiko.permissions.Entry
            at$ Source)
            at Method)
            at Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            ... 14 more
    10:26:38 [INFO] [PermissionsCompat] Compatibility layer enabled.
  21. Offline


    Sorry, but PEX are not compatible with Permissions 3. Nag author to make native PEX support.
  22. Offline


    Wait so all permission based plugins will work with this? I am tempted because permissions is out of date right now getting on my nerves, this looks like a lot simpler commands to use... I'm just worried my world will break because I do use alot of plugins :p and:

    adding a negative permission will take it away right? Thats the most important permissions feature for me...
  23. Offline


    sure, negative permissions also supported.
  24. Offline


    i just started using permissionsex and i have the following error when i try to remove a group:
    17:01:09 [INFO] Group admins removed!
    17:01:09 [SEVERE] There is bogus command handler for pex command. (Is appropriate plugin is update?)
    17:01:09 [SEVERE] java.lang.RuntimeException: java.lang.UnsupportedOperationException
    17:01:09 [SEVERE] at ru.tehkode.permissions.commands.CommandsManager$
    17:01:09 [SEVERE] at ru.tehkode.permissions.commands.CommandsManager.execute(
    17:01:09 [SEVERE] at ru.tehkode.permissions.bukkit.PermissionsEx.onCommand(
    17:01:09 [SEVERE] at org.bukkit.command.PluginCommand.execute(
    17:01:09 [SEVERE] at org.bukkit.command.SimpleCommandMap.dispatch(
    17:01:09 [SEVERE] at org.bukkit.craftbukkit.CraftServer.dispatchCommand(
    17:01:09 [SEVERE] at net.minecraft.server.MinecraftServer.b(
    17:01:09 [SEVERE] at net.minecraft.server.MinecraftServer.h(
    17:01:09 [SEVERE] at
    17:01:09 [SEVERE] at
    17:01:09 [SEVERE] Caused by: java.lang.UnsupportedOperationException
    17:01:09 [SEVERE] at java.util.AbstractList.remove(
    17:01:09 [SEVERE] at java.util.AbstractList$Itr.remove(
    17:01:09 [SEVERE] at java.util.AbstractCollection.remove(
    17:01:09 [SEVERE] at ru.tehkode.permissions.PermissionUser.removeGroup(
    17:01:09 [SEVERE] at ru.tehkode.permissions.PermissionGroup.remove(
    17:01:09 [SEVERE] at ru.tehkode.permissions.bukkit.commands.GroupCommands.groupDelete(
    17:01:09 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    17:01:09 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke(
    17:01:09 [SEVERE] at sun.reflect.DelegatingMethodAccessorImpl.invoke(
    17:01:09 [SEVERE] at java.lang.reflect.Method.invoke(
    17:01:09 [SEVERE] at ru.tehkode.permissions.commands.CommandsManager$
    17:01:09 [SEVERE] ... 9 more
  25. Offline


    Fixed, redownload 1.12.
  26. Offline


    What is the command for set default group?:)
  27. Offline


    Is this better than permissions 3 oder 2.7.x
    and is it compatible with all plugins?
  28. Offline


    ok next error that i get :p

    >pex group Admins add "*"
    20:10:29 [SEVERE] There is bogus command handler for pex command. (Is appropriate plugin is update?)
    20:10:29 [SEVERE] java.lang.RuntimeException: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'Admins-*--0' for key 'unique'
    20:10:29 [SEVERE] at ru.tehkode.permissions.commands.CommandsManager$
    20:10:29 [SEVERE] at ru.tehkode.permissions.commands.CommandsManager.execute(
    20:10:29 [SEVERE] at ru.tehkode.permissions.bukkit.PermissionsEx.onCommand(
    20:10:29 [SEVERE] at org.bukkit.command.PluginCommand.execute(
    20:10:29 [SEVERE] at org.bukkit.command.SimpleCommandMap.dispatch(
    20:10:29 [SEVERE] at org.bukkit.craftbukkit.CraftServer.dispatchCommand(
    20:10:29 [SEVERE] at net.minecraft.server.MinecraftServer.b(
    20:10:29 [SEVERE] at net.minecraft.server.MinecraftServer.h(
    20:10:29 [SEVERE] at
    20:10:29 [SEVERE] at
    20:10:29 [SEVERE] Caused by: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'Admins-*--0' for key 'unique'
    20:10:29 [SEVERE] at ru.tehkode.permissions.sql.SQLConnectionManager.updateQuery(
    20:10:29 [SEVERE] at ru.tehkode.permissions.sql.SQLEntity.setPermission(
    20:10:29 [SEVERE] at ru.tehkode.permissions.sql.SQLEntity.addPermission(
    20:10:29 [SEVERE] at ru.tehkode.permissions.sql.SQLPermissionGroup.addPermission(
    20:10:29 [SEVERE] at ru.tehkode.permissions.bukkit.commands.GroupCommands.groupAddPermission(
    20:10:29 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    20:10:29 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke(
    20:10:29 [SEVERE] at sun.reflect.DelegatingMethodAccessorImpl.invoke(
    20:10:29 [SEVERE] at java.lang.reflect.Method.invoke(
    20:10:29 [SEVERE] at ru.tehkode.permissions.commands.CommandsManager$
    20:10:29 [SEVERE] ... 9 more
    20:10:29 [SEVERE] Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'Admins-*--0' for key 'unique'
    20:10:29 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    20:10:29 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance(
    20:10:29 [SEVERE] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(
    20:10:29 [SEVERE] at java.lang.reflect.Constructor.newInstance(
    20:10:29 [SEVERE] at com.mysql.jdbc.Util.handleNewInstance(
    20:10:29 [SEVERE] at com.mysql.jdbc.Util.getInstance(
    20:10:29 [SEVERE] at com.mysql.jdbc.SQLError.createSQLException(
    20:10:29 [SEVERE] at com.mysql.jdbc.MysqlIO.checkErrorPacket(
    20:10:29 [SEVERE] at com.mysql.jdbc.MysqlIO.checkErrorPacket(
    20:10:29 [SEVERE] at com.mysql.jdbc.MysqlIO.sendCommand(
    20:10:29 [SEVERE] at com.mysql.jdbc.MysqlIO.sqlQueryDirect(
    20:10:29 [SEVERE] at com.mysql.jdbc.ConnectionImpl.execSQL(
    20:10:29 [SEVERE] at com.mysql.jdbc.PreparedStatement.executeInternal(
    20:10:29 [SEVERE] at com.mysql.jdbc.PreparedStatement.executeUpdate(
    20:10:29 [SEVERE] at com.mysql.jdbc.PreparedStatement.executeUpdate(
    20:10:29 [SEVERE] at com.mysql.jdbc.PreparedStatement.executeUpdate(
    20:10:29 [SEVERE] at ru.tehkode.permissions.sql.SQLConnectionManager.updateQuery(
    20:10:29 [SEVERE] ... 18 more
  29. Offline


    Fixed. Use [ code] or [ spoiler] tags for logs please.

    Congradulations my dear Komrads :D
    PermissionsEx 1.12 is out. With big load of new features and improved old ones.
    For greater prosperity and stability of out glorious minecraft servers.

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


    I'm sorry, but I can't seem to get prefixes to work. I really don't get it. They won't show up in the chat at all. Any help? :)
    Show Spoiler
            - Gaijin
            default: false
                rank: '9000'
            - modifyworld.*
            prefix: '[Shin]'
            - Shin
  31. Offline


    You are installed PermissionCompat? What chat plugin do you use? iChat? HeroChat?

Share This Page