RE:NODE

EssentialsX config.yml: nastavení, na kterém záleží

Text: Tým RE:NODE
15 min čtení


Soubor config.yml v EssentialsX má kolem 1 400 řádků a na typickém survival serveru z nich potřebuješ změnit možná dvacet. Na těch záleží nejvíc: cooldown a rozcestí teleportu, rangy domovů v sethome-multiple, blok ekonomiky (starting-balance, currency-symbol, min-money, max-money), format a group-formats chatu a klíče spawnu, které rozhodují, kde nový hráč přistane. Několik sekcí nedělá nic, pokud není nainstalovaný odpovídající modul, a většina změn se projeví po /essentials reload - ale ne všechny. Tento návod prochází soubor v pořadí, v jakém ho budeš doopravdy upravovat, se skutečnými výchozími hodnotami z aktuální konfigurace verze 2.x, a upozorňuje na místa, kde se komentáře v souboru snadno špatně pochopí.

Kde config.yml leží a které moduly konfiguruje#

Po prvním spuštění vytvoří EssentialsX svou složku vedle všech ostatních pluginů:

code
plugins/Essentials/  config.yml      the file this guide is about  kits.yml        kit contents, including the 'tools' first-join kit  worth.yml       sell prices for /sell and /worth  spawn.yml       spawn points set with /setspawn  userdata/       one YAML file per player: balance, homes, nickname  warps/          one file per warp

Hlavní jar odvádí většinu práce: domovy, warpy, teleporty, kity, ekonomiku, přezdívky, AFK i poštu. Všechno ostatní je samostatný modul v podobě jaru, který se stahuje ze stejného místa jako jádro a musí mít přesně stejnou verzi. Nesouhlasící modul je častou příčinou chybového výpisu při startu po aktualizaci.

ModulCo přidáváSekce v config.yml
EssentialsX ChatFormátování chatu, poloměr lokálního chatuchat:
EssentialsX Spawn/spawn, /setspawn, obsluha prvního připojenínewbies: a klíče spawnu
EssentialsX ProtectPřepínače poškození, výbuchů a fyzikyprotect: (prevent, disable)
EssentialsX AntiBuildOprávnění ke stavění, blacklisty předmětůprotect: (alert, blacklist)
EssentialsX GeoIPZemě při přihlášení a v /whoisvlastní plugins/EssentialsGeoIP/config.yml
EssentialsX DiscordMost mezi chatem a Discordemvlastní složka

Důležitý je v té tabulce pravý sloupec. Sekce chat: je v hlavní konfiguraci, ať máš modul Chat, nebo ne, a úprava bez nainstalovaného jaru Chat nedělá vůbec nic - žádné varování, nastavení se prostě nikdy nepřečte. Pokud se zdá, že se změna ignoruje, zkontroluj nejdřív, jestli je modul ve složce plugins/, a teprve pak cokoli jiného. Instaluj jen moduly, které používáš; každý z nich registruje listenery na serveru, který běží s herní logikou v jednom vlákně. Širší otázku, co nainstalovat, řeší Minecraft pluginy, které stojí za instalaci.

Hlavička souboru uvádí pravidla YAML, která stojí za to znát před první úpravou: jen mezery, nikdy tabulátory; odsazení je struktura; apostrof uvnitř textu v jednoduchých uvozovkách se píše dvakrát (don''t); text se symboly patří do uvozovek; a pokud používáš písmeno s diakritikou nebo jiný symbol měny než $, musí být soubor uložený jako UTF-8, ne ANSI.

Teleporty: cooldowny, rozcestí a bezpečnost#

Čtyři klíče určují, jak se teleportování hráčům jeví, a je to první věc, které si všimnou.

plugins/Essentials/config.yml
teleport-safety: trueteleport-cooldown: 0teleport-delay: 0teleport-invulnerability: 4tpa-accept-cancellation: 120

teleport-cooldown je odstup v sekundách, který musí uplynout mezi teleporty. Je to jeden společný časovač pro /home, /tp, /spawn, /warp a ostatní, ne zvláštní časovač na každý příkaz, takže při cooldownu 30 sekund hráč, který právě šel domů, nemůže 30 sekund použít ani /spawn. Na survival serveru hodnota mezi 10 a 60 zastaví spamování teleportů, aniž by působila jako trest.

