LuckPerms je plugin na správu oprávnení. Určuje, kto smie aký príkaz a funkciu, a prideľuje hráčom skupiny ako VIP, Moderátor alebo Admin vrátane prefixu v chate. Prejdeme si, ako oprávnenia fungujú, a potom krok za krokom postavíme kompletnú štruktúru skupín pre bežný server.
Čo budete potrebovať
- Minecraft server s typom Paper alebo Purpur (LuckPerms existuje aj pre Fabric, Forge a NeoForge, rozdiely uvádzame nižšie)
- Prístup do záložiek Konzola a Pluginy (vlastník alebo člen s oprávneniami Konzola a Súbory)
- Pre prefixy v chate: Vault a plugin na formát chatu (napríklad EssentialsX Chat), pozrite Odporúčané pluginy
- Asi 30 minút
Ako oprávnenia fungujú#
| Pojem | Čo to je | Príklad |
|---|---|---|
| Oprávnenie (permission, node) | Text oddelený bodkami, ktorý odomyká jeden príkaz alebo funkciu. Každý plugin má svoje oprávnenia. | essentials.home povolí príkaz /home |
| Hodnota | true oprávnenie dáva, false ho výslovne odoberá. Nenastavené oprávnenie sa zvyčajne správa ako false. | essentials.fly = false |
Zástupný znak * | Dá všetky oprávnenia, ktoré sa začínajú rovnako. | essentials.* = všetky oprávnenia EssentialsX |
| Skupina (group) | Sada oprávnení, ktorú pridelíte hráčom naraz. | vip, moderator, admin |
Skupina default | Patrí do nej automaticky každý hráč. Zmazať ani premenovať sa nedá. | Základné príkazy pre všetkých |
| Dedičnosť (parent) | Skupina preberie oprávnenia inej skupiny. Hráč dedí zo svojich skupín. | moderator dedí z helper |
| Váha (weight) | Číslo priority skupiny. Keď dve skupiny hráča nastavujú to isté oprávnenie rôzne, vyhrá skupina s vyššou váhou. Prefix má vlastnú prioritu (pozrite Prefixy v chate). | admin 400 prebije vip 100 |
| Kontext (context) | Podmienka, kde oprávnenie platí. | world=world_nether, gamemode=creative |
Názvy oprávnení nájdete v dokumentácii každého pluginu. Oprávnenia príkazov samotného Minecraftu majú na Paperi tvar minecraft., napríklad minecraft.command.kick alebo minecraft. (príkaz /tp). Keď oprávnenie nepoznáte, LuckPerms ho dokáže odhaliť sám, pozrite Kontrola a hľadanie chýb.
Inštalácia a úložisko dát#
- V záložke Pluginy › Prechádzať vyhľadajte
LuckPermsa kliknite na Inštalovať (prípadne nahrajte súbor z luckperms.net/download (otvorí sa v novom okne) do priečinkaplugins, pozrite Inštalácia pluginov). - Reštartujte server.
- V konzole overte, že sa LuckPerms zapol (riadok
[LuckPerms] Enabling LuckPerms …bez chýb). Pri prvom štarte si plugin stiahne svoje knižnice, štart preto môže trvať o chvíľu dlhšie.
LuckPerms vytvorí priečinok plugins/LuckPerms s nastaveniami v súbore config.yml. Kam ukladá dáta, určuje voľba storage-method:
Hodnota storage-method | Kde sú dáta | Kedy zvoliť |
|---|---|---|
h2 (predvolená) | Súbor plugins/ (pri starších verziách luckperms-h2.mv.db) | Jeden server. Nič nenastavujete. |
yaml alebo json | Čitateľné súbory v priečinku yaml-storage alebo json-storage | Keď chcete dáta čítať alebo upravovať v súboroch |
mariadb alebo mysql | Databáza zo záložky Databázy | Viac serverov so zdieľanými skupinami (sieť cez Velocity) alebo veľa hráčov |
Pre jeden server nechajte h2. Nastavenie MySQL opisuje článok MySQL pre pluginy. Ak úložisko meníte neskôr, dáta sa neprenesú samy:
- Exportujte ich príkazom
lp export prevod. Vznikne súborplugins/.LuckPerms/ prevod. json. gz - Vypnite server a v
plugins/zmeňteLuckPerms/ config. yml storage-method(pri MySQL aj prihlasovacie údaje). - Spustite server a dáta načítajte príkazom
lp import prevod.json.gz. Názov súboru píšte aj s príponou.json.gz.
Namiesto prevod môžete použiť ľubovoľný názov bez medzier a diakritiky.
Záloha oprávnení
Príkaz lp export zaloha-opravneni uloží všetky skupiny a hráčov do súboru plugins/. Spustite ho pred každou väčšou úpravou. Späť ho načítate príkazom lp import zaloha-opravneni.json.gz (s voľbou --replace na konci nahradí súčasné dáta, bez nej sa dáta zlúčia).
Plné práva pre seba#
Po inštalácii nemá k príkazom LuckPerms prístup nikto okrem konzoly a operátorov. Operátori smú príkazy LuckPerms v predvolenom stave používať (voľba commands-allow-op: true v plugins/).
Pripojte sa na server, aby LuckPerms poznal váš účet.
V záložke Konzola zadajte:
Konzolatext lp user <NICK> permission set luckperms.* truelp– skratka príkazu LuckPerms (dlhý tvar jeluckperms).user <NICK>– upravujeme hráča. Za<NICK>dosaďte svoje herné meno, napríkladSteve.permission set– nastavujeme oprávnenie.luckperms.*– všetky oprávnenia LuckPerms, teda prístup ku všetkým jeho príkazom.true– oprávnenie dať (falseby ho výslovne zakázalo).
V hre potom používate príkazy s lomkou (/lp …), v konzole bez lomky.
Nedávajte si oprávnenie `*`
Oprávnenie * (úplne všetko) vyzerá pohodlne, ale zapne aj oprávnenia, ktoré menia správanie pluginov: obchádzanie ochrany územia, imunitu voči banom, sledovanie súkromných správ a podobne. Ochrana WorldGuardu sa potom tvári, že nefunguje, pretože ju implicitne obchádzate. Pre seba použite skupinu owner s vybranými oprávneniami (nižšie) a k tomu práva operátora.
Vytvorenie skupín a dedičnosti#
Postavíme štruktúru, ktorá sa hodí pre väčšinu serverov:
default
├── vip
└── helper
└── moderator
└── admin
└── ownerKaždá skupina dedí všetko zo skupiny nad sebou. Admin teda vie všetko čo moderátor, moderátor všetko čo helper a všetci všetko čo default. VIP je samostatná vetva, takže VIP nedostane práva tímu.
Vytvorte skupiny aj s váhou. Zadávajte postupne do konzoly:
Konzolatext lp creategroup vip 100 lp creategroup helper 200 lp creategroup moderator 300 lp creategroup admin 400 lp creategroup owner 500creategroup <skupina>– vytvorí prázdnu skupinu. Názvy píšte malými písmenami bez diakritiky a medzier.- Číslo za názvom je váha. Vyššia váha má prednosť. Medzery po stovkách nechávajú miesto na neskoršie skupiny (napríklad
vip-pluss váhou 150).
Nastavte dedičnosť:
Konzolatext lp group vip parent add default lp group helper parent add default lp group moderator parent add helper lp group admin parent add moderator lp group owner parent add admingroup <skupina>– upravujeme skupinu.parent add <rodič>– skupina začne dediť oprávnenia rodiča. Dedičnosť sa reťazí,ownertak získa oprávnenia všetkých skupín pod sebou.
Pomenujte skupiny tak, ako ich uvidia hráči (nepovinné):
Konzolatext lp group moderator setdisplayname ModerátorZobrazovaný názov smie obsahovať diakritiku. Skupinu
defaulttakto môžete premenovať na „Hráč“ bez skutočnej zmeny jej názvu.
Oprávnenia skupinám#
Oprávnenie pridáte príkazom lp group <skupina> permission set <oprávnenie> [true|false] [kontext…]. Keď hodnotu vynecháte, použije sa true.
Základ pre všetkých hráčov (skupina
default), príklad pre EssentialsX:Konzolatext lp group default permission set essentials.home lp group default permission set essentials.sethome lp group default permission set essentials.delhome lp group default permission set essentials.spawn lp group default permission set essentials.tpa lp group default permission set essentials.tpaccept lp group default permission set essentials.tpdeny lp group default permission set essentials.back lp group default permission set essentials.msg lp group default permission set essentials.warp lp group default permission set essentials.warp.listHráči tak dostanú domovy (
/home,/sethome,/delhome), návrat na spawn, žiadosti o teleport (/tpa,/tpaccept,/tpdeny), návrat na posledné miesto (/back), súkromné správy a warpy.VIP s viacerými domovmi a pracovným stolom odkiaľkoľvek:
Konzolatext lp group vip permission set essentials.sethome.multiple lp group vip permission set essentials.sethome.multiple.vip lp group vip permission set essentials.workbench lp group vip permission set essentials.hatPočet domovov pre „vip“ sa nastavuje v
plugins/v sekciiEssentials/ config. yml sethome-multiple(predvolene 5), pozrite Odporúčané pluginy.Tím (helper, moderator, admin):
Konzolatext lp group helper permission set essentials.mute lp group helper permission set essentials.kick lp group helper permission set coreprotect.inspect lp group helper permission set coreprotect.lookup lp group moderator permission set essentials.tempban lp group moderator permission set essentials.vanish lp group moderator permission set essentials.invsee lp group moderator permission set essentials.tp lp group moderator permission set coreprotect.rollback lp group moderator permission set coreprotect.restore lp group admin permission set essentials.ban lp group admin permission set essentials.unban lp group admin permission set essentials.gamemode lp group admin permission set essentials.fly lp group admin permission set worldedit.* lp group admin permission set worldguard.region.* lp group owner permission set luckperms.* lp group owner permission set essentials.*Oprávnenia CoreProtect, WorldEdit a WorldGuard vysvetľuje článok Odporúčané pluginy. Zástupný znak
worldedit.*dá všetky oprávnenia WorldEditu.
Zákaz a výnimky#
Hodnota false oprávnenie výslovne zakáže, aj keď ho skupina dedí. Príklad: hráči v predvolenom stave na Paperi smú vypísať zoznam pluginov príkazom /plugins. Ak ho chcete skryť:
lp group default permission set bukkit.command.plugins falsePríkaz lp group <skupina> permission unset <oprávnenie> nastavenie naopak odoberie úplne (oprávnenie sa vráti do stavu „nenastavené“).
Oprávnenie len niekde: kontexty#
Na koniec príkazu môžete pridať kontext. Oprávnenie potom platí len za danej podmienky:
lp group vip permission set essentials.fly true world=world
lp group default permission set essentials.home false world=pvp_arenaworld=world– VIP smie lietať len vo svete s priečinkomworld(nie v Netheriworld_nether).world=pvp_arena– v aréne nefunguje/home.
Ďalšie kontexty sú gamemode=creative alebo server=<NAZEV_SERVERU> pre siete serverov (názov servera nastavuje voľba server v plugins/).
Dočasné oprávnenie#
lp user <NICK> permission settemp essentials.fly true 1dsettemp pridá oprávnenie na dobu určitú. Dĺžka sa zapisuje ako 30m (minúty), 12h (hodiny), 7d (dni), 1mo (mesiac) alebo kombinácia, napríklad 1mo3d12h.
Prefixy v chate#
Prefix je text pred menom hráča v chate, napríklad [Admin] Steve: ahoj. LuckPerms ho len ukladá. Zobrazí ho až plugin, ktorý formátuje chat (napríklad EssentialsX Chat), a ten si ho prečíta cez plugin Vault. Bez oboch sa prefix v chate neobjaví.
Nastavte prefixy skupinám:
Konzolatext lp group vip meta setprefix 100 "&6[VIP] " lp group helper meta setprefix 200 "&a[Helper] " lp group moderator meta setprefix 300 "&9[Moderátor] " lp group admin meta setprefix 400 "&c[Admin] " lp group owner meta setprefix 500 "&4[Majiteľ] "meta setprefix– nastaví prefix a predchádzajúci prefix skupiny nahradí.- Číslo (
100až500) je priorita prefixu. Keď hráč patrí do viacerých skupín, zobrazí sa prefix s najvyššou prioritou. Moderátor s VIP teda uvidí[Moderátor]. - Text v úvodzovkách je prefix. Úvodzovky sú nutné kvôli medzere na konci, ktorá oddeľuje prefix od mena.
&6,&a… sú farebné kódy (tabuľka nižšie).
Overte, že chatový plugin prefix číta: v konzole zadajte
vault-info. Výpis musí uvádzať LuckPerms ako zdroj oprávnení aj chatu.
| Kód | Farba | Kód | Farba |
|---|---|---|---|
&0 | čierna | &8 | tmavosivá |
&1 | tmavomodrá | &9 | modrá |
&2 | tmavozelená | &a | zelená |
&3 | tyrkysová | &b | svetlomodrá |
&4 | tmavočervená | &c | červená |
&5 | fialová | &d | ružová |
&6 | zlatá | &e | žltá |
&7 | sivá | &f | biela |
&l | tučné | &o | kurzíva |
&n | podčiarknutie | &r | zrušenie formátu |
Formátovacie kódy (&l, &o, &n) dávajte za farebný kód, napríklad &c&l[Admin].
Pridanie hráča do skupiny#
Hráč by sa mal na server aspoň raz pripojiť, aby LuckPerms poznal jeho účet.
lp user <NICK> parent add vipparent add <skupina>– pridá hráčovi skupinu. Ostatné skupiny mu zostanú. Hodí sa pre VIP pri členovi tímu.
lp user <NICK> parent set moderatorparent set <skupina>– nastaví hráčovi len túto skupinu a ostatné mu odoberie. Hodí sa na zmenu hodnosti.
lp user <NICK> parent remove vipparent remove <skupina>– skupinu odoberie. Keď hráč nemá žiadnu inú, vráti sa dodefault.
lp user <NICK> parent addtemp vip 30dparent addtemp <skupina> <doba>– skupina na dobu určitú (tu 30 dní), napríklad pre VIP na mesiac. Po uplynutí ju LuckPerms sám odoberie.
Webový editor#
Namiesto príkazov môžete všetko upraviť v prehliadači.
V konzole zadajte
lp editor.LuckPerms vypíše odkaz. Otvorte ho v prehliadači.
Vľavo vyberte skupinu alebo hráča. Oprávnenie pridáte do poľa Add Permission (editor našepkáva známe oprávnenia), hodnoty upravíte kliknutím do tabuľky. Kontext pridáte tlačidlom Add Contexts.
Kliknite na Save (alebo Ctrl+S).
Editor zobrazí príkaz v tvare
/lp applyedits <KOD>. Kliknutím ho skopírujete.Vložte ho do konzoly bez lomky na začiatku a stlačte Enter.
Konzola vypíše súhrn zmien. Až teraz sa uložili.
Zmeny z editora sa bez applyedits neuložia
Uloženie v prehliadači zmeny na server nepošle. Musíte spustiť vygenerovaný príkaz lp applyedits. Editor pre jednu skupinu otvoríte príkazom lp group <skupina> editor.
V editore sa váha, prefix a rodič zapisujú ako zvláštne oprávnenia: weight.400, prefix.400.&c[Admin] a group.moderator.
Povýšenie po rebríčku (tracks)#
Track je rebríček skupín, po ktorom hráčov povyšujete jedným príkazom. Na dedičnosť nemá vplyv.
Vytvorte track a pridajte doň skupiny v správnom poradí:
Konzolatext lp createtrack tym lp track tym append helper lp track tym append moderator lp track tym append adminPovyšujte a degradujte:
Konzolatext lp user <NICK> promote tym lp user <NICK> demote tympromote– posunie hráča o stupeň vyššie a predchádzajúcu skupinu z tracku mu odoberie. Ak na tracku ešte nie je, dostane prvú skupinu (helper).demote– posunie hráča o stupeň nižšie.
Kontrola a hľadanie chýb#
| Príkaz | Čo ukáže |
|---|---|
lp user <NICK> info | Primárnu skupinu, všetky skupiny hráča, aktuálny kontext a prefix |
lp user <NICK> permission check <oprávnenie> | Či hráč oprávnenie má a odkiaľ ho získal |
lp group <skupina> info | Váhu, rodičov a počet oprávnení skupiny |
lp group <skupina> permission info | Zoznam oprávnení skupiny |
lp group <skupina> listmembers | Hráčov v skupine |
lp user <NICK> meta info | Všetky prefixy hráča zoradené podľa priority |
Keď neviete, aké oprávnenie príkaz potrebuje, použite verbose:
- V konzole zadajte
lp verbose record <NICK>. - Nech hráč v hre spustí príkaz, ktorý nefunguje.
- Zadajte
lp verbose upload. LuckPerms vypíše odkaz na prehľad všetkých kontrol oprávnení. Hľadajte riadky s výsledkomfalse.
Odporúčaná štruktúra pre bežný server#
| Skupina | Váha | Dedí z | Pre koho | Príklady oprávnení |
|---|---|---|---|---|
default | – | – | Každý hráč | essentials.home, essentials.sethome, essentials.spawn, essentials.tpa, essentials.msg |
vip | 100 | default | Podporovatelia | essentials., essentials., essentials.workbench |
helper | 200 | default | Noví členovia tímu | essentials.mute, essentials.kick, coreprotect.inspect |
moderator | 300 | helper | Moderátori | essentials.tempban, essentials.vanish, coreprotect.rollback |
admin | 400 | moderator | Správcovia | essentials.ban, essentials.gamemode, worldedit.* |
owner | 500 | admin | Majiteľ | luckperms.*, essentials.* + práva operátora |
Zásady: dávajte len oprávnenia, ktoré skupina naozaj potrebuje. Nové oprávnenia pridávajte najnižšej skupine, ktorá ich má mať, a vyššie skupiny ich zdedia. Výnimky riešte hodnotou false alebo kontextom, nie kopírovaním oprávnení do viacerých skupín.
LuckPerms na Fabricu, Forge a NeoForge#
LuckPerms existuje aj ako mod. Príkazy sú rovnaké, súbor leží v priečinku mods a nastavenia nájdete v priečinku config v podpriečinku LuckPerms. Rozdiel: Fabric pri príkazoch samotného Minecraftu oprávnenia nekontroluje, takže oprávnenia typu minecraft. na Fabricu bez ďalšieho modu nefungujú. Príkazy modov, ktoré LuckPerms podporujú, fungujú normálne.
Rýchle recepty#
| Chcem… | Príkaz do konzoly |
|---|---|
| Dať hráčovi VIP na 30 dní | lp user <NICK> parent addtemp vip 30d |
| Odobrať hráčovi VIP | lp user <NICK> parent remove vip |
| Urobiť z hráča moderátora (a odobrať mu ostatné skupiny) | lp user <NICK> parent set moderator |
Povoliť VIP lietanie len vo svete lobby | lp group vip permission set essentials.fly true world=lobby |
Zistiť, kto je v skupine admin | lp group admin listmembers |
| Skopírovať skupinu ako základ novej | lp group vip clone vip-plus |
| Premenovať skupinu | lp group vip-plus rename mvp |
| Zmazať skupinu | lp deletegroup mvp |
| Vypísať všetky skupiny | lp listgroups |
| Zálohovať všetky oprávnenia do súboru | lp export zaloha-opravneni |
Za <NICK> dosaďte herné meno hráča. Príkazy v hre píšte s lomkou (/lp …).
LuckPerms v sieti serverov (Velocity)#
Keď prevádzkujete niekoľko serverov prepojených proxy Velocity, chcete zvyčajne rovnaké skupiny všade. Postup v skratke:
- Nainštalujte LuckPerms na každý server aj na proxy (verziu pre Velocity). Na proxy sa príkazy zadávajú ako
lpvnamiestolp. - Vytvorte jednu databázu MariaDB alebo MySQL, ku ktorej sa pripoja všetky inštancie, pozrite MySQL pre pluginy.
- Na každej inštancii upravte
plugins/(pri vypnutom serveri):LuckPerms/ config. yml
| Nastavenie | Čo robí | Odporúčaná hodnota | Kedy zmeniť |
|---|---|---|---|
server | Názov inštancie. Používa sa v kontexte server=… pre oprávnenia len na niektorom serveri. | Krátky názov, napríklad lobby alebo survival | Predvolené global nechajte len pri samostatnom serveri. |
storage-method | Kam LuckPerms ukladá dáta. Všetky inštancie musia používať rovnaké úložisko. | mysql (funguje s MySQL aj MariaDB) | mariadb, ak viete, že databázový server je MariaDB (LuckPerms ju pre MariaDB odporúča). |
data (address, database, username, password) | Prihlasovacie údaje k databáze. Port sa zapisuje do address v tvare host:port. | Údaje zo záložky Databázy | Pri zmene hesla databázy. |
messaging-service | Ako si inštancie oznamujú zmeny, aby sa prejavili hneď. | sql (so spoločnou databázou) | pluginmsg pri malej sieti s jednou proxy, kde je LuckPerms všade. |
- Reštartujte všetky servery aj proxy. Zmena vykonaná na jednom serveri sa potom prejaví aj na ostatných.
Nastavenie samotnej siete opisuje článok Sieť serverov cez Velocity.
Overenie#
- Zadajte
lp user <NICK> infopri testovacom hráčovi. Vo výpise uvidíte jeho skupiny a prefix. - Pripojte sa ako bežný hráč (bez operátora, príkaz
deop <NICK>) a vyskúšajte príkazy, ktoré má skupina vedieť, aj tie, ktoré vedieť nemá. - Napíšte správu do chatu a skontrolujte prefix.
Keď niečo nefunguje#
Po zadaní /lp sa vypíše len verzia pluginu#
Nemáte oprávnenie na žiadny príkaz LuckPerms. Dajte si ho z konzoly príkazom lp user <NICK> permission set luckperms.* true.
Oprávnenia nefungujú, aj keď je hráč v skupine#
- Na serveri je iný plugin na oprávnenia (PermissionsEx, GroupManager a podobne). LuckPerms musí byť jediný, ostatné odoberte.
- Testujete ako operátor. Operátor má oprávnenia pluginov automaticky a výsledok skresľuje. Testujte bez opa.
- Preklep v názve oprávnenia. Overte ho cez
lp verbose(vyššie). - Oprávnenie je niekde nastavené na
false. Príkazlp user <NICK> permission check <oprávnenie>ukáže, odkiaľ hodnota pochádza.
Prefix sa v chate nezobrazuje#
Chýba Vault alebo plugin na formát chatu. Nainštalujte Vault (alebo VaultUnlocked) a EssentialsX Chat a server reštartujte. Pri EssentialsX Chat musí formát chatu obsahovať {DISPLAYNAME} alebo {PREFIX}. Ak hráč vidí iný prefix, než čakáte, porovnajte priority v lp user <NICK> meta info.
Zmeny z webového editora sa neprejavili#
Nespustili ste príkaz lp applyedits <KOD> vygenerovaný po uložení. Uložte znova a príkaz spustite.
lp user hráča nenájde#
Hráč sa na server ešte nepripojil a LuckPerms nepozná jeho účet. Nechajte ho pripojiť sa alebo použite jeho UUID namiesto mena.
Hráč v skupine nemá prefix ani oprávnenia po pridaní cez parent set#
Skontrolujte názov skupiny (lp listgroups). Príkaz parent set so skupinou, ktorá neexistuje, skončí chybou a hráčovi nič nepridá.
Zhrnutie
- Oprávnenia sa dávajú skupinám, hráči ich dedia. Každý hráč je automaticky v skupine
default. - Skupiny vytvárajte s váhou (
lp creategroup admin 400) a prepojte ich cezparent add. - Oprávnenie:
lp group <skupina> permission set <oprávnenie>, hráč do skupiny:lp user <NICK> parent add <skupina>. - Prefix:
lp group <skupina> meta setprefix <priorita> "<text>". Na zobrazenie potrebujete Vault a chatový plugin. - Zmeny z
lp editoruložíte až príkazomlp applyedits. - Oprávnenie
*nikomu nedávajte a testujte bez operátora.