important
Tato stránka neslouží jako dokumentace pluginu. Tato stránka obsahuje shrnutí, ujasnění určitých témat, části na které se často odkazuje apod. Pokud obecně hledáte, jak s pluginem zacházet, jak jej nastavit a jak funguje, vždy byste měli hledat v dokumentaci daného pluginu.
Plugin LuckPerms
LuckPerms je plugin/mód (dále už jen plugin), který umožňuje hráčům a skupinám, do kterých můžou být hráči přiřazeni, nastavovat permise (zjednodušeně řečeno oprávnění na různé příkazy, akce a podobně, více se o permisích dočtete zde).
LuckPerms má skvěle zpracovanou dokumentaci, na které najdete vše, co o pluginu potřebujete potřebujete vědět. Níže naleznete souhrn základů a užitečných informací. V případě, kdy si ani po přečtení dokumentace nebudete s něčím jisti, LuckPerms Discord je ideálním místem, kde si nechat poradit.
Terminologie
Slovo “group(ka)” je ke slovu “rank” synonymum. V textu níže se používají oba výrazy. Běžné je i označení “skupina”.
Základní práce s permisemi
Co to permise jsou a jak konkrétní permise zjistit se dočtete v této části.
Základní práce s LuckPerms
Jak s LuckPerms začít se dočtete na tomto odkaze.
LuckPerms disponuje intuitivním webovým editorem, který můžete otevřít pomocí příkazu lp editor.
Pokud jste zvyklí spravovat permise přes webový editor, může se stát, že k nastavení permisí budete potřebovat příkazy (např. chcete hráči automaticky přidělit rank po zakoupení VIP). Vše co můžete udělat ve webovém editoru lze provést i pomocí příkazu. Veškeré příkazy naleznete s vysvětlením v dokumentaci na následujícím odkaze https://luckperms.net/wiki/Command-Usage
Název groupek
V názvech ranků byste neměli používat:
- tečky
- mezery
- ostatní speciální znaky
- diakritiku
Proč je vysvětleno níže. Vysvětlení není třeba rozumnět, je zde pouze pro zajímavost.
Místo teček a mezer můžete použít například podtržítko či pomlčku.
Toto platí pouze pro názvy ranků (pouze samotný název, který slouží jako identifikátor). V display name, prefixích a podobně už můžete použít libovolné znaky.
Proč nepoužívat tečky a mezery v názvech groupek
Důvodem pro nepoužívání teček je využití knihoven pro čtení Y(A)ML konfigurace. Pokud bychom chtěli v pluginu přečíst hodnotu enable-mobs v následujícím příkladu, zapsali bychom to pomocí tečkové notace jako settings.animals, což v Y(A)ML souboru vypadá následovně:
settings:
enable-mobs: true
Tečky tak problémem být nemusí, ale teoreticky můžou.
Důvodem pro nepoužívání mezer je, jakým způsobem v programování fungují argumenty. V následujícím příkladě:
nejakyprikaz arg0 arg1 arg2 arg3
je nejakyprikaz příkaz a zbytek jsou argumenty. Argumenty se oddělují mezerou. Plugin může fungovat tak, že např. příkaz nejakyprikaz arg0 provede něco skupině arg0. V případě, kdy by se ale skupina jmenovala hlavni helper, je hlavni argument 0 (v programování se většinou indexuje od nuly místo jedničky) a helper argument 1, tudíž příkaz provede něco se skupinou hlavni místo hlavni helper.
Proxy
V případě, kdy chcete mít permise napříč servery synchronizované, je potřeba LuckPerms nastavit pro proxy.
Nastavení pluginu pro proxy je zároveň potřeba k tomu, abyste mohli pracovat s permisemi proxy platformy, tedy například permisí pro příkaz server <server>. Nastavení této permise na serveru s LuckPerms bez nastavení pro proxy nepovolí používání tohoto příkazu.
Jak LuckPerms pro proxy nastavit se dočtete na tomto odkaze.
Pokud nechcete přijít o existující LuckPerms nastavení, je potřeba existující data přemigrovat: https://luckperms.net/wiki/Switching-storage-types (proč tomu tak je se dočtete zde)
Jelikož budou LuckPerms permise propojené, budou v základu nastaveny na všech serverech. Chcete-li nastavit permisi pro specifický server, můžete tak jednoduše udělat pomocí kontextu.
Pozor! LuckPerms na samotném proxy serveru (u backend serverů ano) nepoužívá příkaz lp. U BungeeCordu (tudíž i Waterfallu) je LuckPerms příkaz lpb a u Velocity lpv.
Context/Kontext
Context určuje, při jaké situaci nastavená permise platí (kdy je aktivní). Tato situace může být např. když je hráč v určitém světě, na určitém serveru (v případě, kdy využíváte proxy) a podobně.
Více se dočtete v dokumentaci.
V některých situacích se může hodit plugin https://github.com/LuckPerms/ExtraContexts, který přidává několik nových kontextů. Určitě za to stojí zmínit kontext PlaceholderAPI placeholderů, které se můžou dát využít při mnoho situacích.
Verbose
Často opomíjenou funkcí LuckPerms je Verbose. Tato funkce umožňuje jednoduše sledovat jaké permise byly “zkontrolovány (checked)” v reálném čase. To se může hodit zejména v případě, kdy je Vám znemožněna nějaká akce, ale nevíte, jaký plugin to způsobuje.
Více se o této funkci můžete dočíst v dokumentaci: https://luckperms.net/wiki/Verbose
Accumulate
Ve výchozím nastavení se při nastavení dočasného ranku/permise, kterou již hráč má, nic nestane. To lze v configu změnit. Nastavením temporary-add-behaviour na accumulate se doba trvání v příkazu přičte k existující době trvání (viz
https://luckperms.net/wiki/Configuration#temporary-add-behaviour).
Pokud nechcete toto chování aplikovat automaticky, modifikátor accumulate lze použít i v příkazech viz např. zde.
Váhy
Váha (weight) v LuckPerms je číselná hodnota, která určuje prioritu groupek (a metadat). Čím vyšší číslo, tím vyšší váha (priorita).
Když bude mít hráč groupku default s váhou 0 a vip s váhou 30, primární groupka hráče bude vip, tím pádem se při správném nastavení bude v chatu, tabu, … zobrazovat prefix groupky vip (zkrátka data groupky s nejvyšší váhou). Dále se váhy v pluginu TAB používají k automatickému řazení hráčů v tabu dle groupky apod.
Poznámka: Metadata (prefixy, suffixy, …) a skupiny nutně nemusí sdílet stejnou váhu, ačkoli se při vytvoření groupky automaticky nastaví.
Dědění/Dědičnost
Groupka může dědit permise jiné groupky. Díky dedičnosti se vyhnete opakované práci. Například místo toho, abyste groupce VIP+ znovu nastavovali stejné permise jako má groupka VIP, jednoduše můžete nastavit aby groupka VIP+ permise groupky VIP dědila, a tak bude mít groupka VIP+ automaticky nastavené všechny permise, co má groupka VIP.
Dědictví můžete jednoduše nastavit ve webovém editoru v části Parent groups dané groupky nebo příkazem lp group <groupka1> parent add <groupka2>, který způsobí, že první groupka zdědí všechny permise, která má druhá groupka (viz wiki).
V případě, kdy má nadřazená groupka (groupka která permise dědí) dědickou permisi, kterou nechcete, aby měla, stačí tuto permisi u nadřazené groupky zakázat. Záporná permise má větší váhu.
Default groupka
Jak je popsáno zde, všichni hráči mají v základu nastavenou group default a název této groupky změnit např. na ‘hrac’, ’player“ nebo ’member“ nelze.
Název této groupky slouží pouze pro identifikaci, tím pádem to ničemu nevadí. Display name, prefixy a podobně už můžete nastavit jaké chcete. Eventuelně můžete využít alternativy zmíněné v článku, ale je to zbytečné, jelikož se jedná pouze o identifikační název a na zobrazované názvy ranků nemá jakýkoli vliv.
’parent set“ vs ‘parent add’
Příkaz lp <user> parent set <groupka> hráči nastaví danou groupku a všechny ostatní odebere.
Příkaz lp <user> parent add <user> hráči přidá novou groupku a existující ponechá beze změny.
Primární groupka
Primární groupka hráče je groupka s největší váhou.
Prefixy se nezobrazují
I když v LuckPerms pro rank (group) prefix nastavíte, samotný plugin jej neumí nikde zobrazit. Proto je potřeba využít pluginy, které prefix z LuckPerms vezmou a zobrazí. Více se dočtete zde.
Poznámky
Plugin se nazývá LuckPerms, nikoli LuckyPerms nebo LuckoPerms (jelikož autor se nazývá lucko), jak si někteří lidé pletou.
Veškerá metadata groupek jako dědené groupky, display name, prefix nebo váha jsou samy o sobě permise (group.<group>, displayname, <displayname>, prefix.<váha>.<prefix>, weight.<vaha>), což Vám může trochu připomínat UNIXový “Everything is a file”. To se může v určitých situacích hodit. Například kdybyste chtěli v pluginu DeluxeMenus ukázat (část) menu pouze pro určitou groupku, jednoduše můžete zkontrolovat, zda má hráč permisi group.<groupka>.
To že se ve webovém editoru permise nezobrazí v našeptávači permisí nutně neznamená, že daná permise neexistuje.