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. I'm pretty new to hosting this server of mine and I'm trying to get this all down. Is there any way I can someone to link me to a "completed" permissions.yml" file so I can use it as a reference? I am having a hard time understanding how to build the code for groups and whatnot. I have the basic theory down, but I don't know what the individual 'nodes' are to set up specific permissions for moderators etc. Thanks in advance!
     
  3. Offline

    Starhero

    Sorry if it is posted but is there a way to convert permissions over to this? So I don't have to rewrite 40+ members?
     
  4. Offline

    t3hk0d3

    Version 1.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!

    There is 3rd party Perl script, which converts TheYeti's yaml files into SQL queries.
    I think better ask Abadon (he is a author of script) for help.

    Anyway, im currently planning to write a C utility (for Linux and Windows) to do such things.

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

    Killie01

    can't wait for xml support
     
  6. Offline

    Starhero

    Can not find said thing sir. searched bukkit and google.

    Also for some reason while manually adding in at least admins, on of my groups usually has * for permissions and no inheriting, but for some reason this is giving me a parse error? Checked spaces...everything is correct.
     
  7. Offline

    HEmile

    This... wow this is just epic! Sounds a lot better than the usual permissions :)

    EDIT: Denial permissions?!? I love you :D
    ANOTHER EDIT: Oh that probably was already in the default permissions, didn't know that :p
    Either way, do prefix and suffix work in this?
     
  8. Offline

    t3hk0d3

    To be honest denial permissions are Permissions feature :)

    yes.
    Code:
    /pex user <user> prefix [newprefix]
    /pex user <user> suffix [newsuffix]
    /pex group <group> prefix [newprefix]
    /pex group <group> suffix [newsuffix]
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 15, 2016
  9. Offline

    HEmile

    Ahhh ok great. I can't seem to be able to enable the permissions.modifyworld setting. It doesn't show up in my config.yml
     
  10. Offline

    t3hk0d3

    Sorry, you need to add it manualy. You gave me idea, i'll add command to edit config.yml from chat/console.
     
  11. Offline

    HEmile

    Would be useful :p
    What exactly would I need to add, then?
    I tried it, but it didnt work.
     
  12. Offline

    flames

    Code:
    permissions:
        backends:
            sql:
                driver: mysql
                uri: mysql://localhost/dbname
                user: dbuser
                password: dbpass
        backend: sql
        basedir: plugins/PermissionsEx
        modifyworld: true
        informplayers:
            modifyworld: false
            changes: true
    
    see "modifyworld: true"
     
  13. Offline

    DragonSupremacy

    Yeah, that would work if I used file backend, but I've chosen to do stuff differently then before (moving from GroupManager).

    I'm trying out a MySQL solution instead. I don't suppose it's possible I create the file in its entirety while using file backend, then switch to MySQL and have it convert everything over?
     
  14. Offline

    t3hk0d3

    Not yet. I will think about dumping inmemory data to sql dump. Thank you for idea :)
     
  15. Offline

    DragonSupremacy

    Sounds good.

    I am having trouble getting the SQL portion to work however. I assume I need to add a SQL table that holds the values for which user is in which group?
     
  16. Offline

    t3hk0d3

    Show errors pls.

    To enable SQL backend you just need set "permissions.backend = sql", also provide host, user, password and database name.
    PEX will automaticaly create tables and initial data (default group).
     
  17. Offline

    DragonSupremacy

    Yeah, I've done that, the default table is setup. After that, I am placed in the default usergroup, but there's no way in-game for me to change anything as I just have "modifyworld.*"

    Edit: just gave the default usergroup '*' permission in MySQL WorkBench, can change everything from there
     
  18. Offline

    flames

    DragonSupremacy, you would be better set to make initial changes (create admin group, give it '*' and put your self into admin group) from console. or at least dont forget to remove '*' from default after you are done
     
  19. Offline

    KingPin

    Hiya, this looks very interesting, any way to import the text file into mysql backend? thank you.
     
  20. Offline

    shatteredbeam

    I'd love to use this but I'm not convinced of its stablity yet. using Permissions with an SQL backend is just...amazing. I can't wait to use this on our high-traffic server.

    I have an issue, though. I'll stop you here if you know there are issues entering commands to pex within the console as thats where I have been testing. This is on build 803 running only Regios and PermissionsEx. Compatibility layer installed too. (was playing around with it)

    This happens on group delete, doesn't matter which group.
    Code:
    >pex group donator delete
    21:19:21 [INFO] Group donator removed!
    21:19:21 [SEVERE] There is bogus command handler for pex command. (Is appropriate plugin is update?)
    21:19:21 [SEVERE] java.lang.RuntimeException: java.lang.NullPointerException
    21:19:21 [SEVERE]       at ru.tehkode.permissions.commands.CommandsManager$CommandBinding.call(CommandsManager.java:231)
    21:19:21 [SEVERE]       at ru.tehkode.permissions.commands.CommandsManager.execute(CommandsManager.java:126)
    21:19:21 [SEVERE]       at ru.tehkode.permissions.bukkit.PermissionsEx.onCommand(PermissionsEx.java:91)
    21:19:21 [SEVERE]       at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
    21:19:21 [SEVERE]       at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:127)
    21:19:21 [SEVERE]       at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:271)
    21:19:21 [SEVERE]       at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:401)
    21:19:21 [SEVERE]       at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:386)
    21:19:21 [SEVERE]       at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:292)
    21:19:21 [SEVERE]       at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)
    21:19:21 [SEVERE] Caused by: java.lang.NullPointerException
    21:19:21 [SEVERE]       at ru.tehkode.permissions.sql.SQLEntity.remove(SQLEntity.java:259)
    21:19:21 [SEVERE]       at ru.tehkode.permissions.sql.SQLPermissionGroup.removeGroup(SQLPermissionGroup.java:141)
    21:19:21 [SEVERE]       at ru.tehkode.permissions.PermissionGroup.remove(PermissionGroup.java:162)
    21:19:21 [SEVERE]       at ru.tehkode.permissions.bukkit.commands.PermissionsCommand.groupDelete(PermissionsCommand.java:547)
    21:19:21 [SEVERE]       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    21:19:21 [SEVERE]       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    21:19:21 [SEVERE]       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    21:19:21 [SEVERE]       at java.lang.reflect.Method.invoke(Unknown Source)
    21:19:21 [SEVERE]       at ru.tehkode.permissions.commands.CommandsManager$CommandBinding.call(CommandsManager.java:225)
    21:19:21 [SEVERE]       ... 9 more
    
    Update: This happens on any user or group remove, not just groups.
     
  21. Offline

    t3hk0d3

    Look like you are trying to remove virtual user or group. Anyway this is a bug.
    Try http://webbukkit.org/jenkins/public/PermissionsEx/PermissionsEx-HEAD-bin.zip.
     
  22. Offline

    alcol

    Hello !

    Hello

    He works with General ?
    I have this error code :

    Code:
    18:47:29 [INFO] [PermissionsEx] PermissionEx plugin was Initialized.
    
    18:47:29 [GRAVE] Could not load 'plugins\General.jar' in folder 'plugins': Permi
    ssions
    org.bukkit.plugin.UnknownDependencyException: Permissions
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
    ava:125)
            at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.
    java:160)
            at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager
    .java:108)
            at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:85)
            at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:217)
            at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:204)
            at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:144)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:259)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)
     
  23. Offline

    NeoBlu

    Hi there!
    I actually don´t get it how to set up Admin rights like '*' or world.'*' .
    Means i know ho to open it and I knew how to do this with TheYeti´s Permissions, but with PEX it still wont work.
    Any idea?

    btw: do prefixes and suffixes work atm?

    /edit i think i got it:
    I used "Info:"
     
  24. Offline

    shatteredbeam

    @tehkode: Thanks for updating that. I appreciate your quick response in only the way a server owner can :)

    @NeoBlu: The best way is to use PEX from the in-game console and add the permission using the command 'pex group <group> add <permission> [world]' for the total admin rights. Here's what I did right off the bat:

    pex group admin create (create admin group)
    pex group admin add * (add * wildcard to admin group)

    Then, add yourself to the admin group for the wildcard permission to take effect:
    pex group admin user add shatteredbeam (adds me to admin group)

    Once you've done this, you can start using /pex commands ingame. There are much finer granular controls you can use instead of the * wildcard, look at the original post if you're only looking to add pex nodes for in-game control.

    As for prefixes and suffixes, they do indeed work, but PEX is not a chat mod, it only sets the fields. You'll need something like iChat to actually display the prefix/suffix information.

    Hope that helps.
     
  25. Offline

    fregaPT I steal plugins as my own

    W
    Will you make an API ?
    Or the Permissions API works here ?
    And all of the plugins that support Permissions work with this plugin ?

    EDIT:
    Sorry !
    I didn't read the whole thread :D
    Keep up good work !
     
  26. Offline

    t3hk0d3

    You are sure what PermissionsCompat - "Permissions.jar" (http://webbukkit.org/jenkins/public/PermissionsCompat/PermissionsCompat-master-bin.zip) is inside "plugins/" ?
     
  27. Offline

    KingPin

    for anyone copy pasting their world.yml file from permissions: Pex is case sensitive! so KingPin is not the same as kingpin. it took me a while to figure out why users werent being given their usual privs, but you need to make sure username caps are correct, then just /pex reload and voila!
     
  28. Offline

    alcol

    Thank you it works
     
  29. Offline

    NeoBlu

    Works fine, thanks shatteredbeam!
    Using EssentialsChat atm

    Got an idea for making this Plugin larger :

    Multi-World-Permissions!
    (for example writing no world add selected permissions to all worlds)

    please think about it :)
     
  30. Offline

    flames

    @NeoBlu, did you even read the description, this plugin PERFECTLY supports multiworld permissions w/o making it larger!
     
  31. Offline

    t3hk0d3

    PEX have MultiWorld permissions by design.
    Here is example:

    /pex user NeoBlue add sample.permission
    sample.permission would work in any world.

    /pex user NeoBlue add sample.permission2 Nether
    sample.permission2 would work in only world called "Nether"

    I wonder why this is so diffucult to understand this from documentation :( Sorry!
     
    NeoBlu likes this.

Share This Page