I think it's about time for another update - a nice round version number for once.
A summary of all of the changes, fixes and improvements included in this update is included below. But before then, some PSAs:
1) As always, if you'd like to support the work that goes into developing, maintaining and supporting the project, you can either write a nice comment here on Spigot (click the 5 stars on the right of the page) or star the project on GitHub!
2) If you're interested in supporting the project (and me!) financially, you can find more information about that sorta thing on the project's Patreon page. Any contributions, however big or small are most appreciated.
3) It looks like we've just ticked over 100,000 downloads on SpigotMC - which is kinda cool!
4) Come join us on Discord! https://discord.gg/luckperms
I think that's it! Thank you for your continued support.
- The "bytebin" URL can now be configured in the plugin, meaning you can self-host the whole LuckPerms web flow on your own systems.
- Ensure caches are invalided when child permission relationships are modified at runtime - fixes https://github.com/lucko/LuckPerms/issues/1378
- Fix calling default methods on LuckPerms event interfaces
- Fixed a typo in some of the Vault exception messages
- Updated a number of 3rd party dependencies to their latest version
- Return more detailed information about exactly how a permission check result was determined, this is now exposed in the verbose output
- Correctly implement Bukkit/Nukkit isPermissionSet method, inline with the behaviour in PermissibleBase
- Fixed some concurrency issues in the NodeMap implementation, resulting in occasional ConcurrentModificationExceptions
- Add an API method to unregister context calculators
- Close the messaging service before the storage provider, to fix race/state issues when the plugin disables
- Slightly optimize regex and wildcard processors
- Attempt to detect and warn about CraftBukkit + offline mode problems
- Refactor AbstractJavaScheduler to make use of a cached thread pool
- Use a separate fork join pool for cache loading operations - fixes deadlock problems when other plugins misuse the common fork join pool for i/o
- Fallback to node/context ordering in InheritanceComparator - results in more consistent inheritance behaviour
- Implement special handling in the LP Vault implementation for NPC players - this fixes an issue with WorldGuard attempting to check for Citizens NPC permissions using Vault