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


    My issue is that this permissions file works fine:
    but this file, with multiworld permissions, doesn't allow for anyone on the server to do anything. I am even lacking the modifyworld.login and I am in the admin usergroup. Sorry if I'm a n00b, so don't hate. Just looking for some advice.
  3. Essentials? Oh by the gods no no nonono.:p I know there are many people who are using essentials just fine, but in my opinion, it's overkill, unneeded, and causes more problems than it's worth.

    This is the situation with bukkit and PEX as I understand it (I'm sure that someone will correct me if I'm wrong;)):

    Bukkit has several default commands built in, such at the time set command, that are set to be accessible by ops only or everyone.

    These commands have their own permissions nodes that are used if you are using a permissions manager such as PEX (yes, you don't have to use permissions).

    If you don't have a permissions manager, bukkit will look in the ops.txt file (server root directory) to determine who is an op and who isn't. If you don't have anyone in that file (I don't on my setups), you have to either add the node you want the group to be able to use, or give the group/player the '*' node (access to all commands for every plugin and bukkit itself).

    So, for the time command you mentioned, according to, the permission node for it is bukkit.command.time.add or bukkit.command.time.set, and it's limited to ops. So if you don't have anything in the ops.txt file, you would have to add something like bukkit.command.time.* to a user entry or a group.

    Does that help?

    As for your chat prefixes, you are aware that you have to use a chat manager as well, right? If so, which one are you using? The chatmanager that comes with PEX tends to work pretty wel for most people, you would have to enable it in it's config tho.
  4. Offline


    oh a chat manager -____- silly me! that will fix that then hahaha. As for the default bukkit permissions, that helps a lot. I think i know what to do now, i will post my permissions again. Well if Essentials is as overrated as you say then i might reconsider lol. I will just give myself the '*' node.
    thanks heaps again :)
  5. My advice is to ditch the multiworld attempt, or restructure it.

    The way most multiworld permissions are configured are to either give a totally different set of permissions per world, or add additional or remove specific permissions per world. You seem to have the same permission set for each group and each world, so why have them? Use the working permissions file (which would make those permission nodes apply globally on all worlds), and add world-specific sections only if a world has a new permission node.

            prefix: '&c[User]&2'
            suffix: '&f'
                rank: '900'
            - lockette.user.create.*
            - mobarena.classes.*
            - mobarena.use.*
            - mobarena.arenas.*
            - CommandSigns.use.regular
            - creativegates.use
            - commandsigns.use.*
            - multiverse.access.*
                    - modifyworld.*
            inheritance: null
                rank: '800'
            - Users
            permissions: null
                    prefix: '&c[Builder]&2'
                    suffix: '&f'
                    - -bukkit.command.kill
                    - modifyworld.*
                    - mywarp.warp.*
                    - mywarp.warp.soc.*
    This example allows players in the Users and Builders group to have the permissions listed under the permissions: section. The worlds section has a world-specific section for the world named creative that adds the extra permissions for only the listed worlds. (There is a reason modifyworld.* is where it is, but it's not relevant to the question at hand)

    Since your file seems to have the same nodes in all the worlds, there isn't any need to split it out like you have.
  6. Offline


    Thanks... for some reason I was under the impression that you had to have each world clearly defined in the permissions.yml. I appreciate it!
  7. Offline


    I am having a strange issue here with suffixes.

    My groups on a rank ladder, 20 through 5, all different stuff, some donors etc. I have suffixes set up for Donors, and when I set a player (pex user <user> group set) to it, it is fine. However, I have a functionality that ADDS their donor group to them instead of set (so say, they are rank 18 (the base Member) and I ADD them (pex user <user> group add) to a donor rank such as rank 10), but it does not use the higher donor ranks suffix. It instead is still using the lower ranking suffix.

    I fathom that this is due to either they become that rank/group first, then receive an additional group on top of it. Or, it is because the suffix system actually takes the lowest rank suffix instead of the highest (backwards rankings and all).

    Any ideas anyone? For the time being, I am going to remove the suffix from the lower ranks (18 and above). This appears to fix it up.
  8. Offline


    Ranks go lowest to highest. So 900 is a lower rank than 800. Reverse your numbers and you should be fine :)
  9. Offline


    is it compatible with 1.0.0 ?
  10. Offline


    if you use the dev build it is.
  11. Offline


    where can i find the dev build?
  12. First post has the links.
  13. Offline


    Does anyone know how a users group order is determined, my prefix's do not inherit based on rank, but by the first listed group in a users group list.
  14. Offline


    Hey there, great plugin, but somehow new players don't get put in the users part in the permissions.yml when they join. Any idea what's causing this?
  15. Offline


    How can i make users unable to build at all ? :/
  16. Offline


    Use Modifyworld to do this. PermissionsEX doesn't have a build: true/false permission.
  17. Offline


    Well, i guessed. But i don't know ow, tried different combinations of Modifyworld. :(
  18. Offline


    it keeps saying internal error occured! WHY!!!
  19. Offline


    Why it's say me "2011-11-27 06:08:39 [SEVERE] [SRPEX] PermissionsEx not detected, disabling SetRankPEX
    2011-11-27 06:08:39 [INFO] [SRPEX] SetRankPEX is now disabled."
  20. Offline


    @ Justin The Cynical

    hi just wondering if i can run both permission yeti with pex with both configs? cause i have one plugin that needs the permission yeti and i have tons of other plugins that needs pex..Before i was just using PeX then i needed Permission yeti for a plugin... after that this one particular plugin LogBlock the Yeti Permission is being used instead of pex.. so just asking if i can run both smoothly or is it advised?
  21. Offline



    In your signature it says it doesn't capture current players online, it is because you need the 'MineQuery' plugin.
  22. Offline


    LogBlock supports SuperPerms, which is what PermissionEX is.
    Curthiany likes this.
  23. Offline


    Hello everyone, I need some help, I recently purchased a server and heres my situation: I got PEX and set up the nametags and colors and the inheritance... Now I need to set their commands... When I try to do so my nametag disappeares as if im default and the commands wont work like I want

    Here is how I set up my file:
    default: true
    - modifyworld.*
    rank: '1000'
    prefix: '&0(&4President&0)&7'
    - '*'
    rank: '0'
    - default
    prefix: '&0(&8Member&0)&7'
    - essentials.balance
    - essentials.balancetop
    - essentials.sell
    - essentials.worth
    rank: '900'

    The commands I am trying to set are under the member rank

    Thank you for your time
  24. Offline


    you didnt get i was saying did you? is it advised to run both configs with yeti and pex? since logblock prioritize yeti permissions than pex
  25. Offline


    Don't run two permissions systems. Run only one, PermissionsEX.
    Yeti is outdated.
  26. Offline


    i have been getting an error when i try this cmd: pex group Admins add "*"
    in my console it says:
    01:50 AM [SEVERE] Exception in thread "AWT-EventQueue-0"
    01:50 AM [SEVERE] org.bukkit.command.CommandException: Unhandled exception executing command 'pex' in plugin PermissionsEx v1.16
    01:50 AM [SEVERE] at org.bukkit.command.PluginCommand.execute(
    01:50 AM [SEVERE] at org.bukkit.command.SimpleCommandMap.dispatch(
    01:50 AM [SEVERE] at org.bukkit.craftbukkit.CraftServer.dispatchCommand(
    01:50 AM [SEVERE] at me.escapeNT.pail.GUIComponents.ServerConsolePanel$ConsoleCommandListener.actionPerformed(
    01:50 AM [SEVERE] at javax.swing.JTextField.fireActionPerformed(Unknown Source)
    01:50 AM [SEVERE] at javax.swing.JTextField.postActionEvent(Unknown Source)
    01:50 AM [SEVERE] at javax.swing.JTextField$NotifyAction.actionPerformed(Unknown Source)
    01:50 AM [SEVERE] at javax.swing.SwingUtilities.notifyAction(Unknown Source)
    01:50 AM [SEVERE] at javax.swing.JComponent.processKeyBinding(Unknown Source)
    01:50 AM [SEVERE] at javax.swing.JComponent.processKeyBindings(Unknown Source)
    01:50 AM [SEVERE] at javax.swing.JComponent.processKeyEvent(Unknown Source)
    01:50 AM [SEVERE] at java.awt.Component.processEvent(Unknown Source)
    01:50 AM [SEVERE] at java.awt.Container.processEvent(Unknown Source)
    01:50 AM [SEVERE] at java.awt.Component.dispatchEventImpl(Unknown Source)
    01:50 AM [SEVERE] at java.awt.Container.dispatchEventImpl(Unknown Source)
    01:50 AM [SEVERE] at java.awt.Component.dispatchEvent(Unknown Source)
    01:50 AM [SEVERE] at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
    01:50 AM [SEVERE] at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
    01:50 AM [SEVERE] at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
    01:50 AM [SEVERE] at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
    01:50 AM [SEVERE] at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
    01:50 AM [SEVERE] at java.awt.Component.dispatchEventImpl(Unknown Source)
    01:50 AM [SEVERE] at java.awt.Container.dispatchEventImpl(Unknown Source)
    01:50 AM [SEVERE] at java.awt.Window.dispatchEventImpl(Unknown Source)
    01:50 AM [SEVERE] at java.awt.Component.dispatchEvent(Unknown Source)
    01:50 AM [SEVERE] at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    01:50 AM [SEVERE] at java.awt.EventQueue.access$000(Unknown Source)
    01:50 AM [SEVERE] at java.awt.EventQueue$ Source)
    01:50 AM [SEVERE] at Method)
    01:50 AM [SEVERE] at$1.doIntersectionPrivilege(Unknown Source)
    01:50 AM [SEVERE] at java.awt.EventQueue$ Source)
    01:50 AM [SEVERE] at Method)
    01:50 AM [SEVERE] at$1.doIntersectionPrivilege(Unknown Source)
    01:50 AM [SEVERE] at java.awt.EventQueue.dispatchEvent(Unknown Source)
    01:50 AM [SEVERE] at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    01:50 AM [SEVERE] at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    01:50 AM [SEVERE] at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    01:50 AM [SEVERE] at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    01:50 AM [SEVERE] at Source)
    01:50 AM [SEVERE] Caused by: java.lang.RuntimeException: java.lang.RuntimeException: Default user group is not defined. Please select one using the "default: true" property
    01:50 AM [SEVERE] at ru.tehkode.permissions.commands.CommandsManager.execute(
    01:50 AM [SEVERE] at ru.tehkode.permissions.bukkit.PermissionsEx.onCommand(
    01:50 AM [SEVERE] at org.bukkit.command.PluginCommand.execute(
    01:50 AM [SEVERE] ... 42 more
    01:50 AM [SEVERE] Caused by: java.lang.RuntimeException: Default user group is not defined. Please select one using the "default: true" property
    01:50 AM [SEVERE] at ru.tehkode.permissions.backends.FileBackend.getDefaultGroup(
    01:50 AM [SEVERE] at ru.tehkode.permissions.PermissionManager.getDefaultGroup(
    01:50 AM [SEVERE] at ru.tehkode.permissions.PermissionManager.getDefaultGroup(
    01:50 AM [SEVERE] at ru.tehkode.permissions.PermissionUser.getGroups(
    01:50 AM [SEVERE] at ru.tehkode.permissions.PermissionUser.inGroup(
    01:50 AM [SEVERE] at ru.tehkode.permissions.PermissionUser.inGroup(
    01:50 AM [SEVERE] at ru.tehkode.permissions.PermissionUser.inGroup(
    01:50 AM [SEVERE] at ru.tehkode.permissions.PermissionBackend.getUsers(
    01:50 AM [SEVERE] at ru.tehkode.permissions.PermissionBackend.getUsers(
    01:50 AM [SEVERE] at ru.tehkode.permissions.PermissionManager.getUsers(
    01:50 AM [SEVERE] at ru.tehkode.permissions.PermissionGroup.getUsers(
    01:50 AM [SEVERE] at ru.tehkode.permissions.PermissionGroup.clearMembersCache(
    01:50 AM [SEVERE] at ru.tehkode.permissions.ProxyPermissionGroup.setPermissions(
    01:50 AM [SEVERE] at ru.tehkode.permissions.PermissionGroup.addPermission(
    01:50 AM [SEVERE] at ru.tehkode.permissions.bukkit.commands.GroupCommands.groupAddPermission(
    01:50 AM [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    01:50 AM [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    01:50 AM [SEVERE] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    01:50 AM [SEVERE] at java.lang.reflect.Method.invoke(Unknown Source)
    01:50 AM [SEVERE] at ru.tehkode.permissions.commands.CommandsManager$
    01:50 AM [SEVERE] at ru.tehkode.permissions.commands.CommandsManager.execute(
    01:50 AM [SEVERE] ... 44 more

    plugins i am using:

  27. Offline


    bPermissions conversion please? :D
  28. Well, what have you tried so far and what does your permissions file look like?

    Saying you tried different combinations without specifically stating what combos you tried doesn't help. For all anyone knows, you could be transposing a character or using something off the wall like

    Oh yes, have you read yet?

    About 90% of the time, this error appears because you have a mistake in your permissions file or are using the wrong version of PEX with the wrong version of bukkit.

    createUserRecords is probably not set correctly

    It looks like PEX is getting kicked out by something else. Look at your server log and see what it says about PEX.

    Please put your permissions file in code tags or link to a pastebin of it. The forum removes all the spacing making it hard to tell if there is a problem with your permissions file

    1. "01:50 AM [SEVERE] Caused by: java.lang.RuntimeException: Default user group is not defined. Please select one using the "default: true" property" <- this needs to be fixed, it's probably the cause of the problem
    2. What is this permissions plugin you list? If it's another permissions plugin (not the one that came with PEX), you need to get rid of it. You can't run multiple permissions managers at the same time.

    As @saul100 stated, no, you can't run multiple permissions managers at the same time.

    If you have plugins that only use the old Yeti-style permissions, you will need to have the permissions compatibility plugin installed as well (it's named permissions.jar in the PEX archive. I usually rename it to help keep confusion down).

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: Sep 9, 2018
  29. Offline


    Hello everybody.

    So far, this plugin works perfect, and I love it. I do have one little problem, that I would like to have fixed.

    It's basically the whole, prefix system. I want people to have a green [Member] tag when they join. I know how the colour codes work, and I thought I knew how to make the prefixes to. Apparently, I don't.

    Anyways. Here is my problem:


    I just want [Prefix]Name: Message, now, it's really different. Anyone knows what i'm doing wrong?

    This is how I made it in my permissions file.


    I have Chatmanager, and I did enable it, but, that's all I did. I don't know if I have to set anything else up to with Chatmanager.


    My Chatmanager config file.

    And some extra info, i'm using Bukkit 1518, I don't know if that's a problem, but the permissions system seems to be working fine.
  30. Offline


    Pex working good, no problem.

    When you download PEX zip they are a "permissions.jar" into it, so i think it comes from here

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: Oct 10, 2018
  31. Offline


    Back to my problem, even when I delete Chatmanager and remove the prefix in the permissions file, I still get the group name in front of our names. Like this:

    default Nerrion: Test
    admin Nerrion: Test

Share This Page