Discord
Serwery - Administracja

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.yml wewnątrz pliku .jar (archiwum ZIP) - sekcja permissions:
  • 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 delete w 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

  1. Pobierz LuckPerms z luckperms.net - wybierz wersję odpowiednią dla swojego serwera (Paper/Spigot/Velocity itd.)
  2. Wrzuć plik .jar do folderu plugins/
  3. Zrestartuj serwer (lub użyj /reload confirm, jeśli musisz)
  4. 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:

  1. default - niezalogowani i nowi gracze (minimalne uprawnienia)
  2. gracz - gracze, którzy się zarejestrowali/zalogowali
  3. vip - ranga płatna lub za aktywność
  4. svip - Senior VIP, rozszerzone przywileje
  5. helper - wolontariusze pomagający graczom
  6. moderator - moderatorzy z uprawnieniami bana/mute
  7. admin - administratorzy z pełnym dostępem do konfiguracji
  8. 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

  1. Wpisz /lp editor w konsoli lub na czacie serwera
  2. LuckPerms wygeneruje unikalny link - np. https://luckperms.net/editor/abc123
  3. Otwórz link w przeglądarce na komputerze
  4. Wprowadź zmiany w interfejsie graficznym
  5. Kliknij "Save" - editor wygeneruje kod do wklejenia
  6. 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

  1. Pobierz Vault z SpigotMC i wrzuć do folderu plugins/
  2. LuckPerms automatycznie wykryje Vault i zarejestruje się jako provider uprawnień
  3. 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.

Powiązane strony