Hey! It's been a while.
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!
On with the changes...
Web based editors/viewers
The web editor, verbose viewer and treeview sites have had a major overhaul since the last release.
Firstly, an important PSA:
The Web Editor is now able to support multiple tabs! You can use "/lp editor" to create a session that can edit all known groups at the same time.
This view will also include tabs for users which are currently online.
Some other QOL changes were implemented, most notably undo and redo buttons. (thanks
@BrainStone
)
The verbose viewer now has it's own site - instead of being hosted within a Gist.
The tree viewer has also been moved to it's own shiny new site!
All of the sites still need some work, the design & functionality isn't 100% there just yet. If you're a web developer, we appreciate any
contribution.
Separate prefixes/suffixes/meta into their own section within yaml/json/hocon storage files
These settings are now stored separately (and not as permissions!).
Existing files will be upgraded over time (as changes to each user/group are made).
Relocate dependency packages to prevent conflicts with other plugins
The dependency loading system has been completely rewritten. LuckPerms dependencies are now relocated into a separate namespace to prevent conflicts with other versions of the same libraries already loaded on the server or included in other plugins.
API changes
- Expose a means to implement the plugin's MessagingService via the API
- Add API methods to load users/groups/tracks and return a future encapsulating the resultant object instead of a success flag
- Add source to UserPromote & UserDemote events
- Add node equality predicates, and provide way to determine hasPermission behaviour using them
- Don't call events for changes to transient nodes
Smaller changes
- Abstract out the process of traversing the inheritance tree, add configurable option to choose which algorithm to use
- Add support for PermissionsBukkit migration
- Log verbose checks for the console, commandblocks & entities
- Migrate temporary permissions / parents in PEX migration
- Rebuild default and child permission lookup maps live instead of only once when the plugin first enables
- Filter expired entries from user/group bulk permission search results
- Allow bulkupdates without constraints
- Allow temporary-add-behaviour to be defined as an argument to the add/set commands
- Use OkHttp for web requests
- Rewrite the way user instances are cleaned up and unloaded
- Display tracks relating to the group itself when the showtracks command is performed on a group
- Nest the 'switchprimarygroup' command under the 'parent' subcommand
- Allow shorthand nodes with single element lists
- Don't allow empty context keys/values
- Refactor the way verbose filters are parsed - tokenize on first init as opposed to on each check
- Only show enduring nodes in command output, encapsulate the Node multimaps in PermissionHolder into separate class
- Remove the 'use-server-uuids' option and internal UuidCache system
- Force a clear of transient nodes when a User quits, don't just rely on their instance being unloaded
- Only query online players when upgrading usernames --> uuids in Vault hooks
- Reduce the amount of unnecessary data in info command outputs a bit
- Remove old schema migration code
- Add /lp debug command
- Fix default assignment expressions checking temporary permissions