teleport-delay je rozcestí: hráč musí tolik sekund stát na místě, než k teleportu dojde, a pohyb nebo útok ho zruší. Tohle nastavení brání tomu, aby někdo unikl z boje pomocí /home, a na PvP serveru je mnohem důležitější než cooldown. Obvyklý rozsah jsou tři až pět sekund; nad deset hráči přestanou domovy používat a začnou stavět nether dálnice, což může být přesně to, co chceš.

teleport-invulnerability dává po teleportu příkazem pár sekund, během nichž hráč nemůže být zraněn jinými hráči ani jim ublížit. Je tu proto, aby /tpa doprostřed boje neznamenalo okamžitou smrt a aby se to nedalo zneužít k přepadení.

teleport-safety rozhoduje, co se stane, když je cíl nebezpečný - láva, propast, uvnitř bloku. S hodnotou true Essentials přesune hráče na nejbližší bezpečné místo; s false se teleport zruší s varováním. Nech to zapnuté. tpa-accept-cancellation určuje, jak dlouho čeká žádost /tpa, než vyprší.

Tři oprávnění tato pravidla pro staff obcházejí:

OprávněníÚčinek
essentials.teleport.cooldown.bypassIgnoruje teleport-cooldown
essentials.teleport.timer.bypassPřeskočí rozcestí teleport-delay
essentials.teleport.timer.moveMůže se během rozcestí pohybovat bez zrušení

Dávej je skupinám, ne jednotlivcům - návod k LuckPerms vysvětluje dědičnost, aby skupina VIP, která přeskakuje rozcestí, nepředala nenápadně bypass skupině, kterou jsi tak nezamýšlel.

Pokud chceš různé cooldowny pro různé příkazy, teleport-cooldown není správný nástroj. Novější blok command-cooldowns nastavuje cooldown pro každý příkaz zvlášť, funguje i pro příkazy z jiných pluginů a ve výchozím stavu přežije restart (command-cooldown-persistence: true):

yaml
command-cooldowns:  home: 30  spawn: 10  tpr: 600

Příkazy se píšou bez lomítka. Fungují zástupné znaky a klíč začínající znakem ^ se bere jako regulární výraz.

Domovy a limity sethome-multiple#

Limit domovů je nastavení, které se nejčastěji konfiguruje špatně, protože závisí na dvou oprávněních, ne na jednom.

yaml
sethome-multiple:  default: 3  vip: 5  staff: 10

Názvy pod sethome-multiple jsou rangy domovů a nemusí odpovídat tvým skupinám oprávnění. Hráč dostane víc než jeden domov, jen pokud má essentials.sethome.multiple; s tímto nodem samotným dostane počet z default. Aby získal číslo pro daný rang, potřebuje zároveň essentials.sethome.multiple a essentials.sethome.multiple.vip. Hráč, který má node rangu, ale ne základní node, zůstane na jednom domově, a to je zdroj téměř každého vlákna „nastavil jsem VIP na 5 domovů a oni mají pořád 1“. essentials.sethome.multiple.unlimited limit úplně odstraní.

Funkční nastavení pro tři úrovně vypadá takto, v řeči LuckPerms:

code
$ lp group default permission set essentials.sethome.multiple true$ lp group vip permission set essentials.sethome.multiple.vip true$ lp group staff permission set essentials.sethome.multiple.staff true

Pozdější snížení limitu už nastavené domovy nesmaže; jen zabrání hráčům nastavit další. Pokud limit snižuješ v rámci wipe nebo přebalancování, řekni to předem.

Ostatní klíče pro domovy jsou malé, ale stojí za rozhodnutí:

  • spawn-if-no-home: true pošle na spawn hráče, který napíše /home bez nastaveného domova. Nastav false, pokud má /home jednoduše selhat.
  • confirm-home-overwrite: false - zapni to, protože /sethome se stávajícím názvem ho přepíše bez ptaní a hráči to dělají omylem.
  • world-home-permissions: false - nastav na true spolu s essentials.worlds.<worldname>, aby lidé nemohli pomocí /home přejít do světa, kam se dostat nemají. Na serveru s kreativním světem vedle survivalu takhle unikají inventáře mezi nimi; širší problém řeší provoz více světů s Multiverse.

