GameHosting.pl

Notatki operatora

LuckPerms: konfiguracja uprawnień na serwerze Minecraft

Praktyczny przewodnik po LuckPerms: od instalacji na Paper, Spigot i Velocity, przez grupy default/vip/admin, nadawanie uprawnień i dziedziczenie, po prefiksy z meta, edytor web i wybór bazy H2 albo MySQL. Z perspektywy kogoś, kto już raz tłumaczył graczowi, dlaczego „mam VIP-a, a komenda nie działa”.

Opublikowano · ~8 min czytania

W skrócie: LuckPerms to dziś standardowy system uprawnień na serwerach Minecraft, zastępuje ręcznie klepane permissions.yml i stary PermissionsEx. Tworzysz grupy (np. default, vip, admin), nadajesz im uprawnienia komendą lp group ... permission set, a graczy przypisujesz do grup przez lp user ... parent add. Dziedziczenie i wagi (weight) decydują, która grupa wygrywa przy konflikcie. Na jeden serwer wystarczy wbudowana baza H2; przy sieci serwerów za proxy przejdź na MySQL i włącz synchronizację. Edytor web (lp editor) ratuje przy większych zmianach.

Czym jest LuckPerms i po co go używać

LuckPerms to plugin zarządzający uprawnieniami, czyli decydujący o tym, kto może użyć jakiej komendy i jakiej funkcji na serwerze. Sam w sobie nie dodaje żadnych komend gry; daje za to warstwę, na której opierają się prawie wszystkie inne pluginy. Kiedy gracz wpisuje /home, plugin domów pyta LuckPerms: „czy ten gracz ma uprawnienie essentials.home?”. LuckPerms odpowiada tak albo nie, a reszta dzieje się po stronie tamtego pluginu.

Zanim LuckPerms stał się standardem, uprawnienia trzymało się w plikach takich jak permissions.yml albo w konfiguracji PermissionsEx. To działało, ale miało dwie wady, które każdy operator zna na pamięć: jedna źle postawiona spacja w YAML potrafiła wywalić całą konfigurację, a każda zmiana wymagała ręcznej edycji pliku i przeładowania. LuckPerms przenosi to wszystko do bazy danych i pozwala zarządzać uprawnieniami komendami w grze albo przez przeglądarkę, ze zmianami widocznymi od razu, bez restartu serwera.

Najważniejsze powody, dla których warto na niego przejść:

Instalacja

LuckPerms ma osobne wersje pod różne platformy i to pierwsza rzecz, którą trzeba dobrze trafić. Pobierz właściwy build ze strony projektu:

Sama instalacja na pojedynczym serwerze sprowadza się do trzech kroków: wrzuć właściwy .jar do plugins, zrestartuj serwer, sprawdź komendą lp info, czy plugin wstał i jaką bazę danych załadował. Przy starcie LuckPerms domyślnie tworzy sobie lokalną bazę H2 i grupę default, więc od razu masz na czym pracować.

Jeśli budujesz sieć serwerów za proxy, schemat jest taki: wersja proxy ląduje na Velocity albo BungeeCord, a wersja serwerowa na każdym backendzie (lobby, survival, minigry). Żeby wszystkie te instancje widziały te same grupy i rangi, muszą celować w jedną bazę MySQL, o czym niżej. Bez wspólnej bazy każdy serwer ma własny, oddzielny zestaw uprawnień, co prawie zawsze nie jest tym, czego chcesz.

Podstawy: grupy, uprawnienia i gracze

Cała filozofia LuckPerms opiera się na grupach. Zamiast nadawać uprawnienia każdemu graczowi z osobna, definiujesz kilka ról i przypisujesz do nich ludzi. Typowy zestaw na start:

Nadawanie uprawnień grupie

Uprawnienie nadajesz grupie komendą:

Różnica między set ... false a unset jest kluczowa: pierwsze to twarda blokada wygrywająca z dziedziczeniem, drugie to po prostu „nie mam zdania, zdecyduj wyżej”.

Dodawanie graczy do grup

Gracza przypisujesz do grupy jako rodzica (parent):

Możesz też nadać pojedyncze uprawnienie bezpośrednio graczowi przez lp user Steve permission set ..., ale rób to oszczędnie. Uprawnienia per gracz są trudne do ogarnięcia przy większej ekipie; grupy są po to, żeby się nie pogubić.

Dziedziczenie i wagi (weight)

Grupy układają się w drabinę. Jeśli vip dziedziczy po default, a admin po vip, to admin dostaje wszystko z dołu plus własne dodatki. Dziedziczenie ustawiasz dokładnie tak jak u gracza, tyle że na grupie: lp group vip parent add default.

Problem zaczyna się przy konflikcie, gdy dwie grupy nadają temu samemu uprawnieniu różne wartości albo różny prefiks. Rozstrzyga to waga (weight). Grupa o wyższej wadze wygrywa. Wagę ustawiasz przez lp group admin setweight 100. W praktyce warto od razu rozplanować widełki, np. default = 0, vip = 10, moderator = 50, admin = 100, żeby nigdy nie zgadywać, czyj prefiks pokaże się graczowi należącemu do dwóch grup naraz.

Prefiksy i sufiksy z meta

Prefiks (np. [VIP] przed nazwą) i sufiks to nie są zwykłe uprawnienia, tylko metadane. Ustawiasz je osobno:

