A permissions plugin for Minecraft servers.
Go to file
Luck adbd2fc81f
Use ConcurrentHashMap instead of Caffeine in CachedDataManager
The behaviour of Caffeine cache invalidation calls is "undefined for an entry that is being loaded (or reloaded)" - this causes a nasty race condition in CachedDataManager, because we rely on the call to #invalidate to completely clear the cache and prevent old/outdated data from sticking around & being used for permission queries.

This is an unfortunate characteristic of Caffeine, because other than that, it is perfect for our use-case.
2020-07-03 17:57:53 +01:00
.github Update FUNDING.yml 2020-03-01 10:23:40 +00:00
api Fix JavaDoc typo (#2421) 2020-07-02 10:42:37 +01:00
bukkit Fix typo in config file 2020-06-29 15:17:42 +01:00
bukkit-legacy Change API package to net.luckperms 2019-08-26 18:06:45 +01:00
bungee Fix typo in config file 2020-06-29 15:17:42 +01:00
common Use ConcurrentHashMap instead of Caffeine in CachedDataManager 2020-07-03 17:57:53 +01:00
gradle/wrapper Update Gradle to 5.0 2018-12-15 22:24:17 +00:00
nukkit Fix typo in config file 2020-06-29 15:17:42 +01:00
sponge Don't re-use PermissionCache instances 2020-07-03 15:18:58 +01:00
velocity Fix typo in config file 2020-06-29 15:17:42 +01:00
.gitignore Context & action log changes 2019-08-26 14:04:50 +01:00
build.gradle Release API 5.1 2020-05-10 14:02:57 +01:00
CONTRIBUTING.md Fix some small typos (#1389) 2019-01-18 09:47:03 +00:00
gradlew Make gradlew script executable by default (#1338) 2018-12-19 09:24:44 +00:00
gradlew.bat Update Gradle to 5.0 2018-12-15 22:24:17 +00:00
HEADER.txt misc tidying up 2018-11-10 20:21:08 +00:00
LICENSE.txt Update MIT license text to allow GitHub detection (#1400) 2019-01-28 10:46:05 +00:00
README.md Don't schedule command list updates if the server is stopping (#2301) 2020-05-16 18:19:05 +01:00
settings.gradle Change API package to net.luckperms 2019-08-26 18:06:45 +01:00

alt text

LuckPerms

Build Status javadoc Maven Central Discord

LuckPerms is a permissions plugin for Minecraft servers. It allows server admins to control what features players can use by creating groups and assigning permissions.

It is:

  • fast - written with performance and scalability in mind.
  • reliable - trusted by thousands of server admins, and the largest of server networks.
  • easy to use - setup permissions using commands, directly in config files, or using the web editor.
  • flexible - supports a variety of data storage options, and works on lots of different server types.
  • extensive - a plethora of customization options and settings which can be changed to suit your server.
  • free - available for download and usage at no cost, and permissively licensed so it can remain free forever.

For more information, see the wiki article on Why LuckPerms?

The latest downloads & other useful links can be found on the project homepage at luckperms.net.

Building

LuckPerms uses Gradle to handle dependencies & building.

Requirements

  • Java 8 JDK or newer
  • Git

Compiling from source

git clone https://github.com/lucko/LuckPerms.git
cd LuckPerms/
./gradlew build

You can find the output jars in the build/libs directories.

Contributing

Pull Requests

If you make any changes or improvements to the plugin which you think would be beneficial to others, please consider making a pull request to merge your changes back into the upstream project. (especially if your changes are bug fixes!)

LuckPerms loosely follows the Google Java Style Guide. Generally, try to copy the style of code found in the class you're editing.

Project Layout

The project is split up into a few separate modules.

  • API - The public, semantically versioned API used by other plugins wishing to integrate with and retrieve data from LuckPerms. This module (for the most part) does not contain any implementation itself, and is provided by the plugin.
  • Common - The common module contains most of the code which implements the respective LuckPerms plugins. This abstract module reduces duplicated code throughout the project.
  • Bukkit, BungeeCord, Sponge, Nukkit & Velocity - Each use the common module to implement plugins on the respective server platforms.

License

LuckPerms is licensed under the permissive MIT license. Please see LICENSE.txt for more info.