Zpoplatnění domovů patří do command-costs, o čemž je řeč dál.

Blok ekonomiky#

Ekonomika je součástí hlavního jaru. Designovou stránku - Vault, pluginy obchodů, zdroje a propady peněz, přesun zůstatků do databáze - pokrývá návod k ekonomice EssentialsX a Vault. Tato sekce jsou jen klíče a jejich výchozí hodnoty.

plugins/Essentials/config.yml
starting-balance: 0command-costs:  home: 50  sethome: 500  back: 100  kit-tools: 1500currency-symbol: '$'currency-symbol-suffix: falsemax-money: 10000000000000min-money: -10000economy-log-enabled: falseminimum-pay-amount: 0.001

starting-balance se vyplatí jednou, když se při prvním připojení hráče vytvoří jeho soubor v userdata. Pozdější změna nic nezmění těm, kdo se už připojili.

currency-symbol může být jakýkoli znak, pokud je soubor uložený jako UTF-8 - symbol libry nebo eura v souboru uloženém jako ANSI se ve hře zobrazí jako otazník nebo změť znaků. Pro symboly psané za číslem nastav currency-symbol-suffix: true. Formát čísel je samostatná věc: odkomentuj currency-format: "#,##0.00" pro řízení desetinných míst a currency-symbol-format-locale (například de-DE pro 1.234,50) pro to, který znak odděluje tisíce.

min-money má výchozí hodnotu -10000 a jeho komentář vysvětluje, co to znamená: hráč může jít do minusu, jen pokud má essentials.eco.loan. Ve výchozím stavu tedy nikdo není v dluhu, ale spodní hranice je tu pro ty, kterým půjčky povolíš. Nastavení na 0 vypne přečerpání úplně, ať jsou oprávnění jakákoli. max-money má výchozí hodnotu deset bilionů; soubor sám varuje, že extrémně velká čísla mohou mít nezamýšlené důsledky, a strop, kterého by hráč mohl skutečně dosáhnout, je užitečnější číslo.

command-costs účtuje za každé použití. Klíč je název příkazu a kity používají kit-<name>. Režimy křiku a otázek z modulu Chat se dají zpoplatnit jako chat-shout a chat-question. Kdo má essentials.nocommandcost.<command> nebo essentials.nocommandcost.all, neplatí nic, a zástupný znak jako essentials.* u skupiny staffu je zahrnuje - ceny proto testuj s obyčejným účtem.

Zbytek bloku ve stručnosti:

KlíčVýchozíCo dělá
economy-log-enabledfalseLoguje obchody přes cedulky a /sell do trade.log
economy-log-update-enabledfalseLoguje i každou transakci Vaultu - hlučné
pay-excludes-ignore-listfalseBlokuje /pay někomu, kdo tě ignoruje
show-zero-baltoptrueZobrazuje prázdné zůstatky v /baltop
baltop-requirements0, 0Minimální zůstatek a herní čas pro zařazení do seznamu
baltop-entry-limit-1Omezuje počet cachovaných záznamů baltop na velkých serverech

Komentář k economy-log-update-enabled v souboru říká, že log rychle zaplní a je určený k testování; při běžném provozu ho nech vypnutý. Po změně show-zero-baltop spusť /baltop force, protože seznam je cachovaný.

sell-multipliers umožňuje rangu prodávat dráž než podle ceny z worth.yml: default: 1.0, double: 2.0 a oprávnění essentials.sell.multiplier.<rank>. Je to zdroj peněz. Dvojnásobný násobič u předmětu, který jde farmit, zdvojnásobí tempo, jakým peníze vstupují na server, tak podle toho nacenuj.

Formátování chatu s EssentialsX Chat#

Nic z toho nefunguje bez modulu Chat. S ním sekce chat: řídí formát a dosah každé zprávy.

yaml
chat:  radius: 0  format: '<{DISPLAYNAME}> {MESSAGE}'  group-formats:    default: '&7{DISPLAYNAME}&7:&r {MESSAGE}'    admin: '&c[{GROUP}]&r {DISPLAYNAME}&7:&f {MESSAGE}'  world-aliases:    world_nether: "&cN&r"