Tu jedna rzecz, która myli wielu początkujących: sam LuckPerms tylko przechowuje prefiks. To, czy zobaczysz go na czacie albo w tablicy graczy (TAB), zależy od pluginu czatu lub tablicy, który te metadane odczyta, czy to natywnie, czy przez Vault. Jeśli prefiks „nie działa”, prawie zawsze problem leży po stronie pluginu wyświetlającego, a nie LuckPerms.

Najważniejsze komendy

W praktyce 90% pracy załatwisz kilkunastoma komendami. Prefiks /lp to skrót od /luckperms, oba działają tak samo.

KomendaCo robi
lp infoPokazuje wersję pluginu i aktywną bazę danych (H2/MySQL).
lp editorGeneruje jednorazowy link do edytora web do zarządzania wszystkim w przeglądarce.
lp group <grupa> permission set <uprawnienie> trueNadaje grupie uprawnienie.
lp group <grupa> permission unset <uprawnienie>Usuwa uprawnienie z grupy.
lp group <grupa> permission infoListuje wszystkie uprawnienia grupy.
lp group <grupa> parent add <rodzic>Ustawia dziedziczenie po innej grupie.
lp group <grupa> setweight <liczba>Ustawia wagę grupy (wyższa wygrywa przy konflikcie).
lp group <grupa> meta setprefix "..."Ustawia prefiks grupy.
lp user <gracz> parent add <grupa>Dodaje gracza do grupy.
lp user <gracz> parent set <grupa>Ustawia grupę jako jedyną dla gracza.
lp user <gracz> infoPokazuje grupy i uprawnienia konkretnego gracza, najlepsze narzędzie do diagnozy.
lp creategroup <nazwa>Tworzy nową grupę.
lp syncWymusza synchronizację z bazą (przydatne przy sieci serwerów).

Edytor web i baza danych

Przy większych zmianach komendy w czacie szybko stają się męczące. Tu wchodzi lp editor: wpisujesz tę komendę, dostajesz jednorazowy link do edytora w przeglądarce, klikasz, przeciągasz, zaznaczasz uprawnienia, a po zapisaniu zmiany wracają na serwer jednym kliknięciem. Link jest tymczasowy i działa tylko dla Twojej sesji, więc nie współdziel go publicznie. Dla porządkowania całej drabiny grup czy masowego dodawania uprawnień to znacznie wygodniejsze niż wklepywanie dziesiątek komend.

Drugi temat to wybór bazy danych, i to decyzja, którą warto podjąć świadomie na starcie:

Przy sieci serwerów na MySQL koniecznie włącz też messaging (np. tryb sql albo zewnętrzny kanał), żeby zmiana rangi na jednym serwerze od razu rozeszła się na pozostałe. Bez tego każdy serwer odczyta zmianę dopiero przy następnym przeładowaniu lub po komendzie lp sync, a gracz zobaczy nową rangę dopiero po przelogowaniu na inną instancję.

Z doświadczenia: zanim zaczniesz budować drabinę grup, zrób kopię katalogu LuckPerms i wyeksportuj konfigurację komendą lp export nazwa-pliku. Eksport zapisuje wszystkie grupy, uprawnienia i przypisania do jednego pliku, który potem wgrasz na nowym serwerze albo po awarii bazy komendą lp import. Przy migracji z H2 na MySQL ten sam mechanizm przenosi całą konfigurację bez przepisywania komend ręcznie.

Typowe problemy

Jeśli zarządzasz pojedynczym serwerem i nie chcesz samodzielnie pilnować Javy, wersji pluginów i bazy danych, gotowy zarządzany hosting Minecrafta (Java) z obsługą pluginów pozwala wgrać LuckPerms przez panel i menedżer plików, bez grzebania w konfiguracji serwera od zera.

Najczęstsze pytania

Czym LuckPerms różni się od starego permissions.yml?

permissions.yml i PermissionsEx to ręczna edycja YAML, podatna na literówki i błędy wcięć. LuckPerms trzyma wszystko w bazie danych, pozwala zarządzać komendami lub przez edytor web bez restartu i dodaje dziedziczenie, wagi oraz konteksty. To dziś standard.

Czy LuckPerms działa na Velocity i BungeeCord?

Tak, ma osobny build pod proxy. Wersja proxy idzie na Velocity/BungeeCord, a wersje serwerowe na każdy backend. Żeby współdzielić grupy, wszystkie instancje muszą celować w jedną bazę MySQL z włączoną synchronizacją.

Gracz dołączył do grupy, ale dalej nie ma uprawnień. Dlaczego?

Sprawdź lp user gracz info i lp group nazwa permission info, zwróć uwagę na konteksty i wpisy false. Testuj na koncie bez OP, bo operator omija sprawdzanie uprawnień.

H2 czy MySQL: którą bazę wybrać?

H2 wystarczy dla pojedynczego serwera i nie wymaga konfiguracji. MySQL/MariaDB wybierasz przy sieci serwerów za proxy, żeby współdzielić grupy; włącz wtedy messaging dla natychmiastowej synchronizacji.

Jak ustawić prefiks i kolor nazwy gracza?

Prefiks to meta, nie uprawnienie. Ustawiasz go przez lp group nazwa meta setprefix z kodami kolorów. Wyświetlanie zapewnia plugin czatu lub tablicy odczytujący meta z LuckPerms.

Powiązane