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

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    [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
    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.

    This post has been edited 103 times. It was last edited by t3hk0d3 Dec 24, 2012.
    BRampersad, grid21, MrRazull and 71 others like this.
  2.  
  3. Offline

    KingPin

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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!
  4. Offline

    alcol

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Thank you it works
  5. Offline

    NeoBlu

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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 :)
  6. Offline

    flames

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    @NeoBlu, did you even read the description, this plugin PERFECTLY supports multiworld permissions w/o making it larger!
  7. Offline

    t3hk0d3

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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.
  8. Offline

    shatteredbeam

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    another quick question tehkode;

    Did you impliment a command to 'unset' a prefix or suffix via console/in-game? It seems that once you set a prefix/suffix, you can't unset it without going to the database/file and removing it manually.

    I've tried all manner of setting it to '' "" or null, and that just sticks too (nice code sanitization :) )
  9. Offline

    t3hk0d3

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME

    Code:
    >pex user t3hk0d3 prefix
    23:56:14 [INFO] t3hk0d3's prefix is:
    >pex user t3hk0d3 prefix "hello"
    23:56:22 [INFO] t3hk0d3's prefix is: hello
    >pex user t3hk0d3 prefix ""
    23:56:26 [INFO] t3hk0d3's prefix is:
    >pex user t3hk0d3 prefix
    23:56:32 [INFO] t3hk0d3's prefix is:
  10. Offline

    shatteredbeam

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Got it, Thanks again. This mod will be in use on our high-traffic server (~400 connections a day). Thank you for all the time you've devoted, and for answering my questions.
  11. Offline

    t3hk0d3

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Im glad to help. Thank you for bug reports.
  12. Offline

    t3hk0d3

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    New version 1.05
    New command - pex dump <backend> <filename>
    New commands - pex promote/demote <user> <group> - Aliases for pex user <user> group set/remove <group>
  13. Offline

    evilmunky

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    for those trying to migrate from yml to mysql abadon84 posted this script http://procrafter.de/downloads/yeti2pex_sql.pl
    i had to edit it to add
    Code:
    #!/usr/bin/perl
    at the top of the file (running linux) along with changing the database info. Its really easy to use. Put it in your bukkit folder and it reads your old permissions .yml
  14. Offline

    NeoBlu

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Hey cool thx
  15. Offline

    alcol

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Please can we have an permission for the command "/ kill me" ?
    and can you add the permission "modifyworld.blocks.interact .*"?
  16. Offline

    flames

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    what?!
    ask the dev of the plugin where that command is to add permission support. pex is a permission system and not a bunch of useless commands!

    modifyworld.blocks.interact .* is already in. stop be retard
  17. Offline

    alcol

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Sorry, the modifyworld.blocks.interact .* did not work.
  18. Offline

    t3hk0d3

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    More detail pls. You are sure enabled modifyworld? Type "pex config permissions.modifyworld true" to be sure.
  19. Offline

    alcol

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Yes, I enabled modifyworld, but several permissions did not work:

    modifyworld.blocks.place .*
    modifyworld.blocks.destroy .*
    modifyworld.blocks.interact .*

    I do not know why, I just withdrew permission "modifyworld.blocks.place.46" and it worked.
    Edit : I wanted permission to control /kill me, because my players locked away in prison escape while he no longer leaves. I thought a permission like this could be in modifyworld (permission to kill).
    And sorry for my spelling, I'm french
  20. Offline

    t3hk0d3

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    np, im not native english speaker too :) Well, im russian.

    "modifyworld.blocks.*" works fine for me. You are sure there isn't any typos or whitespaces?
  21. Offline

    alcol

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    I do not think I made typos or whitespace, I made a copy and paste from the README. The key is that it works, I would write if it does not work! ^ ^
  22. Offline

    flames

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    try this permission node: modifyworld.*
  23. Offline

    Joy

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Just a reminder, this script does not seem to work for me, did you have an updated version?
  24. Offline

    t3hk0d3

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    New version - 1.06.
    Now migration from Permissions 2.x are pretty easy thing.
  25. Offline

    Joy

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    PEX was working extremely well, but sadly it has a memory issue for us.

    GC logs: http://pastie.org/1977730

    We have about 5k entries in Perm table, and 2k both in Entities and Inheritance.
  26. Offline

    t3hk0d3

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    PEX utilize lazy loading - less memory consuption, but more operation intensive. This mean data "loaded" on-demand. To be honest there is some exceptions. Anyway, this problem is solveble - needs more caching, but this would lead to more memory consuption.

    Also as i can see from logs GC sweep is faster.

    Is that so much curical?
  27. Offline

    Joy

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Well I would love to test a version with more caching, and less dynamic loading. Ideally with a config flag to toggle it, so I can properly compare the two methods.
  28. Offline

    Drat333

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    How do you add world-specific permissions in the YAML file? I looked through your documentation and I could not find it.
  29. Offline

    t3hk0d3

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Use command interface:
    pex user Drat333 add "permission.node" "WorldName"

    And look changes :)

    I recommend you to use command interface instead of manual file edit.
  30. Offline

    t3hk0d3

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Version 1.10
    Perfomance tweak.
    Just more caching. Thanks @Joy for testing.

    New Promotional/Demotional system:
    pex group <group> rank [rank]
    pex promote <user>
    pex demote <user>

    Set 0 (zero) to group to exclude group from ranking.
    Lower number - higher rank. Example: SuperVIPAdmins rank = 1
    Higher number - lower rank. Example: DirtyPeasants rank = 100

    New modifyworld permission:
    modifyworld.entity.interact.<entityname> - Interaction with entities, like taming wolfs.
    modifyworld.items.have.<itemid> - Permission to have specific item.

    This permissions are disabled by default. To enable them set "permissions.modifyworld.itemRestrictions" = true.

    Changed old ones:
    modifyworld.entity.damage.deal.<entityname> - Now it's possible to specify entity.
    modifyworld.entity.damage.take.<entityname>
    modifyworld.entity.mobtarget.<entityname>
  31. Offline

    Drat333

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Y U NO LEIK DIRECT FILE CHANGES?!?!

    But in all seriousness, I have A LOT of commands that I do not want to be allowed on my Survival world. Its a lot more convenient to directly edit the file than entering in the command 20-30 times, plus errors due to typos. I believe you should make file editing easier for the user i.e. give us a format for where each aspect of the file should be.
  32. Offline

    flames

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    @Drat333: use command interface to make only few settings, then look into generated file. you will see, that it works exactly the same way like permissions, just a little bit different syntax. after you are set, use command /pex reload

    btw. if you already have a permissions 2.x setup, just use permissionscompat to import from the old ;)

Share This Page