radius: 0 je globální chat. Jakékoli jiné číslo udělá chat lokální do daného počtu bloků. Hráči s essentials.chat.shout se pořád dostanou ke všem, když zprávu začnou znakem !, ti s essentials.chat.question znakem ? a essentials.chat.spy vidí všechno bez ohledu na vzdálenost. Lokální chat mění charakter serveru víc než jakékoli jiné jednotlivé nastavení - tiché servery s ním působí prázdně, takže ho zapni, jen pokud je dost lidí, aby mohly vzniknout rozhovory v okolí.

Zástupné symboly, které doopravdy použiješ, jsou {DISPLAYNAME}, {USERNAME}, {NICKNAME}, {PREFIX}, {SUFFIX}, {GROUP}, {WORLDNAME} a {WORLD} (alias z world-aliases), plus {MESSAGE}.

Do dvou pastí spadne skoro každý:

  • Dvojité prefixy. {DISPLAYNAME} už obsahuje prefix a suffix z tvého pluginu oprávnění. Formát {PREFIX} {DISPLAYNAME} vypíše rang dvakrát. Použij samotné {DISPLAYNAME}, nebo {PREFIX}{NICKNAME}{SUFFIX}, pokud je chceš rozmístit sám.
  • Názvy skupin rozlišují velikost písmen. Klíč pod group-formats musí přesně odpovídat názvu skupiny - a pokud má skupina v LuckPerms nastavený zobrazovaný název, Essentials vidí právě ten. Formát, který se nikdy neuplatní, je skoro vždy věc velkého písmena nebo zobrazovaného názvu.

Prefixy přicházejí z LuckPerms přes Vault, takže oba musí být nainstalované, aby {PREFIX} něco zobrazilo. Barevné kódy ve formátu používají &; zda hráči smějí používat barvy ve svých zprávách, určují samostatná oprávnění. paper-chat-events: true používá moderní chatové události Paperu a je to jediné nastavení chatu, jehož změna vyžaduje úplný restart - vypni ho, jen pokud se kryje s jiným chatovým pluginem.

Pokud propojuješ chat s Discordem, Discord si drží vlastní formát; alternativu k modulu Essentials popisuje DiscordSRV a integrace Discordu.

Spawn, první připojení a respawn#

Modul Spawn má na starosti tři okamžiky: první připojení hráče, každé další připojení a respawn po smrti.

yaml
newbies:  announce-format: '&dWelcome {DISPLAYNAME}&d to the server!'  spawnpoint: newbies  kit: toolsspawn-on-join: falserespawn-at-home: falserespawn-at-home-bed: truerespawn-at-anchor: falserespawn-listener-priority: highspawn-join-listener-priority: high

Spawny nastavuj ve hře, ne v souboru. Postav se tam, kde se mají všichni objevit, a spusť /setspawn; postav se na místo příchodu nových hráčů a spusť /setspawn newbies. Právě to druhé jméno je to, na co odkazuje spawnpoint: newbies. Pokud zvláštní spawn pro nováčky nechceš, nastav spawnpoint: none a noví hráči použijí spawn světa. /setspawn <group> funguje pro libovolný název skupiny, díky čemuž může staff přicházet jinam než všichni ostatní.

kit: tools rozdá při prvním připojení kit tools z kits.yml, bez ohledu na cenu, oprávnění nebo cooldown kitu. Zkontroluj, že kit opravdu obsahuje, co chceš; výchozí je startovní sada a kit při prvním připojení je sám o sobě malým zdrojem předmětů. announce-format nastavený na '' vypne uvítací oznámení.

spawn-on-join je nastavení „spawn při připojení“, které lidé hledají. Hodnota true pošle každého hráče na spawn při každém přihlášení; přijímá také název skupiny nebo seznam skupin, takže na spawn můžeš poslat jen hráče ze default, zatímco hráči s rangem se přihlásí tam, kde skončili:

yaml
spawn-on-join:  - default  - guests

Kdo má essentials.spawn-on-join.exempt, zůstane tam, kde se odhlásil. Na lobby nebo hubu by to mělo být true; na survival serveru je to obvykle false, protože vracení na spawn při každém přihlášení otravuje, jakmile mají lidé základnu.

