LuckPerms - Part 3: Database Entry
"The story so far..."
If you have followed the steps in part 2 of this series of articles, you have Installed, setup, and configured Luckperms permissions plugin on your Minecraft Server. You have also created a MySQL database on your Nodecraft control panel to store the information that Luckperms will need to check.
Now the last step is actually entering that information info the database. This is probably the step that will take the longest, and is unfortunately the step we can provide the least support for. Much of the information entered will be unique to your server, and you the server administrator will have to create it. This is where you will take steps to enforce the rules you want on your server, what is allowed, and what isn't.
This guide will give you a basic framework on how to enter the information into the database that Luckperms will use to create the groups, add lists of permitted commands to those groups, and then assign users to those groups.
Outline the Groups and Commands Allowed
This was briefly touched on in Part 1 of this series. Now it is time to actually begin fleshing out the structure of the groups on your server.
How many groups? What are they called? What sets them apart? What are their roles? What commands are permitted on your server? What commands are forbidden? What items are forbidden? What areas are off limits? etc, etc, etc. You, the server administrator, will have to answer all of these questions. It all has to be decided by you. This is where you will create much of what sets your server apart from others.
Assign permissions to groups
One of the basic things to remember about permissions plugins is that generally you are only entering a list of allowed commands for groups and users. Whenever a user tries to use a command (or causes any other event that triggers a permission check), Luckperms will see if that command is on the list of commands that they're allowed to use. If it is, the command works. Otherwise it prevents the command from working.
Remember the default answer to all requests is "NO!" You don't need to make a list of things you don't want users to do, Instead make a list of things they are allowed to do. Luckperms will happily say "NO!" to everything else.
Accessing the Database
There are two ways to access the database, now that it is setup and configured. One is built into the control panel on the "MySQL Database" tab of the Nodecraft control panel, and the second method is actually a feature built into Luckperms (another reason to recommend Luckperms over some other permissions plugins).
Nodecraft "MySQL Database" Access
Accessing your MySQL database can be done by clicking on the the "MySQL Database" button on the control panel, and then clicking the blue hypertext link "PHPMyAdmin" to the right of "Web-based Admin Panel".
You will see the following page open in your browser. Use the information on the "MySQL Database" page for "Database Username" and "Database Password" to access the database.
Luckperms Built-in Editor
Luckperms can also access the database from in-game commands (while playing in your Minecraft world), and by using a command "/lp editor" in the console of your Minecraft server, which will start a browser based editor for Luckperms in the console window. It will result in a link in the console window that looks something like the example below:
"[2018-07-14 21:37:37] [pool-4-thread-1/INFO] [net.minecraft.server.dedicated.DedicatedServer]: https://luckperms.github.io/editor/-identifier-"
-identifier- at the end is randomly generated for each session.
Click on the link, and you should see the following open in your browser:
You are now connected to the MySQL database, and can edit information in it.
Resources for Luckperms
There is an incredible amount of online material to help you with using Luckperms, which is one of the reasons we have focused this series of articles on this particular permissions manager. The creators of Luckperms have a wiki, FAQs, and tutorials available on their home site. Below are some links to some of the more helpful sections.
Luckperms Homepage: https://luckperms.github.io/
Luckperms Wiki: https://github.com/lucko/LuckPerms/wiki
List of Commands: https://github.com/lucko/LuckPerms/wiki/Command-Usage
Luckperms Discord: https://discordapp.com/invite/luckperms
IRC: If you use IRC, you can contact Luckperms on the following IRC networks. SpigotMC - irc.spi.gt - #luckperms EsperNet - irc.esper.net - #luckperms
Data Entry Commands
The following are only a small number of the total commands for inputting information into Luckperms. There's no way we can cover all of them here, but these are some to cover the basics: Make a group, give the group permissions, and then assign users to the group.
The following commands can be entered on the command line of the console, on your Nodecraft control panel for your server. Commands are usually proceeded with a forward slash.
Some of these functions can also be done by logging into the database and directly manipulating the data fields by using the dropdown menus.
Refresh Dropdown Menus
Luckperms editor provides a simple to use GUI for database management, with data fields with dropdown menus for much of the data entry. This is not only faster than entering information by hand, but also helps eliminate the chance of mistakes when entering information. When Luckperms first starts, these dropdown menus are mostly empty.
If you type the command "/lp tree" in the console of your Minecraft server, it will create dropdown menus in each of the text boxes, with all the available standard entries available for Luckperms.
When you first begin using Luckperms, this will only include the default choices, but more choices will become available as you create them (and Luckperms makes permissions checks against them). You can run the command again, to refresh the entries in the dropdowns as more choices become available.
/lp creategroup <groupname>
Assign Permissions to Groups and Individual Users
The following commands will add permissions to a group, or to an individual users:
/lp group <name of group> permission set <permission> <true|false> /lp user <name of user> permission set <permission> <true|false>
Add users to groups
/lp user <user> parent add <group>