/LuckPerms

A permissions plugin for Minecraft servers.

Primary LanguageJavaMIT LicenseMIT

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.

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

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?

Building

LuckPerms uses Gradle to handle dependencies & building.

Requirements

  • Java 17 JDK or newer
  • Git

Compiling from source

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

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

Tests

There are some automated tests which run during each build.

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, Fabric, Forge, Nukkit, Sponge & 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.