LuckPerms je plugin pro správu oprávnění. Určuje, kdo smí jaký příkaz a funkci, a přiděluje hráčům skupiny jako VIP, Moderátor nebo Admin včetně prefixu v chatu. Projdeme, jak oprávnění fungují, a pak krok za krokem postavíme kompletní strukturu skupin pro běžný server.
Co budete potřebovat
- Minecraft server s typem Paper nebo Purpur (LuckPerms existuje i pro Fabric, Forge a NeoForge, rozdíly uvádíme níže)
- Přístup do záložky Konzole a Pluginy (vlastník, nebo člen s oprávněními Konzole a Soubory)
- Pro prefixy v chatu: Vault a plugin na formát chatu (například EssentialsX Chat), viz Doporučené pluginy
- Asi 30 minut
Jak oprávnění fungují#
| Pojem | Co to je | Příklad |
|---|---|---|
| Oprávnění (permission, node) | Text oddělený tečkami, který odemyká jeden příkaz nebo funkci. Každý plugin má svá oprávnění. | essentials.home povolí příkaz /home |
| Hodnota | true oprávnění dává, false ho výslovně odebírá. Nenastavené oprávnění se obvykle chová jako false. | essentials.fly = false |
Zástupný znak * | Dá všechna oprávnění, která začínají stejně. | essentials.* = všechna oprávnění EssentialsX |
| Skupina (group) | Sada oprávnění, kterou přidělíte hráčům najednou. | vip, moderator, admin |
Skupina default | Do ní patří každý hráč automaticky. Smazat ani přejmenovat nejde. | Základní příkazy pro všechny |
| Dědičnost (parent) | Skupina převezme oprávnění jiné skupiny. Hráč dědí ze svých skupin. | moderator dědí z helper |
| Váha (weight) | Číslo priority skupiny. Když dvě skupiny hráče nastavují stejné oprávnění různě, vyhraje skupina s vyšší váhou. Prefix má vlastní prioritu (viz Prefixy v chatu). | admin 400 přebije vip 100 |
| Kontext (context) | Podmínka, kde oprávnění platí. | world=world_nether, gamemode=creative |
Názvy oprávnění najdete v dokumentaci každého pluginu. Oprávnění příkazů samotného Minecraftu mají na Paperu tvar minecraft., například minecraft.command.kick nebo minecraft. (příkaz /tp). Když oprávnění neznáte, LuckPerms ho umí odhalit sám, viz Kontrola a hledání chyb.
Instalace a úložiště dat#
- V záložce Pluginy › Procházet vyhledejte
LuckPermsa klikněte na Instalovat (případně nahrajte soubor z luckperms.net/download (otevře se v novém okně) do složkyplugins, viz Instalace pluginů). - Restartujte server.
- V konzoli ověřte, že se LuckPerms zapnul (řádek
[LuckPerms] Enabling LuckPerms …bez chyb). Při prvním startu si plugin stáhne své knihovny, start proto může trvat o chvíli déle.
LuckPerms vytvoří složku plugins/LuckPerms s nastavením v souboru config.yml. Kam ukládá data, určuje volba storage-method:
Hodnota storage-method | Kde jsou data | Kdy zvolit |
|---|---|---|
h2 (výchozí) | Soubor plugins/ (u starších verzí luckperms-h2.mv.db) | Jeden server. Nic nenastavujete. |
yaml nebo json | Čitelné soubory ve složce yaml-storage nebo json-storage | Když chcete data číst nebo upravovat v souborech |
mariadb nebo mysql | Databáze ze záložky Databáze | Více serverů se sdílenými skupinami (síť přes Velocity), nebo hodně hráčů |
Pro jeden server nechte h2. Nastavení MySQL popisuje článek MySQL pro pluginy. Pokud úložiště měníte později, data se nepřenesou sama:
- Exportujte je příkazem
lp export prevod. Vznikne souborplugins/.LuckPerms/ prevod. json. gz - Vypněte server a v
plugins/změňteLuckPerms/ config. yml storage-method(u MySQL i přihlašovací údaje). - Spusťte server a data načtěte příkazem
lp import prevod.json.gz. Název souboru pište i s příponou.json.gz.
Místo prevod můžete použít libovolný název bez mezer a diakritiky.
Záloha oprávnění
Příkaz lp export zaloha-opravneni uloží všechny skupiny a hráče do souboru plugins/. Spusťte ho před každou větší úpravou. Zpět ho načtete příkazem lp import zaloha-opravneni.json.gz (s volbou --replace na konci nahradí současná data, bez ní se data sloučí).
Plná práva pro sebe#
Po instalaci nemá k příkazům LuckPerms přístup nikdo kromě konzole a operátorů. Operátoři příkazy LuckPerms ve výchozím stavu používat smějí (volba commands-allow-op: true v plugins/).
Připojte se na server, aby LuckPerms znal váš účet.
V záložce Konzole zadejte:
Konzoletext lp user <NICK> permission set luckperms.* truelp– zkratka příkazu LuckPerms (dlouhý tvar jeluckperms).user <NICK>– upravujeme hráče. Za<NICK>dosaďte své herní jméno, napříkladSteve.permission set– nastavujeme oprávnění.luckperms.*– všechna oprávnění LuckPerms, tedy přístup ke všem jeho příkazům.true– oprávnění dát (falseby ho výslovně zakázalo).
Ve hře pak používáte příkazy s lomítkem (/lp …), v konzoli bez lomítka.
Nedávejte si oprávnění `*`
Oprávnění * (úplně všechno) vypadá pohodlně, ale zapne i oprávnění, která mění chování pluginů: obcházení ochrany území, imunitu vůči banům, sledování soukromých zpráv a podobně. Ochrana WorldGuardu se pak tváří, že nefunguje, protože ji implicitně obcházíte. Pro sebe použijte skupinu owner s vybranými oprávněními (níže) a k tomu práva operátora.
Vytvoření skupin a dědičnosti#
Postavíme strukturu, která se hodí pro většinu serverů:
default
├── vip
└── helper
└── moderator
└── admin
└── ownerKaždá skupina dědí všechno ze skupiny nad sebou. Admin tedy umí vše co moderátor, moderátor vše co helper a všichni vše co default. VIP je samostatná větev, takže VIP nedostane práva týmu.
Vytvořte skupiny i s vahou. Zadávejte postupně do konzole:
Konzoletext lp creategroup vip 100 lp creategroup helper 200 lp creategroup moderator 300 lp creategroup admin 400 lp creategroup owner 500creategroup <skupina>– vytvoří prázdnou skupinu. Názvy pište malými písmeny bez diakritiky a mezer.- Číslo za názvem je váha. Vyšší váha má přednost. Mezery po stovkách nechávají místo na pozdější skupiny (třeba
vip-pluss vahou 150).
Nastavte dědičnost:
Konzoletext 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 dědit oprávnění rodiče. Dědičnost se řetězí,ownertak získá oprávnění všech skupin pod sebou.
Pojmenujte skupiny tak, jak je uvidí hráči (nepovinné):
Konzoletext lp group moderator setdisplayname ModerátorZobrazovaný název smí obsahovat diakritiku. Skupinu
defaulttakto můžete přejmenovat na „Hráč“ bez skutečné změny jejího názvu.
Oprávnění skupinám#
Oprávnění přidáte příkazem lp group <skupina> permission set <oprávnění> [true|false] [kontext…]. Když hodnotu vynecháte, použije se true.
Základ pro všechny hráče (skupina
default), příklad pro EssentialsX:Konzoletext 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 dostanou domovy (
/home,/sethome,/delhome), návrat na spawn, žádosti o teleport (/tpa,/tpaccept,/tpdeny), návrat na poslední místo (/back), soukromé zprávy a warpy.VIP s více domovy a pracovním stolem odkudkoli:
Konzoletext 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 domovů pro „vip“ se nastavuje v
plugins/v sekciEssentials/ config. yml sethome-multiple(výchozí 5), viz Doporučené pluginy.Tým (helper, moderator, admin):
Konzoletext 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ávnění CoreProtect, WorldEdit a WorldGuard vysvětluje článek Doporučené pluginy. Zástupný znak
worldedit.*dá všechna oprávnění WorldEditu.
Zákaz a výjimky#
Hodnota false oprávnění výslovně zakáže, i když ho skupina dědí. Příklad: hráči ve výchozím stavu na Paperu smějí vypsat seznam pluginů příkazem /plugins. Pokud ho chcete skrýt:
lp group default permission set bukkit.command.plugins falsePříkaz lp group <skupina> permission unset <oprávnění> nastavení naopak odebere úplně (oprávnění se vrátí do stavu „nenastaveno“).
Oprávnění jen někde: kontexty#
Na konec příkazu můžete přidat kontext. Oprávnění pak platí jen za dané podmínky:
lp group vip permission set essentials.fly true world=world
lp group default permission set essentials.home false world=pvp_arenaworld=world– VIP smí létat jen ve světě se složkouworld(ne v Netheruworld_nether).world=pvp_arena– v aréně nefunguje/home.
Další kontexty jsou gamemode=creative nebo server=<NAZEV_SERVERU> pro sítě serverů (název serveru nastavuje volba server v plugins/).
Dočasné oprávnění#
lp user <NICK> permission settemp essentials.fly true 1dsettemp přidá oprávnění na dobu určitou. Délka se zapisuje jako 30m (minuty), 12h (hodiny), 7d (dny), 1mo (měsíc) nebo kombinace, například 1mo3d12h.
Prefixy v chatu#
Prefix je text před jménem hráče v chatu, například [Admin] Steve: ahoj. LuckPerms ho jen ukládá. Zobrazí ho až plugin, který formátuje chat (například EssentialsX Chat), a ten si ho přečte přes plugin Vault. Bez obou se prefix v chatu neobjeví.
Nastavte prefixy skupinám:
Konzoletext 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[Majitel] "meta setprefix– nastaví prefix a předchozí prefix skupiny nahradí.- Číslo (
100až500) je priorita prefixu. Když hráč patří do více skupin, zobrazí se prefix s nejvyšší prioritou. Moderátor s VIP tedy uvidí[Moderátor]. - Text v uvozovkách je prefix. Uvozovky jsou nutné kvůli mezeře na konci, která odděluje prefix od jména.
&6,&a… jsou barevné kódy (tabulka níže).
Ověřte, že chatový plugin prefix čte: v konzoli zadejte
vault-info. Výpis musí uvádět LuckPerms jako zdroj oprávnění a chatu.
| Kód | Barva | Kód | Barva |
|---|---|---|---|
&0 | černá | &8 | tmavě šedá |
&1 | tmavě modrá | &9 | modrá |
&2 | tmavě zelená | &a | zelená |
&3 | tyrkysová | &b | světle modrá |
&4 | tmavě červená | &c | červená |
&5 | fialová | &d | růžová |
&6 | zlatá | &e | žlutá |
&7 | šedá | &f | bílá |
&l | tučně | &o | kurzíva |
&n | podtržení | &r | zrušení formátu |
Formátovací kódy (&l, &o, &n) dávejte za barevný kód, například &c&l[Admin].
Přidání hráče do skupiny#
Hráč by se měl na server aspoň jednou připojit, aby LuckPerms znal jeho účet.
lp user <NICK> parent add vipparent add <skupina>– přidá hráči skupinu. Ostatní skupiny mu zůstanou. Hodí se pro VIP u člena týmu.
lp user <NICK> parent set moderatorparent set <skupina>– nastaví hráči jen tuto skupinu a ostatní mu odebere. Hodí se pro změnu hodnosti.
lp user <NICK> parent remove vipparent remove <skupina>– skupinu odebere. Když hráč nemá žádnou jinou, vrátí se dodefault.
lp user <NICK> parent addtemp vip 30dparent addtemp <skupina> <doba>– skupina na dobu určitou (tady 30 dní), třeba pro VIP na měsíc. Po uplynutí ji LuckPerms sám odebere.
Webový editor#
Místo příkazů můžete všechno upravit v prohlížeči.
V konzoli zadejte
lp editor.LuckPerms vypíše odkaz. Otevřete ho v prohlížeči.
Vlevo vyberte skupinu nebo hráče. Oprávnění přidáte do pole Add Permission (editor našeptává známá oprávnění), hodnoty upravíte kliknutím do tabulky. Kontext přidáte tlačítkem Add Contexts.
Klikněte na Save (nebo Ctrl+S).
Editor zobrazí příkaz ve tvaru
/lp applyedits <KOD>. Kliknutím ho zkopírujete.Vložte ho do konzole bez lomítka na začátku a stiskněte Enter.
Konzole vypíše souhrn změn. Teprve teď se uložily.
Změny z editoru se bez applyedits neuloží
Uložení v prohlížeči změny na server nepošle. Musíte spustit vygenerovaný příkaz lp applyedits. Editor pro jednu skupinu otevřete příkazem lp group <skupina> editor.
V editoru se váha, prefix a rodič zapisují jako zvláštní oprávnění: weight.400, prefix.400.&c[Admin] a group.moderator.
Povýšení po žebříčku (tracks)#
Track je žebříček skupin, po kterém hráče povyšujete jedním příkazem. Na dědičnost nemá vliv.
Vytvořte track a přidejte do něj skupiny ve správném pořadí:
Konzoletext lp createtrack tym lp track tym append helper lp track tym append moderator lp track tym append adminPovyšujte a degradujte:
Konzoletext lp user <NICK> promote tym lp user <NICK> demote tympromote– posune hráče o stupeň výš a předchozí skupinu z tracku mu odebere. Pokud na tracku ještě není, dostane první skupinu (helper).demote– posune hráče o stupeň níž.
Kontrola a hledání chyb#
| Příkaz | Co ukáže |
|---|---|
lp user <NICK> info | Primární skupinu, všechny skupiny hráče, aktuální kontext a prefix |
lp user <NICK> permission check <oprávnění> | Jestli hráč oprávnění má a odkud ho získal |
lp group <skupina> info | Váhu, rodiče a počet oprávnění skupiny |
lp group <skupina> permission info | Seznam oprávnění skupiny |
lp group <skupina> listmembers | Hráče ve skupině |
lp user <NICK> meta info | Všechny prefixy hráče seřazené podle priority |
Když nevíte, jaké oprávnění příkaz potřebuje, použijte verbose:
- V konzoli zadejte
lp verbose record <NICK>. - Ať hráč ve hře spustí příkaz, který nefunguje.
- Zadejte
lp verbose upload. LuckPerms vypíše odkaz na přehled všech kontrol oprávnění. Hledejte řádky s výsledkemfalse.
Doporučená struktura pro běžný server#
| Skupina | Váha | Dědí z | Pro koho | Příklady oprávnění |
|---|---|---|---|---|
default | – | – | Každý hráč | essentials.home, essentials.sethome, essentials.spawn, essentials.tpa, essentials.msg |
vip | 100 | default | Podporovatelé | essentials., essentials., essentials.workbench |
helper | 200 | default | Noví členové týmu | essentials.mute, essentials.kick, coreprotect.inspect |
moderator | 300 | helper | Moderátoři | essentials.tempban, essentials.vanish, coreprotect.rollback |
admin | 400 | moderator | Správci | essentials.ban, essentials.gamemode, worldedit.* |
owner | 500 | admin | Majitel | luckperms.*, essentials.* + práva operátora |
Zásady: dávejte jen oprávnění, která skupina opravdu potřebuje. Nová oprávnění přidávejte nejnižší skupině, která je má mít, a vyšší skupiny je zdědí. Výjimky řešte hodnotou false nebo kontextem, ne kopírováním oprávnění do více skupin.
LuckPerms na Fabricu, Forge a NeoForge#
LuckPerms existuje i jako mód. Příkazy jsou stejné, soubor leží ve složce mods a nastavení najdete ve složce config v podsložce LuckPerms. Rozdíl: Fabric u příkazů samotného Minecraftu oprávnění nekontroluje, takže oprávnění typu minecraft. na Fabricu bez dalšího módu nefungují. Příkazy módů, které LuckPerms podporují, fungují normálně.
Rychlé recepty#
| Chci… | Příkaz do konzole |
|---|---|
| Dát hráči VIP na 30 dní | lp user <NICK> parent addtemp vip 30d |
| Odebrat hráči VIP | lp user <NICK> parent remove vip |
| Udělat z hráče moderátora (a odebrat mu ostatní skupiny) | lp user <NICK> parent set moderator |
Povolit VIP létání jen ve světě lobby | lp group vip permission set essentials.fly true world=lobby |
Zjistit, kdo je ve skupině admin | lp group admin listmembers |
| Zkopírovat skupinu jako základ nové | lp group vip clone vip-plus |
| Přejmenovat skupinu | lp group vip-plus rename mvp |
| Smazat skupinu | lp deletegroup mvp |
| Vypsat všechny skupiny | lp listgroups |
| Zálohovat všechna oprávnění do souboru | lp export zaloha-opravneni |
Za <NICK> dosaďte herní jméno hráče. Příkazy ve hře pište s lomítkem (/lp …).
LuckPerms v síti serverů (Velocity)#
Když provozujete několik serverů propojených proxy Velocity, chcete obvykle stejné skupiny všude. Postup v kostce:
- Nainstalujte LuckPerms na každý server a na proxy (verzi pro Velocity). Na proxy se příkazy zadávají jako
lpvmístolp. - Vytvořte jednu databázi MariaDB nebo MySQL, ke které se připojí všechny instance, viz MySQL pro pluginy.
- Na každé instanci upravte
plugins/(při vypnutém serveru):LuckPerms/ config. yml
| Nastavení | Co dělá | Doporučená hodnota | Kdy změnit |
|---|---|---|---|
server | Název instance. Používá se v kontextu server=… pro oprávnění jen na některém serveru. | Krátký název, například lobby nebo survival | Výchozí global nechte jen u samostatného serveru. |
storage-method | Kam LuckPerms ukládá data. Všechny instance musí používat stejné úložiště. | mysql (funguje s MySQL i MariaDB) | mariadb, pokud víte, že databázový server je MariaDB (LuckPerms ji pro MariaDB doporučuje). |
data (address, database, username, password) | Přihlašovací údaje k databázi. Port se zapisuje do address ve tvaru host:port. | Údaje ze záložky Databáze | Při změně hesla databáze. |
messaging-service | Jak si instance oznamují změny, aby se projevily hned. | sql (se společnou databází) | pluginmsg u malé sítě s jednou proxy, kde je LuckPerms všude. |
- Restartujte všechny servery i proxy. Změna provedená na jednom serveru se pak projeví i na ostatních.
Nastavení samotné sítě popisuje článek Síť serverů přes Velocity.
Ověření#
- Zadejte
lp user <NICK> infou testovacího hráče. Ve výpisu uvidíte jeho skupiny a prefix. - Připojte se jako běžný hráč (bez operátora, příkaz
deop <NICK>) a vyzkoušejte příkazy, které má skupina umět, i ty, které umět nemá. - Napište zprávu do chatu a zkontrolujte prefix.
Když něco nefunguje#
Po zadání /lp se vypíše jen verze pluginu#
Nemáte oprávnění k žádnému příkazu LuckPerms. Dejte si ho z konzole příkazem lp user <NICK> permission set luckperms.* true.
Oprávnění nefungují, i když je hráč ve skupině#
- Na serveru je jiný plugin na oprávnění (PermissionsEx, GroupManager a podobně). LuckPerms musí být jediný, jiné odeberte.
- Testujete jako operátor. Operátor má oprávnění pluginů automaticky a výsledek zkresluje. Testujte bez opa.
- Překlep v názvu oprávnění. Ověřte ho přes
lp verbose(výše). - Oprávnění je někde nastavené na
false. Příkazlp user <NICK> permission check <oprávnění>ukáže, odkud hodnota pochází.
Prefix se v chatu nezobrazuje#
Chybí Vault nebo plugin na formát chatu. Nainstalujte Vault (nebo VaultUnlocked) a EssentialsX Chat a server restartujte. U EssentialsX Chat musí formát chatu obsahovat {DISPLAYNAME} nebo {PREFIX}. Pokud hráč vidí jiný prefix, než čekáte, porovnejte priority v lp user <NICK> meta info.
Změny z webového editoru se neprojevily#
Nespustili jste příkaz lp applyedits <KOD> vygenerovaný po uložení. Uložte znovu a příkaz spusťte.
lp user hráče nenajde#
Hráč se na server ještě nepřipojil a LuckPerms nezná jeho účet. Nechte ho se připojit, nebo použijte jeho UUID místo jména.
Hráč ve skupině nemá prefix ani oprávnění po přidání přes parent set#
Zkontrolujte název skupiny (lp listgroups). Příkaz parent set se skupinou, která neexistuje, skončí chybou a hráči nic nepřidá.
Shrnutí
- Oprávnění se dávají skupinám, hráči je dědí. Každý hráč je automaticky ve skupině
default. - Skupiny tvořte s vahou (
lp creategroup admin 400) a propojte je přesparent add. - Oprávnění:
lp group <skupina> permission set <oprávnění>, hráč do skupiny:lp user <NICK> parent add <skupina>. - Prefix:
lp group <skupina> meta setprefix <priorita> "<text>". K zobrazení potřebujete Vault a chatový plugin. - Změny z
lp editoruložíte až příkazemlp applyedits. - Oprávnění
*nikomu nedávejte a testujte bez operátora.