Advertisement
Guest User

PEX

a guest
Aug 1st, 2012
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.61 KB | None | 0 0
  1. Why PermissionsEx is terrible
  2.  
  3. A lot of people ask me “Why do you say PermissionsEx is bad?” and I often have to explain these same facts. So instead, here is a simple description of the troubles of PEX.
  4.  
  5. There is a tl;dr at the bottom
  6.  
  7.  
  8. Overrides Bukkit functionality
  9. Bukkit’s permissions API (nicknamed superperms) was designed as a system for plugin compatibility in the rather important field of determining if a user should be able to perform an action or access a function, without having configurations spread across all your plugins or needing to find a plugin compatible with your permissions system
  10.  
  11. PEX decided it was above this idea, and instead of working with the system it works against it. PEX injects its own code into the Bukkit server, and as a result has broken itself and Bukkit many times. The system is implemented poorly, through some nasty reflection that isn’t even cleaned up properly on shutdown. PEX attempts to re-route all permissions checks through its own system; instead of working with Bukkit it actively works against it.
  12.  
  13. Things PermissionsEx has broken
  14. As previously mentioned, PermissionsEx injects itself into the Bukkit system. Here are some of the PEX surprises that have been troublesome or are actively causing problems for server admins.
  15. At one time, PEX broke OPs. Not all Bukkit users are aware, but plugins are able to define what permission nodes an OP is granted. PEX decided that OPs shouldn’t get to decide, and successfully broke the system of defining what nodes an OP receives. This bug was known for a month before it was patched, and took two updates to be fixed.
  16. Another feature of the Bukkit permissions system, is that you can define one permission node as having “children” nodes. This way, if you gave somebody “example.fruit” you could define them as also having “example.bananas” and “example.apples” as a way of permission node inheritance. This system wasn’t good enough for PermissionsEx, so the author left it broken for months before finally fixing the mistake. During this time, many server admins were confused as to why their permissions setup wasn’t working. This known bug and intentional breaking of Bukkit was simply considered a feature. Currently, unpatched, when PEX encounters a cyclical inheritance structure (A inherits B, B inherits A) it will simply crash after a period of time.
  17. Not happy with breaking its own system, PermissionsEX - due to the poor implementation of reflection it uses - additionally breaks all other plugins checking on any user permissions when it crashes. This crashing conveniently happens any time a server admin uses the Bukkit /reload command, a built-in feature to the server that has existed before PEX was created, as well as other situations involving permissions configuration formatting issues. Thus, any time you reload your server not only does PEX break but your other plugins start spewing errors as well.
  18. Lastly, PermissionsEx still breaks important parts of the Bukkit API. Not all of the permission-check based Bukkit methods function on PEX, crippling some plugins for server administrators running PEX. As of today (July 24) there are still broken Bukkit methods in PEX that are unpatched.
  19. Want to see PEX fail to send messages yourself? Give yourself the node “fail.ure” and run /fail with this plugin: https://github.com/mbax/FailPlugin/downloads
  20. Then, run it with any other permissions plugin and watch it work.
  21.  
  22. Maintenance
  23. There exist reported errors and crashes to the PermissionsEx project that have been untouched for several months. There are a hundred active issue tickets on its github that are primarily untouched. While many of these are user error, some are not, yet none receive replies. When bugs are brought before the PEX author, the response has in the past been denial that it could possibly be a PEX problem.
  24. A bugfix was submitted to PEX’s modifyworld plugin for a tiny error of permission checking, that broke protection of certain blocks. This fix remained untouched for two months before being applied to the codebase.
  25. Do you really want to use a plugin that sits around with unpatched bugs for months?
  26.  
  27. tl;dr
  28. PEX breaks Bukkit code
  29. PEX crashes, unpatched for months
  30. PEX breaks plugins
  31. Oh god get off PEX
  32.  
  33.  
  34. Below this line is under construction
  35. __________________________________________________________________
  36. So what do I switch to?
  37. You have several options:
  38.  
  39. Alphabetically:
  40.  
  41. bPermissions
  42. Converter from PEX: Yes! Just run /permissions import pex
  43.  
  44. GroupManager
  45. Converter from PEX:
  46.  
  47. PermissionsBukkit
  48. Converter from PEX:
  49.  
  50. Privileges
  51. Converter from PEX:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement