Rangi i uprawnienia na serwerze Minecraft
System rang i uprawnień to fundament każdego poważnego serwera Minecraft. Decyduje o tym, kto może używać jakich komend, kto widzi prefiksy VIP w czacie i jak gracze awansują po kolejnych stopniach hierarchii. Ten poradnik przeprowadzi Cię przez LuckPerms - od instalacji po zaawansowane traki awansu i integrację z Vault.
Czym są uprawnienia w Minecraft
Uprawnienia (ang. permissions) to system kontroli dostępu, który decyduje, co gracz może robić na serwerze. Każda komenda, każda funkcja pluginu, każda możliwość - od otwierania sklepów po teleportację - jest podpięta pod konkretny węzeł uprawnień (ang. permission node).
Węzeł uprawnienia to po prostu ciąg znaków, np. essentials.home, essentials.tpa czy worldedit.selection.pos1. Jeśli gracz ma dany węzeł w swoim profilu uprawnień, może korzystać z tej funkcji. Jeśli nie ma - dostaje komunikat "Nie masz uprawnień".
Uprawnienia przypisuje się zazwyczaj do grup (rang), a nie do pojedynczych graczy. Gracz należący do grupy automatycznie dziedziczy wszystkie jej uprawnienia. Dzięki temu zmiana uprawnień jednej rangi natychmiast wpływa na wszystkich jej członków - zamiast ręcznie modyfikować setki profili.
Skąd wziąć listę węzłów uprawnień?
Każdy plugin dokumentuje własne węzły uprawnień. Szukaj ich w:
- Dokumentacji pluginu na stronie producenta (np. wiki.luckperms.net, essentialsx.net)
- Pliku
plugin.ymlwewnątrz pliku .jar (archiwum ZIP) - sekcjapermissions: - Stronach jak luckperms.net/wiki lub podziałki na SpigotMC
System OP - dlaczego go nie używać na poważnym serwerze
Komenda /op nick nadaje graczowi status operatora - i tu zaczyna się problem. Gracz z OP ma dosłownie wszystkie uprawnienia, bez żadnych wyjątków. Może:
- Banować innych adminów
- Wykonywać komendy WorldEdit na całej mapie
- Pobierać komendy debug z panelu serwera
- Ustawić tryb kreatywny i nabrać dowolnych przedmiotów
- Usunąć całą mapę komendą
/mv deletew Multiverse
Na małym serwerze ze znajomymi - może być OK. Na serwerze z setkami graczy i moderatorami, którym nie w pełni ufasz - to przepis na katastrofę.
Prawidłowe podejście: OP tylko dla właściciela serwera, wszystkie pozostałe rangi skonfigurowane przez LuckPerms. Nawet główny admin powinien mieć precyzyjnie zdefiniowane uprawnienia, a nie darmowy dostęp do wszystkiego.
Zasada minimum uprawnień: Każda ranga powinna mieć tylko te uprawnienia, których faktycznie potrzebuje. Moderator nie musi mieć dostępu do WorldEdit. Builder nie musi mieć /ban. Im mniej uprawnień, tym mniejsze ryzyko nadużyć - czy to przez złośliwość, czy przypadkowy błąd.
LuckPerms - instalacja i pierwsze kroki
LuckPerms to de facto standard wśród pluginów uprawnień dla Minecraft. Zastąpił starsze rozwiązania jak PermissionsEx czy GroupManager i jest aktywnie rozwijany. Obsługuje Paper, Spigot, Fabric, Forge, a nawet proxy (Velocity, BungeeCord).
Instalacja
- Pobierz LuckPerms z
luckperms.net- wybierz wersję odpowiednią dla swojego serwera (Paper/Spigot/Velocity itd.) - Wrzuć plik
.jardo folderuplugins/ - Zrestartuj serwer (lub użyj
/reload confirm, jeśli musisz) - LuckPerms stworzy folder
plugins/LuckPerms/z plikiem konfiguracyjnym
Podstawowy storage
Domyślnie LuckPerms przechowuje dane w plikach H2 (lokalna baza). Dla małych serwerów to wystarczy. Większe instalacje powinny rozważyć MySQL lub MariaDB - konfiguracja w config.yml, sekcja storage-method. Przy sieci BungeeCord/Velocity z wieloma serwerami wspólna baza MySQL jest niezbędna, żeby uprawnienia synchronizowały się między serwerami.
Pierwsze komendy po instalacji
Zaloguj się na serwer i sprawdź, czy plugin działa:
/lp info- wersja i status/lp user twoj_nick info- Twój profil uprawnień/lp group default info- domyślna grupa (do której należą wszyscy)
Domyślnie wszyscy gracze należą do grupy default. To punkt wyjścia dla konfiguracji.
Tworzenie rang - group create
Ranga w LuckPerms to grupa (ang. group). Tworzysz ją komendą:
/lp group create <nazwa>- np./lp group create vip
Nazwy grup pisz małymi literami, bez polskich znaków i spacji. Wyświetlana nazwa (prefiks) może mieć dowolne znaki - o tym za chwilę.
Typowa hierarchia rang na serwerze survivalowym
Przykładowa struktura od najniższej do najwyższej:
- default - niezalogowani i nowi gracze (minimalne uprawnienia)
- gracz - gracze, którzy się zarejestrowali/zalogowali
- vip - ranga płatna lub za aktywność
- svip - Senior VIP, rozszerzone przywileje
- helper - wolontariusze pomagający graczom
- moderator - moderatorzy z uprawnieniami bana/mute
- admin - administratorzy z pełnym dostępem do konfiguracji
- wlasciciel - właściciel serwera (opcjonalnie, może być tylko OP)
Stworzenie wszystkich grup:
/lp group create default/lp group create gracz/lp group create vip/lp group create svip/lp group create helper/lp group create moderator/lp group create admin
Waga grupy (weight)
Każda grupa ma wagę, która decyduje o priorytecie przy wyświetlaniu prefiksu. Ustaw wyższą wagę dla wyższych rang:
/lp group vip meta setweight 10/lp group moderator meta setweight 50/lp group admin meta setweight 90
Waga jest ważna, gdy gracz należy do kilku grup jednocześnie - system wyświetli prefiks grupy z najwyższą wagą.
Dodawanie uprawnień do grup
Podstawowa komenda to /lp group <nazwa> permission set <węzeł> <true/false>.
Przykłady dla grupy gracz
/lp group gracz permission set essentials.home true- ustawienie domu (/home)/lp group gracz permission set essentials.tpa true- teleportacja do gracza (/tpa)/lp group gracz permission set essentials.spawn true- powrót do spawnu/lp group gracz permission set essentials.kit true- kity
Przykłady dla grupy moderator
/lp group moderator permission set essentials.ban true/lp group moderator permission set essentials.kick true/lp group moderator permission set essentials.mute true/lp group moderator permission set essentials.tempban true/lp group moderator permission set essentials.vanish true
Wildcard - uprawnienia zbiorcze
Zamiast dodawać każde uprawnienie z osobna, możesz użyć wildcard (*) dla całego pluginu:
/lp group admin permission set essentials.* true- wszystkie komendy EssentialsX/lp group admin permission set worldedit.* true- pełny WorldEdit
Używaj wildcardów ostrożnie - * obejmuje wszystkie węzły, łącznie z niebezpiecznymi (np. essentials.sudo pozwala wykonywać komendy jako inny gracz).
Negacja uprawnień
Możesz zabrać konkretne uprawnienie, ustawiając je na false. To przydatne, gdy dajesz wildcard grupie, ale chcesz zablokować jedno konkretne uprawnienie:
/lp group moderator permission set essentials.sudo false- blokuje sudo mimo wildcarda
Negacja ma pierwszeństwo przed pozytywnym uprawnieniem na tym samym poziomie hierarchii.
Dziedziczenie rang (inheritance)
Dziedziczenie to jedna z najpotężniejszych funkcji LuckPerms. Zamiast kopiować uprawnienia z jednej grupy do drugiej, niższa ranga dziedziczy uprawnienia wyższej (lub odwrotnie - zależy od konfiguracji).
Prawidłowe podejście: wyższe rangi dziedziczą po niższych. Moderator dziedziczy po graczu, więc automatycznie ma jego uprawnienia plus swoje dodatkowe.
Konfiguracja dziedziczenia
/lp group vip parent add gracz- VIP dziedziczy po gracz/lp group svip parent add vip- SVIP dziedziczy po VIP (i przez VIP po gracz)/lp group moderator parent add gracz- moderator dziedziczy po gracz/lp group admin parent add moderator- admin dziedziczy po moderator
Po tej konfiguracji admin automatycznie ma uprawnienia moderatora, gracza i wszystkich grup w łańcuchu dziedziczenia. Zmiana uprawnień grupy gracz natychmiast wpłynie na VIP, SVIP, moderatora i admina.
Uwaga: Nie twórz pętli dziedziczenia (A dziedziczy po B, B dziedziczy po A). LuckPerms wykryje to i zgłosi błąd, ale lepiej unikać takich sytuacji od razu.
Nadawanie graczowi rangi
Żeby przypisać gracza do grupy:
/lp user Rabus parent set vip- ustawia rangę VIP (usuwa poprzednią rangę)/lp user Rabus parent add moderator- dodaje rangę bez usuwania poprzedniej/lp user Rabus parent remove vip- usuwa rangę
Możesz też nadać rangę na określony czas:
/lp user Rabus parent addtemp vip 30d- ranga VIP na 30 dni
Prefiksy i sufiksy w czacie
Prefiks to tekst wyświetlany przed nickiem gracza w czacie i na liście graczy (TAB). Sufiks pojawia się za nickiem. LuckPerms przechowuje prefiksy jako metadane grup - ale samo ich wyświetlenie wymaga pluginu czatu.
Ustawianie prefiksu grupy
/lp group vip meta setprefix "&6[VIP] "- złoty prefiks [VIP]/lp group moderator meta setprefix "&c[MOD] "- czerwony [MOD]/lp group admin meta setprefix "&4[ADMIN] "- ciemnoczerwony [ADMIN]
Kody kolorów to standardowe kody Minecrafta: &a zielony, &b błękitny, &c czerwony, &6 złoty, &e żółty, &f biały. Jeśli serwer obsługuje MiniMessage (Paper 1.16+), możesz używać <gold>, <red>, <gradient:#ff0000:#0000ff> itd.
Pluginy czatu i TAB
LuckPerms przechowuje prefiksy, ale potrzebujesz osobnego pluginu, który je wyświetli. Popularne opcje:
- TAB - wyświetla prefiksy na liście graczy (klawisz Tab) i nad głowami, bardzo konfigurowalny
- EssentialsX Chat - format czatu z prefiksami, wbudowany w EssentialsX
- LPC (LuckPerms Chat) - lekki plugin czatu stworzony specjalnie pod LuckPerms
- DeluxeChat - zaawansowany format czatu z PlaceholderAPI
Konfiguracja EssentialsX Chat - w pliku config.yml EssentialsX znajdź sekcję chat i ustaw format:
format: '{DISPLAYNAME}&f: {MESSAGE}'- używa displayname, który EssentialsX pobiera z prefiksów LuckPerms
Konteksty (world, server)
Konteksty pozwalają przyznawać uprawnienia lub rangi tylko w określonych warunkach - konkretnym świecie, serwerze sieci lub przez określony czas. To zaawansowana funkcja, ale niezwykle przydatna przy serwerach wieloświatowych.
Kontekst świata
Gracz ma rangę VIP tylko w świecie survival:
/lp user Rabus parent add vip world=survival
Uprawnienie aktywne tylko w konkretnym świecie:
/lp group moderator permission set worldedit.* true world=creative- WorldEdit tylko na worldzie creative
Kontekst serwera (BungeeCord/Velocity)
W sieci serwerów możesz przyznawać uprawnienia tylko na konkretnym serwerze:
/lp user Rabus parent add admin server=lobby- admin tylko na lobby
Wymaga to skonfigurowania server w LuckPerms na każdym podserwerze (plik config.yml, opcja server).
Konteksty w web edytorze
Konteksty najłatwiej konfigurować w web edytorze LuckPerms - graficzny interfejs pokazuje je jako tagi przy każdym uprawnieniu i pozwala je dodawać/usuwać kliknięciem.
Track - ścieżka awansu
Track (ścieżka) to funkcja LuckPerms, która definiuje kolejność rang i pozwala graczom awansować komendą bez ręcznego nadawania rang przez admina. Świetnie sprawdza się przy systemach rangowania za aktywność lub zakup kolejnych poziomów VIP.
Tworzenie tracka
/lp track create gracze- tworzy nowy track "gracze"/lp track gracze append gracz- dodaje rangę gracz jako pierwszą/lp track gracze append vip- VIP jako druga/lp track gracze append svip- SVIP jako trzecia
Podgląd tracka: /lp track gracze info - wyświetli: gracz -> vip -> svip
Awans i degradacja gracza
/lp user Rabus promote gracze- awans o jeden poziom w tracku "gracze"/lp user Rabus demote gracze- degradacja o jeden poziom
Możesz też dać graczowi uprawnienie do samodzielnego awansu przez sklep lub komendę - np. essentials.eco.buy w połączeniu ze sklepem, który wykonuje /lp user {gracz} promote gracze.
Track administracyjny
Warto stworzyć osobny track dla staffu:
/lp track staff create/lp track staff append helper/lp track staff append moderator/lp track staff append admin
Awans przez staff track jest zwykle ręczny - właściciel serwera decyduje, kiedy ktoś dostaje wyższą rangę.
Web editor - graficzny interfejs LuckPerms
Wpisywanie dziesiątek komend w konsoli może być uciążliwe. LuckPerms ma wbudowany web editor - przeglądarkowy interfejs, który pozwala zarządzać wszystkim graficznie.
Jak uruchomić web editor
- Wpisz
/lp editorw konsoli lub na czacie serwera - LuckPerms wygeneruje unikalny link - np.
https://luckperms.net/editor/abc123 - Otwórz link w przeglądarce na komputerze
- Wprowadź zmiany w interfejsie graficznym
- Kliknij "Save" - editor wygeneruje kod do wklejenia
- Wklej wygenerowany kod do konsoli serwera - LuckPerms zastosuje wszystkie zmiany
Co możesz zrobić w web edytorze
- Przeglądać i edytować uprawnienia wszystkich grup naraz
- Dodawać/usuwać węzły uprawnień z autocompletionem
- Konfigurować dziedziczenie (drag & drop)
- Ustawiać prefiksy i sufiksy z podglądem kolorów
- Zarządzać trackami i kontekstami
- Przeglądać profil dowolnego gracza
Uwaga bezpieczeństwa: Link do web editora jest unikalny i wygasa po określonym czasie. Nie udostępniaj go nikomu - daje pełny dostęp do konfiguracji uprawnień serwera. Każda sesja wymaga nowego linku wygenerowanego komendą /lp editor.
Integracja z Vault
Vault to API, które pozwala różnym pluginom komunikować się ze sobą - szczególnie pluginom ekonomii i uprawnień. Większość sklepów, pluginów nagród i systemów rankingowych wymaga Vault do odczytu grup gracza lub nadawania rang.
Instalacja Vault
- Pobierz Vault z SpigotMC i wrzuć do folderu
plugins/ - LuckPerms automatycznie wykryje Vault i zarejestruje się jako provider uprawnień
- Nie potrzebujesz żadnej dodatkowej konfiguracji - Vault + LuckPerms działają "out of the box"
Jak pluginy używają Vault z LuckPerms
Przykłady integracji przez Vault:
- Sklepy (ShopGUI+, UltraShop) - po zakupie mogą dodać gracza do grupy VIP
- Pluginy zadań (Quests) - nagroda za quest to awans w rangu
- PlaceholderAPI - zmienne
%vault_rank%,%vault_prefix%w dowolnym pluginie - DiscordSRV - synchronizacja rang Minecraft z Discord przez Vault
Bezpośrednia integracja LuckPerms API
Jeśli piszesz własny plugin lub skrypt, LuckPerms ma własne Java API (bez Vault). Bardziej precyzyjne i szybsze, ale wymaga znajomości programowania. Dokumentacja na luckperms.net/wiki/developer-api.
Porady dla adminów - typowe błędy i dobre praktyki
Testuj jako inny gracz
Zanim upublicznisz konfigurację rang, przetestuj ją na koncie testowym. Nadaj sobie rangę gracz i sprawdź, czy nowy gracz może robić to, co powinien - i nie może robić tego, czego nie powinien. Wiele serwerów ma za dużo lub za mało uprawnień w domyślnej grupie.
Twórz kopie zapasowe konfiguracji
Folder plugins/LuckPerms/ to Twoja konfiguracja uprawnień. Rób regularne backupy. LuckPerms ma też wbudowany export:
/lp export backup.json.gz- eksportuje całą konfigurację do jednego pliku/lp import backup.json.gz- przywraca z backupu
Unikaj dawania OP moderatorom
Powtórka z podstaw: żaden moderator ani admin (z wyjątkiem właściciela) nie powinien mieć statusu OP. Jeśli moderator potrzebuje nowego uprawnienia, dodaj je do jego grupy przez LuckPerms. OP to nie "więcej uprawnień" - to dosłownie brak jakichkolwiek ograniczeń.
Hierarchia wagi a dziedziczenie
Waga grupy (meta setweight) i dziedziczenie to dwa różne mechanizmy. Waga decyduje tylko o tym, który prefiks wyświetlić gdy gracz ma kilka rang. Dziedziczenie decyduje o tym, jakie uprawnienia gracz otrzymuje. Możesz mieć wysoką wagę bez dziedziczenia i odwrotnie - to niezależne ustawienia.
Wildcard z ostrożnością
Wildcard essentials.* obejmuje m.in. essentials.sudo (wykonuj komendy jako inny gracz), essentials.eco.give (dawaj walutę), essentials.createkit (tworzenie kitów). Przed użyciem wildcarda sprawdź pełną listę węzłów danego pluginu i zastanów się, czy wszystkie są bezpieczne dla danej rangi.
Debugowanie uprawnień
Jeśli gracz dostaje "Nie masz uprawnień", sprawdź jego efektywne uprawnienia:
/lp user Rabus permission check essentials.ban- czy gracz ma konkretne uprawnienie (true/false/undefined)/lp user Rabus permission info- lista wszystkich uprawnień gracza/lp user Rabus meta info- prefiksy, sufiksy, meta gracza/lp verbose on- tryb verbose: loguje każde sprawdzenie uprawnień w czasie rzeczywistym (wyłącz po debugowaniu!)
LuckPerms na sieci serwerów
Przy BungeeCord lub Velocity ustaw wspólną bazę danych (MySQL/MariaDB) dla wszystkich serwerów. Opcja sync-minutes: 3 w config.yml synchronizuje zmiany między serwerami co 3 minuty. Możesz też wymusić synchronizację natychmiast: /lp networksync.