Hey - it's update time! This release contains all of the new features, improvements and fixes that have been added over the last couple of months.
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!
Technically not a new feature/bug fix, but, the project now has a shiny new website!
The site has a number of useful links, and also contains the latest development releases for all 4 platforms.
https://luckperms.github.io/
Let me know what you think.
Reorganise the default configuration
Should now be easier to navigate and understand
Implement Messaging Service using SQL
This is now enabled by default for servers without another messaging service configured. No extra configuration is needed.
Should be just as reliable as the other Redis based (and other) types, but doesn't need extra services to be setup
Implement the option to combine yaml/json/hocon storage files into one
It's still reccomended that the normal types are used, they benefit from greater efficincy, but this was a highly requested feature
Not really suitable for servers with a lot of permissions data (lots of users), please consider using a database backed method
Replace file logger with json based system
The old file logger system was somewhat difficult to read, and impossible to interpret (re-read) in the plugin
The old system has been replaced with a format which uses JSON, meaning file-based storage types can now use the "/lp log" family of commands
Add support for the TOML file format
This wasn't requested, but it was trivial for me to add, so uh, enjoy!
Improve the way player uuid data is saved/stored. Add a warning message to catch ip forwarding issues
The new system should be much more consistent.
It also exposes a lot more information about the nature of such save operations, meaning the plugin can warn you when things have been misconfigured. (missing IP forwarding settings)
Add 'permission clear' command
Pretty self explainatory, this clears all permissions, but not other types of node
Add full diff to the log when webeditor data is applied
Previously, only the editor code was included. Since sessions now expire after a few hours, this was pretty useless.
The full diff is now recorded when a change is applied
Output meta in inheritance order in the 'meta info' command
Should make it a bit easier to debug issues with inherited meta settings
Allow display names to be set in specific contexts
Means the same "base" group can be used globally, but with a unique name on specific servers
Make auto-op changes take effect (almost) immediately
Previously, they only applied after a relog, so having them apply almost immediately is an improvement
Implement different comparison methods for /lp search
The syntax is fairly similar to that of bulk update
e.g. '/lp search ~~ essentials.%' will return all entries starting with "essentials."
Add flag to exclude users from an export
Just include "--without-users" at the end of the command and users will be excluded from the output.
Convert bulkupdate functionality to use PreparedStatements
The previous method was vulnerable to SQL injection (not a huge deal because these commands were only executable from the console)
API changes
- The settings in Contexts are now stored as a set of LookupSetting entries
- Add methods to Track for promoting/demoting users, add PromotionResult & DemotionResult interfaces
- Add more generic MutateResult interface for common actions
- Add NodeType - type data is a way to easily manipulate the "meta" node types
- Move all methods from the Storage interface into more appropriate manager classes
- Add PlayerSaveResult to encapsulate the result of a call to save uuid data for a player
- ContextSet now extends Iterable<Map.Entry<String, String>>
- Add extra subscribe method to EventBus to automatically unregister listeners when a plugin is reloaded
Other misc changes
The API version has been bumped to 4.2, with the following changes
- Make the world-rewrite map case insensitive
- Clarify the showtracks output
- Fix shutdown hang
- Catch exceptions thrown in repeating tasks to avoid subsequent executions from being cancelled
- Rename verbose paste to verbose upload
- Don't intern strings in permission checking process
- Copy usernames in the GroupManager migration
- Apply improvements to the caches in AbstractContextManager
- Exclude temporary file changes from FileWatcher
- Improve consistency when handling case in Context sets
- Fix issues with symlinked storage directories
- Removed storage buffers, they were doing more harm than good
- Optimize WildcardProcessor
- Improve consistency of contextual primary group caching
- Remove the locks in NodeMap to ease thread contention when lots of processes are resolving inheritance & refactor the way LocalizedNodes are created