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

    t3hk0d3

    [​IMG]
    Version: 1.19.5

    PLEASE USE BUKKIT-DEV FORUM FOR DISCUSSION/HELP
    http://dev.bukkit.org/server-mods/permissionsex/
    THANKS IN ADVANCE.

    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.

    [​IMG]

    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.


    Documentation
    Wiki

    Basic setup tutorial (Thanks to lycano)

    Nice tutorial made by Bennetman


    Download
    Stable version

    Development version (mostly stable) - always lastest dev build.

    Sources
    https://github.com/PEXPlugins

    Builds
    http://webbukkit.org:8080/

    Maven Repository
    http://repo.tehkode.ru/browse/ru.tehkode

    IRC
    Join us on #permissionsex, irc.esper.net. Feel free to ask any related questions.

    Tools !NEW!
    Pex Auto-Setup Tool - MySQL and FlatFile !


    Changelog
    Show Changelog (open)
    v1.19.5
    Proper intervals for timed commands (both group/permissions management), without pesky seconds calculations (like /pex user t3hk0d3 timed add cool.permission 10days)
    Bugfixes.
    1.4.6 compatibility.


    v1.19.4
    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
    v.1.19.3
    Modifyworld improvements (configurable messages, now independent from PEX)
    /pex help command
    Minor improvements and bugfixes
    v.1.19.2
    New modifyworld permissions
    Some bugfixes
    v.1.19.1
    Bugfix release
    v1.19
    Bukkit R6 compatible.
    Several bugfixes!
    Permissions now case-insensetive.
    v1.18
    Users logging and cleanup feature.
    Non-inheriting nodes feature.
    Several Bugfixes.
    PermissionsCompat is finally remove from default bundle.
    v1.17
    User/group specific management permissions (permissions.manage.group.Admin)
    Fixed some superperms compatibility issues
    Fixed several bugs
    v1.16
    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)
    v1.15
    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
    v1.14
    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.
    v1.13
    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.
    v1.12
    API get slightly improved
    Ranking ladders.
    User/group name case-insensetivity.
    World-inheritance.
    Timed permissions.
    Modifyworld rules are get improved.
    Tons of minor improvements and bugfixes.
    v1.11
    Many bugfixes and improvements.
    MySQL connection stability improved - reconnection mechanism.
    v1.10
    Promotional/Demotional system.
    Perfomance improvement, with new low-level caching system (thx Joy)
    Modifyworld improved.
    Many lesser improvements and bugfixes.
    v1.06
    New p2compat backend, for easy migration from Permissions 2.x to PEX.
    v1.05
    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.
    v1.04
    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.
    v1.03
    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!
    v1.02
    Compatibility layer loading order issue fixed. Now most of plugins should work.
    Tested with new CB 803 build.
    v1.01
    Regular expression permissions support.
    Newer permissions now added above (bugfix).
    Several bugfixes.
    v1.00
    Initial public release.
     
    BRampersad, grid21, MrRazull and 71 others like this.
  2. Im having a few other issues, I have set up the following:
    group 1 - default rank: 1000 ladder: core
    group 1 permissions: something.something
    group 2 - parent: group 1 rank 900 ladder: core
    group 2 permissions: something.something2, -something.something
    group 3 - parent: group 2 rank 800 ladder: core
    group 3 permissions: something.something3, -something.something2
    where something.something3 overides something.something2 and overrides something.something (prefix's in mchat)
    group 1: something.something is displayed correctly
    group 2: something.something2 is displayed correctly
    group 3: something.something2 is displayed (incorrect)
    this continues up my whole ladder....
     
  3. hey...i got a problem...i dont know if its a bug or something...it worked before i downloaded the latest dev, but when i downloaded the latest dev...the problem came up...heres the problem:
    when i typed in a method this : String pReq = PM.getGroup(group).getOwnOption("profession-requirement", player.getWorld().getName());
    and then split them with a regex |...it splits into every character...not by the regex
     
  4. Negative ... : -permission.bla.bla
    Prefixes : /pex group <group> prefix "prefix between quotes"
     
  5. Offline

    Mooseeeeey

    I haven't been able to find this anywhere yet:
    In normal permissions I believe there is a way to 'subtract' a certain permission from a group. Like if you didnt want your mods to have lightning you could do like
    Code:
                - all.mod.like.things.*
                - - essentials.lightning
    
    Is there a way to do that with this?
     
  6. This doesnt work for my inherited permissions, it does for normal, just doesnt seem to overrule the inheritted ones
    Pastebin for checking: http://pastebin.com/28Uuvth0
     
  7. Offline

    t3hk0d3

    what do you mean "it doesn't work"? it should work.

    Oh thank you good sir. But this converter works incorrectly.

    Example:
    Code:
    groups:
        default:
            default: true
            permissions:
            - modifyworld.*
    users:
        t3hk0d3:
            group:
            - default
    
    converted into:
    Code:
    groups:
      default:
        default: true
        permissions: null
        0: 'modifyworld.*'
        build: null
        prefix: null
        suffix: null
        options:
          rank: 1000
    users:
      t3hk0d3:
        group: null
        0: default
        options:
          rank: 0
    Which completely incorrect.

    use "/pex toggle debug" to figure out whats wrong.

    Already done in dev 1.14

    Along iChat, HeroChat, mChat which confirmed to work with PEX, there is ChatManager, which bundled with PEX.
    https://github.com/t3hk0d3/PermissionsEx/wiki/Chat-Manager

    pReq.split("\\|");

    You need to escape |, coz split() works using regexp


    Code:
                - -essentials.lightning
                - all.mod.like.things.*
    

    Oh dude, there is no need to list every block type which you want to place.
    Use negation!

    Code:
    -modifyworld.blocks.(place|destroy).(46|tnt)
    modifyworld.blocks.*
    This will allow to place/destroy any blocks except TNT

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

    angelina

    Ah hemmm, dudette! ;)

    I had just figured this out from your most recent post. I was ordering my commands wrong though. Thank you for showing me this. I'm so grateful!
     
  9. Offline

    Devin14

    Is it possible to run Permissions 2.7.4 and PermissionsEX at the same time?
     
  10. Offline

    t3hk0d3

    Insane.
     
  11. Offline

    Devin14

    I'm going to take that as a no?
     
  12. Offline

    cjbh1996

    I'm having trouble migrating from Permissions 3.x. I'm following this tutorial and I've done everything exactly as it says and when I type "pex dump file permissions.yml" I get this error:
    Code:
    2011-09-05 16:11:36 [INFO] Error: No default group defined. Use "pex set default group <group> [world]" to define default group.
    2011-09-05 16:11:36 [SEVERE] Error: No default group defined. Use "pex set default group <group> [world]" to define default group.
    2011-09-05 16:11:36 [SEVERE] java.lang.IllegalStateException: No default group defined. Use "pex set default group <group> [world]" to define default group.
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.PermissionManager.getDefaultGroup(PermissionManager.java:286)
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.PermissionManager.getDefaultGroup(PermissionManager.java:272)
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.PermissionUser.getGroups(PermissionUser.java:160)
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.PermissionUser.getGroupsNames(PermissionUser.java:250)
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.PermissionUser.getGroupsNames(PermissionUser.java:240)
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.backends.FileBackend.dumpData(FileBackend.java:255)
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.bukkit.commands.UtilityCommands.dumpData(UtilityCommands.java:141)
    2011-09-05 16:11:36 [SEVERE]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    2011-09-05 16:11:36 [SEVERE]     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    2011-09-05 16:11:36 [SEVERE]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    2011-09-05 16:11:36 [SEVERE]     at java.lang.reflect.Method.invoke(Unknown Source)
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.commands.CommandsManager$CommandBinding.call(CommandsManager.java:298)
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.commands.CommandsManager.execute(CommandsManager.java:120)
    2011-09-05 16:11:36 [SEVERE]     at ru.tehkode.permissions.bukkit.PermissionsEx.onCommand(PermissionsEx.java:123)
    2011-09-05 16:11:36 [SEVERE]     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
    2011-09-05 16:11:36 [SEVERE]     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:129)
    2011-09-05 16:11:36 [SEVERE]     at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:312)
    2011-09-05 16:11:36 [SEVERE]     at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:480)
    2011-09-05 16:11:36 [SEVERE]     at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:465)
    2011-09-05 16:11:36 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
    2011-09-05 16:11:36 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    What am I doing wrong here?
     
  13. Offline

    gobler21

    Am i on my own here?
     
  14. So i'm doing right ? I will look further then, I though I was doing wrong. Because after a lot of testing, nothing changed.
    (This permission is used to limit the number of warps a group can create, but even with the permissions it doesn't change anything, it's not the plugin's fault because it's working well with permission (file backend)).
     
  15. Offline

    drt

    thanks

    love the "insane" btw
     
  16. I want to do this (Permission syntax) but with PEX and SQL backend :

    Code:
    groups:
      VIPStar:
        default: false
        [...]
        info:
           warp:
             limit:
               private: 1
               public: 0
               global: 0
               total: 1
    
    I did this (Permissions table)
    id - name - type - permissions - world - value
    [​IMG]

    When i use permission, it's working, but when i do it with PEX it's not working (the warp limit is not changing). What am I doing wrong ?
     
  17. @t3hk0d3 any thoughts on this one? I'm using the latest dev build...

     
  18. Offline

    SBD09

    I get this when i load the server and none of the plugins reconise the permissions plugin


    Code:
    PermissionsEx: sql backend registered!
    PermissionsEx: file backend registered!
    PermissionsEx: PermissionEx plugin initialized.
    PermissionsEx: Initializing file backend
     
  19. Offline

    Silarn

    Read my two posts, please. I'm almost positive it is the same issue. A) You have to assign custom info/option nodes to a specific world for them to work at all. B) These custom info/option nodes do not inherit and must be reassigned for every world. (This applies to the MySQL storage format. Unknown if YAML has the same problem.)

    ---

    And also, groups not having world-based assignments makes it impossible to identify which world a player is in by their group. It also will override a world default group if someone is assigned a group that is specific to a different world. The only way to get past this is to make all groups someone may be assigned to inherit (at the trunk of the tree) the defaults for other worlds.

    ---

    @Arno00 Assign those options to a specific world and they will work. If you have multiple worlds that must use those options, you will have to redefine them for each world regardless of world inheritance. It is a bug, unless I am missing something.
     
  20. Error on user not listed in permissions.yml on every permissions check.

    PermsEX 1.14 (dev-from now)

    Code:
    2011-09-06 00:39:31 [INFO] kolorafa2 [/xxxxx:65001] logged in with entity id 10297 at ([dlk] -84.65625, 82.0, 116.46875)
    2011-09-06 00:39:31 [SEVERE] Could not pass event PLAYER_TELEPORT to PermissionsEx
    java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
            at ru.tehkode.permissions.backends.file.FileEntity.getNode(FileEntity.java:55)
            at ru.tehkode.permissions.backends.file.FileEntity.<init>(FileEntity.java:41)
            at ru.tehkode.permissions.backends.file.FileUser.<init>(FileUser.java:40)
            at ru.tehkode.permissions.backends.FileBackend.getUser(FileBackend.java:136)
            at ru.tehkode.permissions.PermissionManager.getUser(PermissionManager.java:114)
            at ru.tehkode.permissions.PermissionManager.clearUserCache(PermissionManager.java:187)
            at ru.tehkode.permissions.PermissionManager.clearUserCache(PermissionManager.java:200)
            at ru.tehkode.permissions.bukkit.PermissionsEx$PlayerEventsListener.clearUserCache(PermissionsEx.java:195)
            at ru.tehkode.permissions.bukkit.PermissionsEx$PlayerEventsListener.onPlayerTeleport(PermissionsEx.java:210)
            at org.bukkit.plugin.java.JavaPluginLoader$9.execute(JavaPluginLoader.java:300)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:338)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:373)
            at org.getspout.spout.player.SpoutCraftPlayer.updateNetServerHandler(SpoutCraftPlayer.java:851)
            at org.getspout.spout.SpoutPlayerListener.onPlayerJoin(SpoutPlayerListener.java:47)
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:244)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:338)
            at net.minecraft.server.ServerConfigurationManager.c(ServerConfigurationManager.java:124)
            at net.minecraft.server.NetLoginHandler.b(NetLoginHandler.java:97)
            at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:74)
            at net.minecraft.server.Packet1Login.a(SourceFile:43)
            at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
            at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:40)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:91)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:453)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:363)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-09-06 00:39:31 [SEVERE] Could not pass event PLAYER_TELEPORT to Multiverse-Core
    java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
    
    perm.yml
    Code:
     groups:
        def:
            default: true
            permissions:
            - ....
       vips:
            inheritance:
            - def
            permissions:
            - ....
    users:
        kolorafa:
            worlds:
                dlk:
                    group:
                    - vips
    worlds:
        dlk_nether:
            inheritance:
            - dlk
    
    
     
  21. I might be wrong but your user name appears to be kolorafa2 in the log but only kolorafa in the yml
     
  22. That's the problem, new users should be able to be 'auto added' or 'virtual defaulted'.
    My user kolorafa working great, but kolorafa2 (example ow new user on serwer) not.
    So now any user that isn't on list gets a shitstorm of errors and don't get any perms.

    Found my error, i had one of my players named '226' without ' in permissions.yml
    causing yml parasing as int, and create error. (file created manually that's how i get this ' problem)

    Code:
    fixing:
    users:
        123:
            ....
    replacing with:
    users:
        '123':
            ....
     
  23. Offline

    andrewkm

    @t3hk0d3
    This permissions system is literarly the best permissions system ive ever come across! Thank you so much! :D t3hkod3 has been extremely helpful through my transition! The way this works now opens up so many possibilities on my server that I previously did not have with perms 2.x/3.x! (I spent around 4-6 hours customizing it and its just perfect now, I even got multiworld prefixes to work, ect, ect... its just... well... boss, with a bit of thinking)
    -
    t3hkod3: Please post a donation button on your thread, I have no idea where to send off some $, and dont want this plugin to die :)
     
  24. Offline

    SBD09

    Anyone?
     
  25. Offline

    t3hk0d3

    Fixed in lastest dev version. Pls check.

    Make sure you installed PermissionsCompat (Permissions.jar)

    Try dev version.

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

    Flatliner

    I'm unsure if this is a modifyworld thing, or a quirk with the way permissionsex evaluates permissions. I'm trying to get a setup whereby my default group has full modifyworld permissions, but in one world, they can't place any lava, use flint and steel etc.

    I thought I could get away with this:

    Code:
    default:
        default:true
        permissions:
            - modifyworld.*
        worlds:
            world:
                - -modifyworld.blocks.place.(10|11)
    But it seems the negated nodes don't take effect in the specific world. Shouldn't world specific permissions override any global permission?
     
  27. Offline

    DylanP

    Hi all,

    Just wondering if someone could help me out with this plugin as I'm really new to it having just converted from Permissions 2.7.4 to it :)

    I'm trying to find a working chat plugin that's able to make my chat display like this, when I am an admin and the prefix for the admin group is &4 and the suffix is &c.

    [​IMG]


    Does anyone know of a chat plugin like that?

    So far I've tried iChat (experimental build btw.) and mChat. I've been unsuccessful with both, unfortunately.


    Never-mind! I fooled around with it some more and got it all working/figured out!
     
  28. Thanks a lot ! It's working now, I love you :)
    I tried everything for hours >.<

    ChatManager is bundled with PEX, and is working great, iChat is also working great (but not tested with PEX)
    You'll have to set the syntax in the config file, then set the prefix and suffix. You can do anything if you use your brain :)

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

    DylanP

    ChatManager? I saw that when downloading it but I was unsure of it's purpose - I thought it reported information to other chat plugins.

    I got mChat all figured out now :) I just had to think :p

    Going to fool with ChatManager/look into it now.

    Hey everyone,

    Correct me if I'm wrong but, based on the wiki, it appears that Chat Manager has no %group/&group variable to use in the message format?

    What a bummer :(

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Sep 9, 2018
  30. When you set a prefix / suffix, juste write the name of the group :)

    Those configs :

    admin prefix : &cAdmin
    message-format: '&f[%prefix&f]&7 %player : &f%message'

    Will do :
    [Admin] DylanP : message here

    Now you can add a suffix, with a color code to change your name (ie only for admins)

    Just think :)

    Another question, I wrote a little script to give someone VIP acces via a little PHP script that changes the user group.
    Is there a way to auto reload the plugin, so the changes take effect immediately, so no one needs to /pex reload manually ?

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

    Winner1

    Is there an easy way to convert from Permissions 3.x to PermissionsEx ? I know you've got a guide on how to change from 2.x version but I've got 3.x - could I use the same method with my version as well?

    This is my server's plugin list:
    Administrate
    BigBrother
    dynmap
    Essentials
    FoundDiamonds
    HeroicDeath
    iChat
    Lockette
    LogOres
    MineBackup
    NoCheat
    VanishNoPickUp
    WorldEdit
    WorldGuard
    xAuth

    and of course Permissions 3.x

    Would any of these plugins interfere with the PermissionsEx plugin?

    Might be hideous questions, sorry. I'd appreciate it a lot if anyone could clear this out for me.
     

Share This Page