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


    Could you make a permaLink to the latest jar only? (It's make using CBUpToDate a lot easier)
  3. Okay. I have NEVER had a problem with 2.7.x. However, I want to be able to add permissions in-game.

    Is this plugin as rock-solid as 2.7 permissions?
  4. Offline


    Have been trying for hours now but I just cannot START the p2compat backend whatsoever, it says its registered during startup, but when actually attempting to use it...
    After a few more errors I got it to work. Some bad formatting that occured during our conversion from 3 to 2.x.

    What I find odd is, MineQuery (using 2.0 dev from GitHub) does no longer work, there are no issues with it in regards of errors, it just does not work. :(
  5. Offline


    Found possible pex bug, I run latest mcMMO with all the permission nodes and with pex 1.13 I cant access any of the commands but if I revert to permissions 2.7 they work again. My guess is that mcMMO doesnt hook in to PEX like it should but thats my guess. Anyways I will try to hit you guys up on irc instead was just there but no one was online :D
  6. Offline


    This is my first time using permissions ex and i'm having trouble adding groups, user permissions and setting myself as an admin. Any help on this would be great.
  7. Offline


    Well until an hour ago i was using GroupManger ..
    and than it's over .. it says please use permissions and i kind of missed up installing it using the mysql so i came to this plugin as my best option .. actually my only option ..
    i made hopes on it and i installed everything and it works fine except for the worldmodyfying problem ..
    see, i've made a player called test ... gave the default group -modifyworld.* ..
    and gave them
    now this is what i get using "pex group default" << i'm quit getting used to it <3
    >pex group default
    17:06:25 [INFO] Group default's permissions:
    1) -modifyworld.* @common (own)
    2) @common (own)
    17:06:25 [INFO] Group default's Options:
    17:06:25 [INFO]   rank = "1000"

    but i created a user called test .. it's not suppose to be breaking any blocks right ??
    well guess what ?
    it's able to break blocks -.-
    aw and also, i duuno if this is the cause of the problem but it might be ..
    before i do that i used "pex group Default set parent Builder" and builder have the apility to build BUT i didn't see and unset parent in the command list so i wen't to the database and deleted the row from the table manually ..
    it sounded like it worked becasue the player test go his default prefix back instead of the Builder prefix ..
    please help me :) ?

    aw here :
    followed this guide and understood everything about it .. it's quit handy and easy to use :D
  8. Offline


    We've been using PermissionsEx for some time on our new server and it's been working great! Stable, straightforward and still manages to suit our needs perfectly. Thank you!

    Our only criticism is the need for multiple pages when viewing the help text for /pex in game. :) Saves having to go back to the thread to view the command list.
  9. Offline


    I get this when I do > pex dump file permissions.yml
    2011-07-12 15:56:25 [INFO] [PermissionsEx] Initializing file backend
    2011-07-12 15:56:25 [INFO] Error: null
    2011-07-12 15:56:25 [SEVERE] Error: null
    2011-07-12 15:56:25 [SEVERE] java.lang.NullPointerException
    2011-07-12 15:56:25 [SEVERE]     at ru.tehkode.permissions.compat.P2Entity.getOption(
    2011-07-12 15:56:25 [SEVERE]     at ru.tehkode.permissions.ProxyPermissionGroup.getOwnOption(
    2011-07-12 15:56:25 [SEVERE]     at ru.tehkode.permissions.ProxyPermissionGroup.getOption(
    2011-07-12 15:56:25 [SEVERE]     at ru.tehkode.permissions.PermissionEntity.getOptionInteger(
    2011-07-12 15:56:25 [SEVERE]     at ru.tehkode.permissions.PermissionGroup.getWeight(
    2011-07-12 15:56:25 [SEVERE]     at ru.tehkode.permissions.PermissionGroup.compareTo(
    2011-07-12 15:56:25 [SEVERE]     at ru.tehkode.permissions.PermissionGroup.compareTo(
    2011-07-12 15:56:25 [SEVERE]     at java.util.Arrays.mergeSort(Unknown Source)
    2011-07-12 15:56:25 [SEVERE]     at java.util.Arrays.sort(Unknown Source)
    2011-07-12 15:56:25 [SEVERE]     at java.util.Collections.sort(Unknown Source)
    2011-07-12 15:56:25 [SEVERE]     at ru.tehkode.permissions.PermissionGroup.getParentGroups(
    2011-07-12 15:56:25 [SEVERE]     at ru.tehkode.permissions.PermissionGroup.isChildOf(
    2011-07-12 15:56:25 [SEVERE]     at ru.tehkode.permissions.PermissionGroup.getParentGroups(
    2011-07-12 15:56:25 [SEVERE]     at ru.tehkode.permissions.PermissionGroup.getParentGroupsNames(
    2011-07-12 15:56:25 [SEVERE]     at ru.tehkode.permissions.backends.FileBackend.dumpData(
    2011-07-12 15:56:25 [SEVERE]     at ru.tehkode.permissions.bukkit.commands.UtilityCommands.dumpData(
    2011-07-12 15:56:25 [SEVERE]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    2011-07-12 15:56:25 [SEVERE]     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    2011-07-12 15:56:25 [SEVERE]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    2011-07-12 15:56:25 [SEVERE]     at java.lang.reflect.Method.invoke(Unknown Source)
    2011-07-12 15:56:25 [SEVERE]     at ru.tehkode.permissions.commands.CommandsManager$
    2011-07-12 15:56:25 [SEVERE]     at ru.tehkode.permissions.commands.CommandsManager.execute(
    2011-07-12 15:56:25 [SEVERE]     at ru.tehkode.permissions.bukkit.PermissionsEx.onCommand(
    2011-07-12 15:56:25 [SEVERE]     at org.bukkit.command.PluginCommand.execute(
    2011-07-12 15:56:25 [SEVERE]     at org.bukkit.command.SimpleCommandMap.dispatch(
    2011-07-12 15:56:25 [SEVERE]     at org.bukkit.craftbukkit.CraftServer.dispatchCommand(
    2011-07-12 15:56:25 [SEVERE]     at net.minecraft.server.MinecraftServer.b(
    2011-07-12 15:56:25 [SEVERE]     at net.minecraft.server.MinecraftServer.h(
    2011-07-12 15:56:25 [SEVERE]     at
    2011-07-12 15:56:25 [SEVERE]     at
  10. Offline


    Well, there is problem. PEX is composite (there is two jars, in near future would be four) which should be synced in version, ie from one package. Also lastest jars are not always stable.

    It's not good idea to give OP all permissions. I thought about that.
    I can suggest you just add that special player (~op) all permissions he need, or "*" :)

    You enabled modifyworld, right?
    Also -modifyworld.* should be below coz permissions are checked from top to bottom.
    As for "pex group Default set parent Builder" - with that command you set option parent to value "builder". You mean "pex group Default parent set Builder", right?

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


    well .. actually i understoon that child gets the permissions of the parent and i've setted it manually from the MySQL database and everything works just the way i want it now :D
    yes that's what i meant ^_^
    so ... nevermind about them ...
    now for the modifyworld ..
    well you see ..
    i wen't tp check in the database it had the ID 9 ..
    i've even remved it ..
    still sometimes it works .. sometimes it doesn't = AT the SAME TIME
    for example i go break sand it doesn't break ..
    i go break dirt it does break it !
    i die holding dirt i no longer can break it
    i go break log i can break it
    i run into a creeper and kill my self .. i go break the log i can still break it ??
    i dunno what's causing this, this is so wired ..
    but since no one other than me reported it,my guess it's because of a plugin that conflict with pex .
    or becasue of my database ? what ever it's it doesn't matter as long as the permissions part works just as awesome as ever ^_^
    so don't worry :) i'm just gonna use __Global__ in worldguard to add default to black-list ..
    everything other that is working just great i'm so loving it :D
    thanks ^_^
  12. Offline


    Im getting this server error:
    2011-07-13 09:59:48 [INFO] [PermissionsEx-SQL] Connecting to database ""
    2011-07-13 09:59:48 [SEVERE] invalid database address: initializing PermissionsEx v1.12 (Is it up to date?)
    java.lang.RuntimeException: invalid database address:
    at ru.tehkode.permissions.sql.SQLConnectionManager.<init>(
    at ru.tehkode.permissions.backends.SQLBackend.initialize(
    at ru.tehkode.permissions.PermissionManager.setBackend(
    at ru.tehkode.permissions.PermissionManager.initBackend(
    at ru.tehkode.permissions.PermissionManager.<init>(
    at ru.tehkode.permissions.bukkit.PermissionsEx.onLoad(
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(
    at org.bukkit.craftbukkit.CraftServer.<init>(
    at net.minecraft.server.ServerConfigurationManager.<init>(
    at net.minecraft.server.MinecraftServer.init(
    apparently im not entering the url in correctly... do i need to replace the "jdbc" with "http" ?
    also, when I do get the tables created and the permissions.sql imported to the tables.. do i remove the old permissions.jar (2.x) and its folder?
    Thanks for a GREAT plugin by the way
  13. Offline


    Thank your for testing development version. It's fixed in lastest development build.

    uri: 'mysql://'

    Also don't miss PermissionsCompat (Permissions.jar) and Permissions 2.x (Permissions.jar too).
    PermissionsCompat is necessary.

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


    Sorry for my ignorance, whats "PermissionsCompat"... i did notice that you bundled "Permissions.jar" with Per..EX.jar" in your .zip file. But I thought that was a copy of the permissions(2.x).jar?
    I am able to connect now.. and it did create the tables, however, i get this error when i try and import the .sql file:

    SQL query:
    INSERTINTO`permissions_entity` (`name` ,`type` ,`prefix` ,`suffix` ,`default`)
    VALUES (
    'default', 0,'','', 1
    MySQL said: [​IMG]
    #1062 - Duplicate entry 'default' for key 'name'
  15. Offline


    There is no need to import .sql file manually, pex already did this for you :)
  16. Offline


    Per the Wiki instructions:
    "Upload this file to sql server manually, configure sql backend. After a successful import execute
    pex backend sql command."... ? or am I missing something here?
    Doesn't this command sequence dump the world.yml into a .sql file that I then need to import into the sql tables that Per..EX created?:
    pex backend p2compat
    pex dump sql "permissions.sql"
  17. Offline


    You trying to migrate from something? Than truncate tables before importing.
  18. Offline


    Can someone make a video how to set this thing up? Please I really have done everything in basic setup and shit but something must been wrong. Please make a video tutorial on how to set it up and add different nodes such as -'set.home' cus when i set that node up + all other nodes + '' node if thats needed it just come syntax error permission something
    + I cant use prefix , no prefix shows up
  19. Offline


    Awesome plugin!

    works perfectly!
  20. Offline


    Great job, it's looks like easy to use
  21. Offline


    Do what I did, try adding in the permissions from the commands , and then try to match the style given. And there is no need to use a single quote before and after the permission . just use - instead .
  22. Offline


    Hmm. i'm trying to make pvp disable for the player in the same group but it's not working :'(.

    Is this command ok?
    /pex group Nouveau add ""

    Tested with:
    enable: true
    itemRestrictions: true
    Of course group Nouveau have this node too > modifyworld.*

    Thx ! :)
  23. Offline


    You must also add /pex group Nouveau add* because PEX first checks if you have permission to damage group memebers, and if not, checks if you have permission to damage the given player. So, with this you will still be able to attack other groups members. (unless you also need to setup damage.take not sure about that)
  24. Offline


    migrating from permissions 2.7, and I have a couple of questions;


    can users belong to multiple groups?

    and, will this work?
            prefix: '&c'
            - LightningEvent.onJoin
            - firelord.armor
            - ichat.color
            - -firelord.armor
    (no firelord.armor permission in world Nether, but will be available in all other worlds?)

    Edit: hmm, seems not. getting this error:
    2011-07-14 09:51:32 [INFO] [PermissionsEx] sql backend registered!
    2011-07-14 09:51:32 [INFO] [PermissionsEx] file backend registered!
    2011-07-14 09:51:32 [INFO] [PermissionsEx] PermissionEx plugin initialized.
    2011-07-14 09:51:32 [INFO] [PermissionsEx] p2compat backend registered!
    2011-07-14 09:51:32 [INFO] [PermissionsCompat] Compatibility Layer Initalized!
    2011-07-14 09:51:33 [INFO] [PermissionsEx] Initializing file backend
    2011-07-14 09:51:33 [SEVERE] while parsing a block mapping; expected <block end>, but found BlockEntry initializing PermissionsEx v1.12 (Is it up to date?)
    while parsing a block mapping
     in "<reader>", line 149, column 9:
                prefix: '&c'
    expected <block end>, but found BlockEntry
     in "<reader>", line 157, column 9:
                - -firelord.armor
        at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(
        at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(
        at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(
        at org.yaml.snakeyaml.composer.Composer.composeMappingNode(
        at org.yaml.snakeyaml.composer.Composer.composeNode(
        at org.yaml.snakeyaml.composer.Composer.composeMappingNode(
        at org.yaml.snakeyaml.composer.Composer.composeNode(
        at org.yaml.snakeyaml.composer.Composer.composeMappingNode(
        at org.yaml.snakeyaml.composer.Composer.composeNode(
        at org.yaml.snakeyaml.composer.Composer.composeDocument(
        at org.yaml.snakeyaml.composer.Composer.getSingleNode(
        at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(
        at org.yaml.snakeyaml.Yaml.load(
        at ru.tehkode.permissions.config.Configuration.load(
        at ru.tehkode.permissions.backends.FileBackend.initialize(
        at ru.tehkode.permissions.PermissionManager.setBackend(
        at ru.tehkode.permissions.PermissionManager.initBackend(
        at ru.tehkode.permissions.PermissionManager.<init>(
        at ru.tehkode.permissions.bukkit.PermissionsEx.onLoad(
        at org.bukkit.craftbukkit.CraftServer.loadPlugins(
        at org.bukkit.craftbukkit.CraftServer.<init>(
        at net.minecraft.server.ServerConfigurationManager.<init>(
        at net.minecraft.server.MinecraftServer.init(
    2011-07-14 09:51:33 [WARNING] [PermissionsCompat] PermissionsEx plugin not found. Some plugins may not work.
    is there a way to do what I want?
  25. Offline


    Yes it's possible. Use the build in commands to set up your permissions, then look in permissions.yml to see how it is done
  26. Offline


    which command exactly? inheritance ones?
  27. Offline


    Here are the most useful commands:
    /pex group <group> create [parents] - Create group, optionally set parent groups by comma-separated list.
    /pex group <group> delete - Removes group. ("permissions.manage.groups.remove")
    /pex group <group> prefix [newprefix] - Print current group's prefix. Specify newprefix to set prefix.
    /pex group <group> suffix [newsuffix] - Print current group's suffix. Specify newsuffix to set suffix.
    /pex group <group> add <permission> [world] - Add permission to group.
    /pex group <group> remove <permission> [world] - Remove permission from group.
    /pex group <group> user add <users>- Add users (one or comma-separated list) to specified group.
    /pex group <group> user remove <users> - Add users (one or comma-separated list) to specified group.
    /pex user <user> group set <group> - Set only group for user (remove from others).
    /pex user <user> group add <group> - Add user to specified group.
    /pex user <user> group remove <group> - Remove user from specified group.
    Notice that you can specify [world] when setting permissions.
  28. Offline


    uhm I tried removing the permission for that group for that world and nothing happened. it says permission removed but nothing in the file changes. can someone just give me the correct config format for it?
  29. Offline


    Best permissions system to date, but I'd like to suggest the one single feature I need, promotion after a set amount of play time.

    Keep up the good work.
  30. Sorry for being a total ignorant fag but.. This is permissions with some cool upgrades.. right?
    If it works with most plugins then it should work with Time Rank @The24man I think that is what your looking for.

    Edit: Going to throw this on my test server now ;)
  31. Offline


    I just wasn't sure if it would, thanks.

Share This Page