Respawn určují klíče respawn-at-. respawn-at-home: true pošle mrtvého hráče k jeho prvnímu domovu, nebo k posteli, pokud je zapnuté i respawn-at-home-bed. respawn-at-anchor určuje, zda se respektují respawn anchory v Netheru.

Dvě priority listenerů jsou místem, kde se Essentials potkává s jinými pluginy, které také přesouvají hráče. Pokud má o respawnu hráčů rozhodovat Multiverse nebo plugin lobby, nastav respawn-listener-priority: lowest; none dává vanilla chování; highest vynutí, aby vyhrál Essentials. Obě priority se mění jen úplným restartem.

AntiBuild a GeoIP#

AntiBuild je modul, který dokáže zamknout lidi venku z jejich vlastního serveru. Jeho hlavní přepínače jsou pod protect: v hlavní konfiguraci:

yaml
protect:  disable:    build: true    use: true    warn-on-build-disallow: true  alert:    on-placement: LAVA,TNT,LAVA_BUCKET    on-use: LAVA_BUCKET    on-break:  blacklist:    placement: LAVA,TNT,LAVA_BUCKET    usage: LAVA_BUCKET    break:    piston:    dispenser:

S nainstalovaným jarem AntiBuild a build: true (výchozí) nemůže nikdo bez essentials.build pokládat ani ničit bloky a s use: true nemůže ani používat předměty. To je správně na serveru, kde musí být noví hráči schváleni, než začnou stavět, a katastrofa, pokud jsi jar jen přihodil, protože byl ve stejném stažení. Buď dej essentials.build skupině default, nebo nastav build i use na false a AntiBuild nech jen kvůli blacklistům.

Blacklisty berou názvy materiálů z Bukkitu oddělené čárkou. placement a usage mají výchozí hodnotu láva a TNT; break může chránit například BEDROCK a piston a dispenser brání těmto strojům v posunutí nebo vystřelení materiálu. essentials.protect.exemptplacement, exemptusage a exemptbreak propouštějí staff. Seznamy alert posílají zprávu každému s essentials.protect.alerts, když někdo položí nebo použije uvedený materiál, což je levné včasné varování před griefingem lávou. Pro jemnější řízení existují nody pro jednotlivé materiály, například essentials.build.place.<material>. AntiBuild je tupý nástroj; skutečnou ochranu proti griefu s claimy a logy bloků najdeš v ochraně před griefem a anti-cheatu.

Modul Protect sdílí stejnou sekci protect:, pod prevent: a přepínači poškození v disable: (fall, pvp, drown, lavadmg a další). Vypnutí PvP pro celý server je protect.disable.pvp: true.

GeoIP má vlastní soubor, plugins/EssentialsGeoIP/config.yml:

plugins/EssentialsGeoIP/config.yml
database:  show-cities: false  download-if-missing: true  license-key: ""  update:    enable: true    by-every-x-days: 30show-on-login: trueshow-on-whois: true

Používá databázi GeoLite2 od MaxMindu, kterou už nejde stáhnout anonymně. Vytvoř si bezplatný účet MaxMind, vygeneruj licenční klíč a vlož ho do license-key; bez něj stahování selže a modul při každém startu zaloguje chybu. Jakmile to funguje, staff s essentials.geoip.show vidí zemi každého hráče při přihlášení a v /whois a essentials.geoip.hide udrží polohu hráče mimo.

Než ho nainstaluješ, zamysli se. Ukazovat staffu, odkud se hráči připojují, jsou osobní údaje, na malém serveru se to málo kdy hodí a za proxy hlásí pro všechny polohu proxy, pokud se nepřeposílají IP hráčů - to řeší nastavení v sítích proxy Velocity.

Reload a kdy je potřeba restart#

Hlavička souboru to říká jasně: po úpravě spusť /essentials reload (nebo /ess reload). Z konzole serveru se příkaz píše bez lomítka - essentials reload - protože konzole je vstup serveru, ne chatovací okno. Tím se znovu načte config.yml, kity, worth a jazykové soubory, aniž by se sáhlo na zbytek serveru.

