Firstly, why 3.0.0?
The increment in the major version number only affects people using the LuckPerms API. If you don't use it, this is just like any other update.
If you do use the API in your plugins, please read the section below.
Added /lp tree command
This command allows you to generate tree diagrams of your permission setups.
For example:
https://git.io/vD5Ko
This diagram will grow over time, and will expand as plugins check for permissions.
You can also specify a player, and colorize the tree depending on whether a player has each permission.
For example:
https://git.io/vD5KQ
It's super useful for checking over your setup, as well as for identifying permissions where plugin documentation is lacking.
Cleanup migration commands
The migration system has had a big cleanup. The process should be faster & more reliable now. The command usage remains the same, though.
Add configurable duration handling when a user/group already has a temporary permission/parent/option set
It's quite hard to explain, but this feature was heavily requested. It allows you to define how permission expiration times should behave when new permissions are added. The default behaviour from the last version is retained, however you can modify this in the config.
https://github.com/lucko/LuckPerms/blob/master/bukkit/src/main/resources/config.yml#L49-L55
LuckPermsCompat
I released a small add-on plugin which remaps commands from other permission systems.
A lot of people keep telling me how much they liked GroupManagers command syntax - I'm not sure I share that opinion, but I'm bored of hearing it.
This plugin will simply allow you to keep using the GroupManager syntax with LuckPerms. I may add support for other systems in the future, but for now it only works with the GM commands.
You can download it from here:
https://ci.lucko.me/job/LuckPermsCompat/
Import/Export improvements
- Comments are allowed now
- Empty lines are ignored
- Export logs are now annotated with extra information to make them more readable
- The importer now understands commands which contain " " quotes to wrap arguments with spaces
API changes
I've managed to hold off of any backwards compatible API changes until now, however, over the last few months, quite a number of deprecated methods/classes have built up. I've also been meaning to replace the existing Event API with something more useful/friendly. This means that 3.0 introduces a number of backwards incompatible changes.
If you use the LuckPerms API in any of your plugins, it would be a good idea to recompile against this latest release before updating.
A full list of removed methods/classes can be found here:
https://gist.github.com/lucko/fdf6ae4b2d9e466d8103dd9c68e5db9e
A number of these methods have been deprecated pretty much since the plugins initial release here on Spigot.
However, the good news is that 3.0 adds a significantly better event listening API. All of that is documented here:
https://github.com/lucko/LuckPerms/wiki/Developer-API#events
Fixes
- Fix a small issue with config reloads
- Fix search command page number argument
- Fix migration logs being sent to the console twice
- Fix OPs disabled message (sorry about this one :>)
- Fix issue with Jedis shading (prevented redis from working correctly)
- Modify node escaping to use "\" characters instead of {<something>} style escapes
- Fix NPE with Vault's getUserMeta when defaultValue is null and the LP value is also null
- Fix a spelling mistake in the default config
- Allow negated group permissions
- Apply regex permissions before wildcards
- Test verbose filters before registering them
- Remove redundant SQL queries and fix issue where multiple uuids could be mapped to the same username
- Fix setting chat meta with Vault
- Prevent unnecessary permissible recalculations
- Don't bother adding checks to the verbose listener queue if no listeners are registered
- Ensure all Bukkit permissions are registered on startup