LuckPerms - A permissions plugin for Minecraft servers

A new version has been released for LuckPerms, it is available for download here.


Overview

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. :wink:

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 CONTRIBUTING.md
  • 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)
3 Likes

A new version has been released for LuckPerms, it is available for download here.


Lots of fixes, changes and improvements. :slight_smile:

  • v4.1.8 - Don’t intern strings in ContextSets (#797)
  • v4.1.10 - Refactor Contexts class
  • v4.1.11 - Cleanup parts of the sponge service implementation
  • v4.1.12 - Add copyFrom method to Node.Builder
  • v4.1.14 - Implement SubjectDataUpdateEvent (#753)
  • v4.1.15 - Remove sponge migration commands
  • v4.1.16 - Submit users/groups to the editor in weight order
  • v4.1.17 - Extract common plugin behaviour into an abstract class
  • v4.1.18 - Always fire SubjectDataUpdateEvent async
  • v4.1.19 - Reduce the number of entries sent to the verbose viewer, cleanup old hikari try…catches
  • v4.1.20 - Fix errors relating to sponge plugin parameter being an illegal argument (#810)
  • v4.1.21 - Implement Sponge subject lookup queries using CachedData from LP common
  • v4.1.22 - Fix IsolatedClassLoader on Java 9 (#815)
  • v4.1.23 - Further improvements to the Sponge service design
  • v4.1.24 - Compress editor/verbose/treeview data using gzip before uploading
  • v4.1.25 - Strip color when sending messages to the fallback logger
  • v4.1.26 - A few minor API javadoc changes
  • v4.1.27 - Fix adding null json values (#818)
  • v4.1.28 - Reorganise commands
  • v4.1.29 - Fix compile
  • v4.1.30 - Fix NPE in Message#asString (fixes #822, #823, #824)
  • v4.1.31 - Fix race condition in the import process (#833)
  • v4.1.33 - Reorganise the default configuration
  • v4.1.34 - Rename role parameter in PermissionDescription.Builder#assign
  • v4.1.35 - Fix parentadd and parentremove sponge commands
  • v4.1.36 - Fix Sponge subject inheritance
  • v4.1.37 - Fix Sponge persisted subject parent serialisation
  • v4.1.38 - Implement Messaging Service using SQL (#534)
  • v4.1.39 - Replace huge forwarding classes with java Proxy instances
  • v4.1.40 - Apply table prefix to the SQL messenger
  • v4.1.41 - Fix recursive proxying in PhasedStorage
  • v4.1.42 - Fix Sql messenger table name & bug which meant entries were only received after a 1 min delay
  • v4.1.43 - Encode editor payload using UTF-8 (#841)
  • v4.1.45 - Improve the way player uuid data is saved/stored. Add a warning message to catch ip forwarding issues
  • v4.1.46 - Make the world-rewrite map case insensitive (#863)
  • v4.1.47 - Clarify the showtracks output (#862)
  • v4.1.48 - Fix resolving data directory on Sponge servers with a custom config dir location (#875)
  • v4.1.49 - Properly escape sql query for loadTrack (#877)
  • v4.1.50 - Revert f63d6cf
  • v4.1.51 - Fix shutdown hang (#881)
  • v4.1.52 - Catch exceptions thrown in repeating tasks to avoid subsequent executions from being cancelled
  • v4.1.53 - Rename verbose paste to verbose upload
  • v4.1.54 - Don’t intern strings in permission checking process
  • v4.1.56 - misc cleanup
  • v4.1.57 - Add extra parameter to EventBus#subscribe which allows a handler to be bound to a plugin
  • v4.1.58 - Register Sponge PermDescriptions to the LP permission registry
  • v4.1.61 - Add ‘permission clear’ command (#893)
  • v4.1.64 - refactor inheritance graphs slightly
  • v4.1.65 - Add full diff to the log when webeditor data is applied (#922)
  • v4.1.66 - Account for Sponge permission defaults in SpongeSenderFactory#getPermissionValue (fixes #920)
  • v4.1.67 - Move schema files to a namespaced package (#899)
  • v4.1.68 - Output meta in inheritance order in the ‘meta info’ command (#908)
  • v4.1.69 - Implement the option to combine yaml/json/hocon storage files into one
  • v4.1.70 - Fix init error in SeparatedConfigurateDao (#924 & #925)
  • v4.1.71 - Replace file logger with json based system
  • v4.1.72 - Update some dependency versions
  • v4.1.73 - Fix misplaced sponge config options
  • v4.1.74 - add more logging to the importer
  • v4.1.75 - Fix sponge subject storage
  • v4.1.76 - Fix sponge split-storage config section being in the wrong section of the config (#928)
  • v4.1.77 - Added explicit column names in INSERT queries. (#939)
  • v4.1.78 - Add promote and demote methods to the API (#938)
  • v4.1.79 - Add some missing null check annotations
  • v4.1.80 - Apply improvements to the caches in AbstractContextManager (#929)
  • v4.1.81 - Exclude temporary file changes from FileWatcher (#945)
  • v4.1.82 - Context set values should be lowercase’d too
  • v4.1.83 - Some small fixes and changes for ContextSet implementations
  • v4.1.84 - Refactor configurate deo serialization of permission data, add support for the TOML format
  • v4.1.85 - Remove storage buffers
  • v4.1.86 - Maybe fix problems with symlinks (#956)
  • v4.1.87 - Optimize WildcardProcessor
  • v4.1.88 - Refactor extended node types, general cleanup
  • v4.1.89 - Implement equals, hashcode and toString for NodeTypes
  • v4.1.90 - Allow display names to be set in specific contexts (#963)
  • v4.1.92 - Refactor the way holder caches are invalidated in order to improve consistency (#734)
  • v4.1.94 - Remove the locks in NodeMap to ease thread contention when lots of processes are resolving inheritance & refactor the way LocalizedNodes are created (#734)
  • v4.1.95 - Improve consistency of contextual primary group caching
  • v4.1.96 - Implement different comparison methods for /lp search (#917)
  • v4.1.97 - Add flag to exclude users from an export (#961)
  • v4.1.98 - Throw a more detailed error when database connection info is missing
  • v4.1.99 - Fix bad caching logic resulting in super high CPU usage
  • v4.1.100 - Improve the behaviour of the APIs (now somewhat redundant) holder refresh method
  • v4.1.101 - Convert bulkupdate & search functionality to use PreparedStatements (#972)
  • v4.1.102 - Fix /lp search query (#972)
  • v4.1.103 - Fix jedis shading (#930)
  • v4.1.104 - Use the servers uuid cache in the output to /lp search if LP doesn’t have data (#974)
  • v4.2.0 - Release version 4.2.0
  • v4.2.1 - Add PlayerDataSaveEvent
  • v4.2.3 - Reduce the throughput on the contexts cache in ContextManager (#929)
  • v4.2.4 - Reduce the number of config lookups required when calculating contexts
  • v4.2.7 - Various performance optimizations
  • v4.2.8 - Refactor meta stack element creation, add ‘from_group’ & ‘not_from_group’ elements
  • v4.2.10 - Fix saving node attributes on non-YAML file storage types (#999)
  • v4.2.11 - Lazily load contexts cache for Sponge subjects (#1005)
  • v4.2.12 - Cache the creation of Sponge proxy subject classes (#1005)
  • v4.2.13 - Fix cache invalidation when group data changes (#1010)
  • v4.2.14 - Provide an even more detailed warning message when other uuids are present for a username
  • v4.2.16 - Fix regex permissions not really working properly (#1021)
1 Like

It’s not even funny!
There is a lot of spam in the console.
[09:00:19] [luckperms connection adder/INFO] [STDERR]: [me.lucko.luckperms.lib.mysql.jdbc.log.StandardLogger:logInternal:318]: Fri Jun 01 09:00:19 MSK 2018 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

@Semenkovsky_Ivan It explains it in the wiki here:
https://github.com/lucko/LuckPerms/wiki/Storage-system-errors#mysql-ssl-errors

@yepidoodles These settings are not in the configuration file for Sponge. %D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

You’ll need to regenerate your config.

When you upgrade, GP sometimes does not add new parameters to the config. Make a backup of the configuration or rename the configuration file. GP will create a new one.

Here is the configuration from the latest version of the plugin. I do not see the useSSL parameter here.
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

As it says on the wiki you have to “add the last two options.” - Copy and paste them from the wiki into line 267.

How do you use LuckPerms to disable access for a certain group to a command that does not a have node?

A new version has been released for LuckPerms, it is available for download here.


  • v4.2.20 - cleanup various comparators
  • v4.2.21 - Improve buffering code
  • v4.2.22 - Don’t reload Sponge persisted subjects when a save is pending
  • v4.2.23 - Disable hikari leak detection (#1033)
  • v4.2.25 - Fix node comparison for identical nodes except the value
  • v4.2.27 - remove some unnecessary interfaces
  • v4.2.28 - Update some dependency versions
  • v4.2.29 - Fix context cache invalidation
  • v4.2.30 - Make logging messages a bit less obnoxious
  • v4.2.31 - Fix sponge build script
  • v4.2.33 - Cleanup action log formatting and pagination
  • v4.2.34 - Cleanup various message localisations, limit the size of the PermissionRegistry
  • v4.2.37 - Apply Sponge implicit wildcards after Bukkit style .* wildcards
  • v4.2.38 - Specify explicit global context in generated LP commands when default contexts have been set (#1062)
  • v4.2.39 - Refactor the way contexts are cached on all platforms (#1071)
  • v4.2.40 - Add setprefix, setsuffix, settempprefix, settempsuffix commands (#840)
  • v4.2.41 - Add helpful message for users on first startup
  • v4.2.43 - Escape groups keyword in SQL queries to (hopefully) fix compat with newer versions of MySQL (#1091)
  • v4.2.44 - cleanup build scripts a bit
  • v4.2.45 - Use synchronized wrapper for NodeMap backings
  • v4.2.46 - Fix /lp search for groups when using separated file storage (#1094)
  • v4.2.47 - Allow FileWatcher locations to be registered after initial start
  • v4.2.48 - Send more appropriate message when no users/groups match the editor type (#1096)
  • v4.2.49 - misc cleanup
  • v4.2.50 - Rewrite MessagingService message encoding, conform to new plugin message channel requirements
  • v4.2.51 - Change name of Sql messenger table for compat with changes in the previous commit
  • v4.2.52 - Don’t add spaces when formatting ‘concise’ durations
  • v4.2.55 - A few API javadoc improvements
  • v4.2.56 - Misc cleanup
  • v4.2.57 - More SQL escaping (#1091 & #1126)
  • v4.2.58 - Fix uppercase inconsistencies when saving users to SQL storage types (#1119)
  • v4.2.59 - Don’t schedule a delayed load task on startup (#1130)
  • v4.2.60 - Don’t include any database properties by default (#1134)
  • v4.2.61 - Give some form of feedback when trying to applyedits no changes instead of no feedback at all (#1136)
  • v4.2.62 - Load a up-to-date copy of group data before applying web editor changes
  • v4.2.64 - Completely rework event system
  • v4.2.65 - Update text dependency
  • v4.2.66 - Update text & asm dependencies (fixes #1142)
  • v4.2.67 - Move to gradle
  • v4.2.70 - Update build instructions in the README file
  • v4.2.72 - Update kyori/event dependency
  • v4.2.73 - Fix applying group web editor changes (#1148)
  • v4.2.74 - Include license file in the jar
  • v4.2.75 - Update event to 3.0.0
  • v4.2.76 - Optimize event generation and posting
  • v4.2.77 - Fix build
  • v4.2.79 - Update README
  • v4.2.80 - Send a more informative message when the bulkupdate command is used from in-game
  • v4.2.81 - Don’t call NodeAddEvent when adding the default group (#1177)
  • v4.2.82 - Optimize event generation & other misc improvements
  • v4.2.83 - Update messenger log prefixes
  • v4.2.84 - Update gitignore
  • v4.2.85 - Update some dependency versions
  • v4.2.86 - Revert MySQL driver update
  • v4.2.87 - Only allow import and export commands to interact with files in the data directory (#1193)
  • v4.2.88 - Update banner in readme
  • v4.2.89 - Refactor MetaAccumulator to be a little more sane
  • v4.2.90 - Avoid running full “update tasks” unless they’re absolutely needed. Process Vault API “set” requests immediately instead of in the background
  • v4.2.91 - Rename “update task” --> “sync task”
  • v4.2.92 - Expose TemporaryMergeBehaviour in the API (#1189)
  • v4.2.93 - Add flag to prevent users from being added/removed to/from the first group on a track (#1151)
  • v4.2.94 - Add ‘require-sender-group-membership-to-modify’ config option (#1140)
  • v4.2.95 - Refactor config keys
  • v4.2.96 - Fix compile
  • v4.2.97 - Use neutral color to display potentially colored names - fixes #1170 (#1210)
  • v4.2.98 - Separate formatted vs plain display name methods in User/Group
  • v4.2.100 - Update gradle wrapper and buildscript plugins
  • v4.2.101 - Move from findbugs jsr305 to checker-qual
  • v4.2.102 - NonNull annotations should be on the same line in interfaces
  • v4.2.105 - Fix NPE when loading subject data on Sponge (#1222)
  • v4.2.107 - Operations to add new nodes with differing values should just override existing entries, instead of failing with the ALREADY_HAS result (#1198)
  • v4.2.108 - Improve Uuids#parse
  • v4.2.109 - Fix slf4j loading (#1224)
  • v4.2.110 - Cleanup imports
  • v4.2.112 - fix typo
  • v4.2.113 - Fix typo in the description of /lp export (#1229)
  • v4.2.114 - Fix buildscript deployment config for Sonatype
  • v4.2.115 - Fix class cast exception in NodeTypeKey#getTypeName (#1230)
  • v4.2.116 - Remove specific dependency on Sponge API 8 in the mod info file (#1221)
  • v4.3.0 - Release v4.3.0
  • v4.3.1 - Refactor buildscript determinePatchVersion function
  • v4.3.3 - Fix race condition in BufferedRequest
  • v4.3.4 - Refactor Constraint/Comparison impls for bulkupdate
  • v4.3.5 - Use the correct permission check method when forming tree views
  • v4.3.6 - Refactor storage system
  • v4.3.7 - Setup gradle license format check
  • v4.3.8 - misc tidying
1 Like

Hello !
Someone know how can I use a console with sponge for have the permission settings.
Without a methods, I can’t set the first settings for begin permission settings.

I host a local server minecraft sponge
Thanks

A new version has been released for LuckPerms, it is available for download here.


  • v4.3.9 - Some minor code cleanup (#1262)
  • v4.3.10 - Update buildscripts for Sponge Ore deployment
  • v4.3.11 - Catch Throwable instead of Exception when calling context calculators
  • v4.3.12 - Update commodore for tab complete fix (#1257)
  • v4.3.13 - Include meta lookup events in verbose output
  • v4.3.14 - Increase verbose stacktrace truncation length for web outputs
  • v4.3.15 - Match the type in verbose filters
  • v4.3.16 - Nicer format for verbose meta logging
  • v4.3.17 - Use the fragment identifier instead of query parameters to convey the editor/verbose/treeview data id
  • v4.3.18 - Sponge Subject lookup methods without a contexts param should default to current contexts, not global (#1279)
  • v4.3.19 - Improve the way meta lookups are caught & reported to the verbose handler
  • v4.3.20 - Return a more informative error for invalid verbose filters
  • v4.3.22 - Update readme badges
  • v4.3.23 - Add option to deduplicate prefix/suffix stacks (#1285)
  • v4.3.24 - Add missing since tag to MetaStackFactory
  • v4.3.25 - Update README.md
  • v4.3.26 - misc tidying up
  • v4.3.27 - Attempt to parse uuid from username string in Vault hook
  • v4.3.28 - Don’t show negated group membership permissions in the output to ‘user info’ and ‘group listmembers’
  • v4.3.29 - Reorganise some packages
  • v4.3.30 - Some misc refactoring
  • v4.3.31 - Don’t send 1.13 tab completions to players without access to any LP commands (#1310)
  • v4.3.33 - Update references to the project website
  • v4.3.34 - Optimize LookupSetting storage/manipulation within Contexts
  • v4.3.35 - Experiment with different cache implementation in PermissionCalculator
  • v4.3.36 - Cache the most recent lookup for permission/meta data in AbstractCachedData.
  • v4.3.37 - Optimize ImmutableContextSet#equals by comparing the hashcodes (constant time lookup)
  • v4.3.38 - Convert permissions to lowercase inside the cache
  • v4.3.39 - Implement LoadingMap using Guava’s ForwardingMap utility
  • v4.3.40 - Optimize context set manipulation
  • v4.3.42 - Missing nullability annotations
  • v4.3.44 - Add API method to get known permissions & improve the way PermissionDescriptions are migrated from existing Sponge services when LP enables
  • v4.3.45 - Improve /op and /deop command matching
  • v4.3.46 - Tweak PlayerSaveResult javadoc
  • v4.3.47 - Small cleanup in Contexts class
  • v4.3.48 - Some node equality changes
  • v4.3.49 - replace LoadingCache with more simple LoadingMap alternative when no auto expiry is needed
  • v4.3.50 - Update Gradle to 5.0
  • v4.3.51 - Account for ‘allow-invalid-usernames’ setting in API calls
  • v4.3.52 - Remove static imports
  • v4.3.53 - Switch default MySQL/MariaDB charset from utf8 to utf8mb4
  • v4.3.54 - Make gradlew script executable by default (#1338)
  • v4.3.55 - Update okhttp and okio versions
  • v4.3.57 - Refactor ProgressLogger slightly
  • v4.3.59 - Fix error message when event handlers throw an exception
  • v4.3.61 - Fix sending component messages on older CB/S releases (#1344)
  • v4.3.62 - Remove SQL indexes on the permission field
  • v4.3.64 - Refactor PlayerLoginProcessEvent
  • v4.3.65 - Log exceptions thrown by BufferedRequest tasks
  • v4.3.66 - Some misc refactoring / code cleanup
  • v4.3.67 - Change the way static contexts are displayed in /lp info
  • v4.3.68 - Implement use of a Maven Central mirror for dependency downloads
  • v4.3.70 - Rename Vault implementation classes
  • v4.3.72 - Buildscript changes
  • v4.3.73 - Finish updating commodore
  • v4.3.74 - Allow the bytebin url to be configured
  • v4.3.75 - Fix Sponge and Velocity build scripts

What version of LP should I use for MC1.10.2 SpongeForge1.10.2-2477-5.2.0 ?

Only 3.0.14 for API5.0.0 ?
Or 4.4.30 is possible ?

What version should I use for SpongeForge 1.12.2-2838-7.1.7-RC3946? It seems the 7.X version was completely skipped, unless I’m blind.

A new version has been released for LuckPerms, it is available for download here.


Hello hello!

I’d like to take the opportinity to wish everyone a belated Merry Christmas, and a (slightly early) Happy New Year! Hopefully you’ve all been enjoying the holidays so far. :slight_smile:

It’s time for an update - a late Christmas gift if you like!

Well well, it’s finally happening! After months of work, we’re finally ready to release the first version of LuckPerms v5.

This update is a bit more significant to others in the past, so please read until the end and take note of all of the details of the changelog.

Hundreds of developer hours have been put into this update, and approx 40k lines of code - it has been 6 months in the making (that’s honestly no exaggeration, the first commit was in back in May!).

As always, if you’d like to support the work I and many others put into the project (please!):

  1. Consider sponsoring me on Patreon (Luck is creating free & open source Minecraft plugins | Patreon)
  2. ‘Star’ the project on GitHub (GitHub - lucko/LuckPerms: A permissions plugin for Minecraft servers.)
  3. Keep spreading the word!

What’s new?

  • A brand new version of the Web Editor.
    • We’ve taken the old version and just made it oh-so-much better.
    • Completely rewritten, allowing so much more than was possible before. You can now control all aspects of your servers permissions setup from a sleek, modern web app in your browser.
  • An all new & completely rewritten Developer API.
    • After months of refinement, we’re releasing a brand new developer API for the plugin.
    • Written to more closely encapsulate the functionality of the plugin, and (hopefully!) be easier to use and understand.
  • Countless improvements to smaller features, including:
    • An improved approach to file based action logging
    • A new compressed import/export format for the LuckPerms backup commands
    • Drastically improved performance for the verbose command.

What else has changed?

  • Default assignments have been removed.
    • We’ve taken the decision to remove this feature from the plugin - it was felt as being a bad fit in the functionality offered by a permission plugin. (and it was quite badly implemented too, oops)
  • A number of “undocumented” command aliases have been removed.
    • These were confusing to new users, and made it easy to mistakenly run a command that did x when you wanted y.
  • A new extension system has been implemented, allowing “bolt on” functionality to be installed and run alongside the plugin.
    • The first two extensions to be released are compatibility bridges, the first to allow existing plugins written against the now-removed v4 API to continue working, and another to re-implement default assignments for those that are still wanting to use them.

How do I update?

The all-new v5 release is available for download now at https://luckperms.net.

Before updating, I highly reccomend taking backups of your LuckPerms data (just using /lp export is probably good enough!)

If you have any other plugins on your server that use the existing v4 developer API, you’ll also want to install the extension-legacy-api extension.

For more information, please read the upgrade guide: Upgrading from v4 to v5 · lucko/LuckPerms Wiki · GitHub.

Closing comments

I’d like to say an especially big ‘thank you’ to Turbo for all of his hard-work on the new version of the web editor. He’s done a fantastic job - if you see him around be sure to say thanks! And thank you to the projects Discord moderators, those who have contributed code/documentation/locale on GitHub, supporters on Patreon, and everyone else who has supported/reccomended/used the project over the past 3+ years.

A new version has been released for LuckPerms, it is available for download here.


  • Improved the file watcher system used by flatfile storage, it’s now much faster to detect and apply updates
  • Added support for unicode double quote characters when parsing command arguments
  • Improved performance when constructing/posting events provided by the LuckPerms API
  • Changed the verbose handling code to be less intrusive to the server
  • Added support for SSL connection to Redis
  • Fixed the Year 2038 problem in LP MySQL tables (expiry times further into the future than 2038)
  • Released LP API 5.1, with a number of improvements and convenience methods added for developers
  • Added meta-value-selection config setting
  • Added listener to update the client commands list when permissions are changed
  • Changed exporter to output users & tracks in a consistent order
  • Removed legacy import functionality
  • Added notice to inform users to ignore ‘illegal reflective access’ warning messages
  • Fixed bug with empty string world names when calculating world contexts
  • Fixed issue converting MongoDB document _id to UUID
  • Fixed applying track reordering from the webeditor
  • Added checkTime property to verbose data
  • Improved commands to reply with more descriptive message when http requests fail
  • Fixed bug with null entries in Permission#children map
  • Improved plugin startup sequence so dependencies are downloaded in parallel
  • Changed HikariCP config to improve recovery following database downtime
  • Added a number of (previously removed) command aliases
  • Fixed group listmembers command behaviour with the default group
  • Added more useful debug message when a LinkageError is thrown due to bad SLF4J classloading
  • Improved performance when loading lots of groups from SQL storage types
  • Improved sync task performance
  • Improved performance of /lp log commands
  • Improved user info command
  • Added contextual data section to group info command

this plugin is horrible i did everything correctly but my players still could not use the commands they had the permissions for

Does this Plugin allow me to only allow the teleport command? I really need a plugin that does.

A new version has been released for LuckPerms, it is available for download here.


This update includes a number of changes and fixes from the past few months. The full changelog can be found on GitHub.