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


    what exactly do you mean? i am running iconomy5 with pex + pex compat, everything fine here. could you post some errors?
  3. Offline


    What about migration from Perm. v3.1.1?
  4. Offline


    wait so

    permissions without yaml.

    my god, that's great.
  5. Offline


    I have to admit that PEX has got me stumped. I have been hosting a server for a short time now using Bukkit, but this is the first time I have tried to implement permissions aside from what was included in the Essentials plug-in. I am not getting any errors and can use commends I have restricted in Essentials to admins only but for the life of me none of the other plug-ins which use permissions seem to work. My guess is that something is not right with my permissions.yml file but I do not understand what. I have read the documents for PEX but something is not clicking. Is there a posibility that some one could post a snipit of a working permissions.yml file so that I can see what I am doing wrong, perhaps with comments as is good form when writing code?



    Edit: I can see now why I am not a fan of coding and why I struggle with html and linux. Caps in user names matter. Solved.
  6. Thank yo soo much I have been looking for something that runs permissions 2.0 instead of that crappy new 3.0
    If you keep this permission 2.0 format than I think you deserve cake and diamonds.
  7. Offline


    Getting this error. I checked the .yml for any out of place characters. Everything is spaced and stuff properly. What'm I doing wrong?

    minecraft@cirno:/opt/craftbukkit$ ./
    148 recipes
    16 achievements
    19:57:26 [INFO] Starting minecraft server version Beta 1.6.6
    19:57:26 [INFO] Loading properties
    19:57:26 [INFO] Starting Minecraft server on *:25565
    19:57:26 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-766-g3fc0460-b818jnks (MC: 1.6.6)
    19:57:26 [INFO] Preparing level "world"
    19:57:26 [INFO] Preparing start region for level 0
    19:57:27 [INFO] Preparing start region for level 1
    19:57:27 [INFO] Preparing spawn area: 32%
    19:57:28 [INFO] [PermissionsEx] sql backend registred!
    19:57:28 [INFO] [PermissionsEx] file backend registred!
    19:57:28 [INFO] [PermissionsEx] PermissionEx plugin was Initialized.
    19:57:28 [SEVERE] Could not load 'plugins/PermissionsEx.jar' in folder 'plugins':
    mapping values are not allowed here
     in "<reader>", line 5, column 16:
                    uri: mysql://localhost/permissions
            at org.yaml.snakeyaml.scanner.ScannerImpl.fetchValue(
            at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(
            at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(
            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 org.bukkit.util.config.Configuration.load(
            at org.bukkit.plugin.SimplePluginManager.loadPlugin(
            at org.bukkit.plugin.SimplePluginManager.loadPlugins(
            at org.bukkit.craftbukkit.CraftServer.loadPlugins(
            at net.minecraft.server.MinecraftServer.e(
            at net.minecraft.server.MinecraftServer.a(
            at net.minecraft.server.MinecraftServer.init(
    19:57:28 [INFO] Done (0.222s)! For help, type "help" or "?"
    and here's my config.yml
                uri: mysql://localhost/permissions
                user: minecraft
                password: [[redacted]]
                file: permissions.yml
        backend: mysql
        basedir: plugins/PermissionsEx
            enable: true
            itemRestrictions: false
            modifyworld: flase
            changes: true
  8. Offline


    The error is telling you where the error is. See the ^ character. It is underneath the i in uri which should be url.

    At least this is my guess.
  9. Offline


    There is none such character.
  10. Offline


    Hey! I love this plugin and it's helping me out a lot and is much easier to figure out than P3--but I have a question: will it support world inheritance/copying like P3? If so, I'd never go back. It's really ugly for my files (and hard to manage) to have everything in one gigantic .yml, especially if I'm copying over craploads of the same permissions for similar worlds.
  11. Offline


    then go never back, pex will support world inheritance soon :)
  12. Offline


    malformed yaml.
    also backend should be "sql" instead of "mysql"

    Yeah, i know its real pain in ass to support big ruleset for several world. I think world-inheritance will be very soon. Im already thinking how to implement this best way possible.

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

    ThreeDGuy I steal plugins as my own

    Congrats on this!
    My plugin superflowers supports this plugin :D
  14. Offline


    New version 1.11
    update are highly recommended
  15. Offline


    I couldn't help but notice a few spelling errors in the server.log from PermissionsEx. Any chance you can fix them? (I'm a bit of a spelling nazi, sorry. :))

    I know you're Russian, so that's props to you already

    Current message
    [INFO] [PermissionsEx] sql backend registred!
    [INFO] [PermissionsEx] sql backend registered!
    [INFO] [PermissionsEx] file backend registred!
    [INFO] [PermissionsEx] file backend registered!
    [INFO] [PermissionsEx] xml backend registred!
    [INFO] [PermissionsEx] xml backend registered!
    [INFO] [PermissionsEx] PermissionEx plugin was Initialized.
    [INFO] [PermissionsEx] PermissionEx plugin is initialized.
    [INFO] [PermissionsEx] p2compat backend registred!
    [INFO] [PermissionsEx] p2compat backend registered!
    [INFO] Connecting sql database server on "mysql://localhost/PermissionsEx"
    [INFO] Connecting to sql database server on "mysql://localhost/PermissionsEx"
    [INFO] [PermissionsEx] Modifyworld are enabled.
    [INFO] [PermissionsEx] Modifyworld is enabled.
    [INFO] [PermissionsEx] v1.11  enabled
    [INFO] [PermissionsEx] v1.11 enabled
  16. Offline


    Thank you. Done.
  17. Offline


    Thank you for the great plugin!
  18. Offline


    with TheYeti's permissions, do i have to use the folder and the yml file of his plugin or do i have to fill in everything in the folder in your plugin?

    i think i do something horribly wrong because none of my plugins can find found this plugin...

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


    1. no, you just need to read the description. there is also explained how to import permissions 2.x into pex

    2. install also the permissions compat, so plugins that are not compatible with pex yet can use that as permissions 2.x compatibility layer
  20. Offline


    thanks the compat did it!

    i have a '*' as permissions but when i try the /time day command i am being told that i "don't have Permissions to do that" i am using craftbukkit 844 and admincmd

    nobody has permissions!

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


    To use /time you should be op. It's built-in Minecraft server feature.
  22. Offline


    This is a really great plugin! What bothered me the most in the past was permissions or groupmanager always whining, and having no commands in permissions. With this one i can actually change the files with texteditor while my server is running. This plugin rocks!

    Only 1 question\remark: when i make a permission for admins like
    - *

    i get an error
    i cant copy the code right now, please tell me if it is relevant. Anyway, that doesnt give that group all rights, i have to add eacht plugin.* to the group.

    Will try to post the console output tomorrow
  23. Offline


    no, not the /time set 0, but the /time day
    /time day is not a minecraft command, it is an admincmd command...
    and nobody else has permissions!
  24. Offline


    This is yaml specific stuff. Try
    - "*"

    Quoted asterisk should work.

    You can also try
    pex group groupname add "*"
  25. Offline


    i use your mod. and iam server admin. but it always says : you dont have enought permissions if i try pex commands.
  26. Offline


    I don't really understand how this works .. :( (maybe i'm just a troll :rolleyes: )

    I have two permissions files in my plugins/Permissions folder -> perpetum.yml and perpetum_nether.yml (links to pastebin - both files are same..) and i really want this convert to my MySQL db and use all /pex commands in-game (mainly promote/demote system).

    I have Permissions 2.7.4 (Nijikokun) installed | CB #857

    What exactly is the PermissionsCompat file ? I don't understand .. this file is same as Nijis Permissions.jar or what ?

    Anyway .. thanks in advence for any quick-guide .. i just hate permissions system :D [diamond]
  27. Offline


    You need download PermissionsCompat (file named Permissions.jar). This is compatiblity layer for Niji's Permissions with migration built-in.

    In other words just extract into your plugins directory and than do migration stuff described in OP post.
  28. Offline


    I use yetis permissions! i havent changed anything in the permissionsex config file, but just that modifyworld part.
    How can i use permissionsex commands now? i set in permissions/world1/groups.yml ->
        - '*'
    can you please help me with that?
  29. Offline


    ok t3hk0d3 - i put this file to my plugins folder AND also PermissionsEx.jar .. when i try to backend, this message pops up ..

    14:46:11 [INFO] hofec [/] logged in with entity id 113 at ([ perpetum] 444.53125, 91.0, -632.4375)
    14:46:11 [INFO] configarray [Ljava.lang.String;@8b66ac
    14:46:11 [INFO] configarray 0 true
    14:46:11 [INFO] SimpleSave: Current save interval is 30 minute(s)
    14:46:11 [INFO] SimpleSave: Current backup interval is 240 minute(s)
    14:46:17 [INFO] Connection reset
    14:46:17 [INFO] hofec lost connection: disconnect.quitting
    >pex backend p2compat
    14:46:47 [INFO] [PermissionsEx] Initializing p2compat backend
    14:46:47 [INFO] Error during backend initializtation:
    14:46:47 [SEVERE] java.lang.reflect.InvocationTargetException
    14:46:47 [SEVERE]       at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    14:46:47 [SEVERE]       at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    14:46:47 [SEVERE]       at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    14:46:47 [SEVERE]       at java.lang.reflect.Constructor.newInstance(Unknown Source)
    14:46:47 [SEVERE]       at ru.tehkode.permissions.PermissionBackend.getBackend(
    14:46:47 [SEVERE]       at ru.tehkode.permissions.PermissionBackend.getBackend(
    14:46:47 [SEVERE]       at ru.tehkode.permissions.PermissionManager.setBackend(
    14:46:47 [SEVERE]       at ru.tehkode.permissions.bukkit.commands.UtilityCommands.setBackend(
    14:46:47 [SEVERE]       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    14:46:47 [SEVERE]       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    14:46:47 [SEVERE]       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    14:46:47 [SEVERE]       at java.lang.reflect.Method.invoke(Unknown Source)
    14:46:47 [SEVERE]       at ru.tehkode.permissions.commands.CommandsManager$
    14:46:47 [SEVERE]       at ru.tehkode.permissions.commands.CommandsManager.execute(
    14:46:47 [SEVERE]       at ru.tehkode.permissions.bukkit.PermissionsEx.onCommand(
    14:46:47 [SEVERE]       at org.bukkit.command.PluginCommand.execute(
    14:46:47 [SEVERE]       at org.bukkit.command.SimpleCommandMap.dispatch(
    14:46:47 [SEVERE]       at org.bukkit.craftbukkit.CraftServer.dispatchCommand(
    14:46:47 [SEVERE]       at net.minecraft.server.MinecraftServer.b(
    14:46:47 [SEVERE]       at net.minecraft.server.MinecraftServer.h(
    14:46:47 [SEVERE]       at
    14:46:47 [SEVERE]       at
    14:46:47 [SEVERE] Caused by: java.lang.IllegalAccessError: tried to access class ru.tehkode.permissions.compat.P2Backend
    $1 from class ru.tehkode.permissions.compat.P2Backend
    14:46:47 [SEVERE]       at ru.tehkode.permissions.compat.P2Backend.loadPermissions(
    14:46:47 [SEVERE]       at ru.tehkode.permissions.compat.P2Backend.<init>(
    14:46:47 [SEVERE]       ... 22 more
    >pex dump file permissions.yml
    14:47:14 [INFO] [PermissionsEx] Initializing file backend
    14:47:14 [INFO] [PermissionsEx] Data dumped in "permissions.yml"
    >pex backend file
    14:47:21 [INFO] [PermissionsEx] Initializing file backend
    14:47:21 [INFO] Permission backend changed!
    any ideas ?
  30. Offline


    There is might be some bogus plugins (bogus manifest's Class-Path). Try to leave Permissions.jar and PermissionsEx.jar only in plugins directory, just for migration time.
  31. Offline


    i need a f*ing german install tutorial -.-

Share This Page