Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Příkazy

Příkaz je nějaká instrukce, která určitým způsobem ovlivní hru. Například příkaz tp <nick> teleportuje hráče, který příkaz vykoná, k jinému hráči.

Příkaz může buď provést hráč, nebo konzole.

Konzole

Pozor! Do konzole se standardně počáteční lomítko nepíše (až na výjimky), jelikož vše, co je do konzole napsáno, je příkaz.

Konzole má k veškerým příkazům plná práva.

Permise (práva)

V případě, kdy příkaz provádí hráč a ne konzole (a hráč nemá permisi automaticky), je nutno permisi nastavit. Více se o permisích dočtete zde.

Vykonavatel příkazu

Důležitým, ale začátečníky často nepochopeným principem, je vykonavatel příkazu (command executor/command sender).

Jak je zmíněno na začátku, příkaz může vykonat buď hráč, nebo konzole. Od toho se může příkaz odvíjet.

V případě, kdy příkaz vykonává hráč, může být potřeba, aby měl hráč nastavenou permisi k danému příkazu. Proto může být u pluginů typu Citizens/ArmorStandTools/asCMD, které po kliknutí na NPC/armor stand vykonají příkaz, vhodné, aby byl příkaz vykonán konzoli. V takovém případě totiž není nutno hráči nastavit permisi, kterou může využít i v jiných situacích.

V případě, kdy příkaz tp <hráč> vykoná konzole, žádná teleportace nenastane, jelikož server nemůže vědět, jakého hráče chcete k hráči teleportovat. Proto pokud chcete teleportovat hráče z konzole, je potřeba použít příkaz tp <hráč1> <hráč2>, kde je už jasně specifikováno, jakého hráče k druhému hráči teleportujete. Proč tomu tak je je nejspíš zřejmé. A tak to funguje u všech příkazů specifických pro hráče. Pokud je příkaz vykonán z konzole, je nutno použít takový příkaz, kde je jméno hráče specifikováno, jinak server nemůže vědět, pro jakého hráče má být příkaz vykonán. Dalším příkladem může být gamemode creative (lze použít ve hře, ale ne v konzoli) a gamemode creative <nick> (lze použít v konzoli).

Někdy se může hodit, aby příkaz vykonala konzole, tím pádem hráč nemusí mít k příkazu povolené permise.

Například kdybyste chtěli u pluginu Citizens nastavit, aby server hráče po kliknutí na NPC po teleportoval na lokaci X: 0, Y: 64, Z: 0, lze použít následující příkaz: npc command add -p tp 0 64 0 (flag -p určuje vykonání příkazu samotným hráčem, který na NPC klikne) V takovém případě ale hráč musí mít na příkaz tp permisi, což pravděpodobně nechcete. V takovém případě je tedy vhodnější využít příkazu, který vykoná konzole, a tím pádem k příkazu není žádná permise potřeba - npc command add tp <p> 0 64 0 (Citizens nahradí <p> jménem hráče)

Argumenty

Nejlepším vysvětlením, co jsou to argumenty příkazu, je konkrétní příklad. U příkazu tp 0 64 20 je tp samotný příkaz, 0 první argument, 64 druhý argument a 20 třetí argument. Někdy (zejména v kontextu programování) se argumenty příkazů číslují od nuly, tedy 0 je nultý argument, 64 první a 20 druhý.

Zápis příkazu

Příkaz může mít různý zápis, který značí, jak může být použit. Takovým zápisem je například lp user/group <user|group> meta setprefix [priority] <prefix> [context...], essentials tptoggle [player] [on|off], nebo gamemode <peaceful|easy|normal|hard>.

Zápisy příkazů se můžou v závislosti na dokumentaci lehce lišit, ale obecně se setkáte s následujícími značkami:

  • | - nebo

Například v zápisu repair [hand|all] značka | znamená nebo, tedy, že můžete použít příkaz repair hand (opraví item co má hráč v ruce), nebo repair all (opraví všechny itemy v hráčově inventáři).

  • <> - povinný argument
  • [] - volitelný argument

Například zápis příkazu lp user <nick> permission set <permission> [context] značí, že musíte použít argument nick a permission, a pokud chcete, můžete nastavit kontext pomocí posledního argumentu. Pokud však žádný kontext nastavit nechcete, stačí argument context vynechat a příkaz bude validní, jen se žádný kontext permise nenastaví.

Namespacy

V příkazu minecraft:reload je namespace minecraft a samotný příkaz reload.

Namespace v příkazu může, ale nemusí být použit.

Používá se zejména v případech, kdy stejný příkaz existuje vícekrát, a tím pádem se příkazy překrývají (například ascmd u ArmorStandTools a asCMD)

Proto pokud chcete využít Vanilla příkaz give, ale máte na serveru plugin EssentialsX, který má taktéž příkaz give, stačí použít příkaz minecraft:give <argumenty>. To stejné platí například i u příkazu minecraft:reload, který reloadne Minecraft datapacky místo provedení reload příkazu od Spigotu, který by se neměl používat.

Zobrazování namespaců u příkazů v chatu lze vypnout nastavením send-namespaced na false v spigot.yml viz zde.

Aliasy

Pro vytváření aliasů lze na Spigot serveru či jeho forku využít commands.yml, případně plugin, který vytváření aliasů umožňuje. Mezi takové pluginy patří například MyCommand.

Takovou funkci má i plugin CMI (který si kvůli aliasům příkazů pořizovat nebudete, ale pokud jej vlastníte, můžete jej využít).

Vlastní příkazy

V případě potřeby sotisfikovanějšího systému na vlastní příkazy lze využít plugin MyCommand.

Jak zjistít příkaz/Vymýšlení příkazů

Příkazy pluginů a permise k nim naleznete vždy v dokumentaci konkrétního pluginu. Nezkoušejte příkazy tipovat!

Tabování příkazů

Pokud chcete zamezit “tabování” příkazů, více se dočtete zde.