Některé změny se po reloadu neprojeví:

  • respawn-listener-priority a spawn-join-listener-priority - jejich komentáře říkají restart.
  • chat.paper-chat-events - restart.
  • Přidání, odebrání nebo aktualizace libovolného jaru modulu - restart.
  • show-zero-baltop - reload, pak /baltop force.

Nikdy nepoužívej celoserverový /reload ani správce pluginů, který načítá jary za běhu. Znovu načte všechny pluginy najednou, včetně Essentials, a nechá listenery a úlohy napůl zaregistrované tak, že to vypadá jako chyba v tom pluginu, který se rozbije první. Paper před tím v konzoli varuje z dobrého důvodu. Restart trvá pár sekund.

Reload, který jako by nic nedělal, obvykle znamená, že se YAML nepodařilo načíst. Sleduj konzoli, když ho spouštíš: tabulátor, chybějící mezera za dvojtečkou nebo neošetřený apostrof vyvolá chybu s názvem řádku a Essentials tvou úpravu neaplikoval. Na RE:NODE editor ve správci souborů zvýrazňuje syntaxi YAML, což zachytí většinu chyb v odsazení ještě před uložením, a konzole ukazuje výstup reloadu živě. Před větší úpravou si v panelu udělej backup - obnova je jedno tlačítko - a vedle něj si ponech kopii fungujícího config.yml. Zálohování a obnova světa Minecraftu popisuje, co dalšího do té zálohy patří.

Řešení potíží#

Nastavení se ignoruje úplně. Chybí jeho modul, nebo se YAML nenačetlo. Sekce chat:, newbies: a protect: všechny závisejí na jarech modulů.

Hráči mají jeden domov bez ohledu na rang. Mají node rangu, například essentials.sethome.multiple.vip, bez základního nodu essentials.sethome.multiple. Potřebují oba.

Rangy se v chatu zobrazují dvakrát. Formát používá dohromady {PREFIX} a {DISPLAYNAME}. Vyhoď {PREFIX}.

Formát skupiny se nikdy neuplatní. Velikost písmen, nebo zobrazovaný název v LuckPerms. Spusť lp user <name> info a název skupiny zkopíruj přesně.

Po aktualizaci nikdo nemůže stavět. AntiBuild se nainstaloval spolu s ostatními moduly. Dej essentials.build skupině default, nebo nastav protect.disable.build a use na false.

Symbol měny se zobrazuje jako otazník. Soubor byl uložený jako ANSI. Ulož ho jako UTF-8 a proveď reload.

Teleporty se pořád ruší. To je teleport-delay v akci: hráč se pohnul nebo byl zasažen. Dej staffu essentials.teleport.timer.move, pokud se potřebuje pohybovat.

Noví hráči nepřicházejí na spawn pro nováčky. Nikdy se nespustilo /setspawn newbies, nebo místo připojení řeší jiný plugin. Zkontroluj spawn-join-listener-priority a po změně restartuj.

FAQ#

Je ekonomika EssentialsX ve výchozím stavu zapnutá?

Ano. Ekonomika je součástí hlavního jaru a funguje od prvního spuštění, bez modulu k instalaci. Zůstatky, /pay, /balance a /baltop fungují hned; ostatní pluginy se k ní dostanou přes Vault.

Použije /essentials reload každou změnu?

Většinu. Priority listenerů, paper-chat-events a jakákoli změna nainstalovaných jarů modulů potřebují úplný restart. Všechno v sekcích ekonomiky, teleportů, domovů a formátu chatu se projeví po reloadu.

Jak hráčům zabránit v používání /back po smrti?

Místa smrti se pro /back zaznamenávají jen hráčům s essentials.back.ondeath. Nech tento node mimo skupinu default, nebo dej na back v command-costs cenu, pokud ho chceš mít dostupný, ale drahý.

Můžu nastavit jiný spawn pro každý rang?

Ano. Postav se na každé místo a spusť /setspawn <group> s názvem skupiny. Hráči se posílají na spawn své skupiny, a když žádný není, na výchozí spawn.

Potřebuju modul GeoIP?

Zřídka. Ukazuje staffu zemi každého hráče, což pomáhá proti obcházení banů na velkém veřejném serveru, a jsou to osobní údaje, které pak držíš. Také potřebuje licenční klíč MaxMind ke stažení své databáze.