Luck / LuckPerms

An advanced permissions plugin



Luck released this version on Feb 25, 2018

1.3 MB


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 old Web Editor site, verbose viewer and other “GitHub Gist” related functionality will stop working @ March 19, 2018 19:00 UTC.
  • This is due to a GitHub decision to deprecate the anonymous Gist API these systems relied upon.
  • All of the new systems no longer use this API and are unaffected by the change.

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.

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

Full changelog

  • v4.0.61 - pass and account for the holder type when building PermissionCalculators
  • v4.0.62 - fix copyright headers
  • v4.0.63 - Correctly close flatfile database connections on disable, catch all exceptions when performing initial data load
  • v4.0.64 - rewrite Vault implementation to upgrade requests to uuids instead of downgrade to usernames
  • v4.0.65 - fix compile
  • v4.0.66 - misc cleanup
  • v4.0.67 - Return empty string instead of null in VaultChatHook
  • v4.0.68 - Fix NodeFactory#nodeAsCommand (closes #639)
  • v4.0.69 - Improve various javadocs, add LogNotifyEvent
  • v4.0.70 - Send a different type of update ping for user changes, and only apply the change if the user is loaded
  • v4.0.71 - Allow spaces in world names
  • v4.0.72 - Fix broadcasting log entries
  • v4.0.73 - Implement nasty workaround for Spigot’s changes to the PluginClassLoader (#648)
  • v4.0.74 - Fix issue with slf4j loading
  • v4.0.75 - Revert Spigot PluginClassLoader workaround
  • v4.0.76 - Recompile against new powerfulperms namespace (#651)
  • v4.0.77 - Execute commands sequentially on a single thread executor
  • v4.0.78 - Populate Subject cache when obtaining SubjectReferences for instances which already exist
  • v4.0.79 - fix abuse of static in SubjectReferenceFactory
  • v4.0.80 - fix compile
  • v4.0.81 - misc refactoring
  • v4.0.82 - Implement PermissionsBukkit migration
  • v4.0.83 - Create
  • v4.0.84 - Allow shorthand nodes with single element lists (#665)
  • v4.0.85 - Remove lombok from the project
  • v4.0.86 - move bukkit-legacy module to a separate project, cleanup poms
  • v4.0.87 - Rewrite the way user instances are cleaned up and unloaded - towards #674
  • v4.0.88 - misc refactor for PermissionHolder & DummySender
  • v4.0.89 - Relocate dependency packages to prevent conflicts with other plugins
  • v4.0.90 - fix minor typo
  • v4.0.91 - Refactor some Sponge service details
  • v4.0.92 - add javadocs to Command class
  • v4.0.93 - Don’t allow empty context keys/values (#688)
  • v4.0.94 - Display tracks relating to the group itself when the showtracks command is performed on a group
  • v4.0.95 - Update Jenkins URL for the LuckPermsLegacy build (#686)
  • v4.0.96 - Nest the ‘switchprimarygroup’ command under the ‘parent’ subcommand
  • v4.0.97 - Log verbose checks for the console, commandblocks & entities when running on Bukkit
  • v4.0.98 - refactor the way verbose filters are parsed - tokenize on first init as opposed to on each check
  • v4.0.99 - serialise -> serialize
  • v4.0.100 - fix typo in /lp <u/g> editor message
  • v4.0.101 - Apply dependency remapping using an isolated classloader
  • v4.0.102 - fix accidentally marking guava as compile in the previous commit
  • v4.0.103 - Expose a means to implement the plugin’s MessagingService via the API
  • v4.0.104 - Only show enduring nodes in command output, encapsulate the Node multimaps in PermissionHolder into separate class
  • v4.0.105 - Remove the ‘use-server-uuids’ option and internal UuidCache system
  • v4.0.106 - Force a clear of transient nodes when a User quits, don’t just rely on their instance being unloaded
  • v4.0.107 - Don’t call events for changes to transient nodes
  • v4.0.108 - misc cleanup
  • v4.0.109 - ensure that we always use the shaded JDBC driver
  • v4.0.110 - Cleanup usages of loadUser/loadGroup/loadTrack - eliminate possibility for unloading race condition (#706)
  • v4.0.111 - Don’t relocate H2 or SQLite depends in favour of loading into isolated classloaders (fixes #704)
  • v4.0.112 - Add a means to provide a custom Storage dao implementation (#590)
  • v4.0.113 - Log the name of the calculator when an exception is thrown
  • v4.0.114 - Only query online players when upgrading usernames –> uuids in Vault hooks
  • v4.0.115 - Reduce the amount of unnecessary data in info command outputs a bit
  • v4.0.116 - Add /lp debug command
  • v4.0.117 - Update some dependencies
  • v4.0.118 - Don’t store API delegate instances for all users
  • v4.0.119 - fix build, refactor Bukkit model classes
  • v4.0.120 - Use OkHttp for web requests
  • v4.0.121 - Add API methods to load users/groups/tracks and return a future encapsulating the resultant object instead of a success flag
  • v4.0.122 - Migrate temporary permissions / parents in PEX migration
  • v4.0.123 - Refactor PEX primary group detection to exclude temporary parents
  • v4.0.124 - Add source to UserPromote & UserDemote events (#722)
  • v4.0.125 - Refactor permission processors, misc cleanup
  • v4.0.126 - Rebuild default and child permission lookup maps live instead of only once when the plugin first enables
  • v4.0.127 - Filter expired entries from user/group bulk permission search results (#736)
  • v4.0.128 - extract WeightCache out of PermissionHolder
  • v4.0.129 - Allow bulkupdates without constraints (#746)
  • v4.0.130 - Allow temporary-add-behaviour to be defined as an argument to the add/set commands (#747)
  • v4.0.131 - Add ability to edit multiple users/groups in the same editor session
  • v4.0.132 - Lazily initialise Http client
  • v4.0.133 - i’m a dummy
  • v4.0.134 - try to fix null proxySelector issue with okhttp
  • v4.0.135 - Wrap unimportant sql migrations in try..catch (#755)
  • v4.0.136 - Cleanup temporary permission auditing process
  • v4.0.137 - Remove old schema migration code, cleanup a bit
  • v4.0.138 - Log checks made against non Player command senders in LP bungee
  • v4.0.139 - Abstract out the process of traversing the inheritance tree, add configurable option to choose which algorithm to use (#719)
  • v4.0.140 - Refactor bulkupdate comparisons
  • v4.0.141 - Nukkit support (#764)
  • v4.0.142 - MongoDB Replica Set connections cannot resolve (#776 & #777)
  • v4.0.143 - Fix compile and some minor formatting errors
  • v4.0.144 - Update web related functionality to point to new locations and APIs (#770) (#784)
  • v4.0.145 - Fix illegal argument exception when a proxied Sponge calculator adds an empty context (#780)
  • v4.0.146 - Add node equality predicates, and provide way to determine hasPermission behaviour using them (#782)
  • v4.0.147 - Fix default assignment expressions checking temporary permissions (#783)
  • v4.0.148 - Replace deprecated method usage in NodeTools
  • v4.0.149 - Separate prefix/suffix/meta nodes into their own section within yaml/json/hocon storage files
  • v4.1.0 - Update API to 4.1
  • v4.1.1 - Properly bump version
  • v4.1.2 - Fix compat with older Gson versions (#791)
  • v4.1.3 - Fix issue with loading on old CraftBukkit versions
  • v4.1.4 - Run the permissible monitoring injector twice
  • v4.1.5 - Bump caffeine & hikari version
  • v4.1.6 - Fully relocate the jedis driver
  • v4.1.7 - Fix NPEs caused in LPPermissionMap (#794)