Slash příkazy (/help) nabízejí menu, automatické doplňování a ověřené volby. Prefixové příkazy ($help) jsou prostá zpráva, rychleji se píšou a znají je všichni, kdo Discord používali před rokem 2022. Nemusíte si vybírat: Noxyr odpovídá na každý příkaz oběma způsoby, s výchozím prefixem $, který si každý server může změnit. Tady je, v čem se ty dva způsoby opravdu liší a kdy který vyhraje.
Krátká historie
Roky používal každý bot prefix: !play, ?ban, -help. Pak Discord zavedl slash příkazy a v roce 2022 u většiny botů odebral přístup k obsahu zpráv a ověřeným botům začal slash příkazy vyžadovat. Slash příkazy se staly standardem a jedna generace uživatelů se prefixový způsob nikdy nenaučila. Spousta serverů ale pořád dává přednost psaní $help před listováním v menu. Mobilní klávesnice navíc dělají menu slash příkazů nepohodlným, takže boti, kteří podporují oba způsoby, udrží spokojené všechny.
V čem jsou slash příkazy lepší
- Objevování. Napište
/a objeví se každý příkaz s popisem. Stránka nápovědy není potřeba. - Validace. Volba pro kanál přijme jen kanál, volba pro číslo jen číslo. Chyby se odhalí dřív, než je bot uvidí.
- Automatické doplňování. Hledání písničky, produktu nebo playlistu při psaní funguje jen se slash příkazy.
- Formuláře. Vyskakovací formuláře (modaly), například
/quick catalog addnebo schránka na návrhy, se mohou otevřít jen ze slash interakce. - Soukromé odpovědi. Dočasná odpověď viditelná jen vám je funkce slash příkazů.
V čem jsou prefixové příkazy lepší
- Rychlost.
$skipje pět úhozů. Žádné menu, žádné čekání, až se načte výběr. - Libovolný klient, libovolný kontext. Zpráva je zpráva, na nejstarším telefonu nebo přes most z jiné platformy.
- Svalová paměť. Dlouholetí členové a personál, kteří deset let píšou příkazy s
!, se nechtějí učit znovu. - Kopírování a vkládání. Návod pro personál může říkat „spusťte
$ticket close reason:spam“ a lidé to mohou vložit přesně takhle.
Jak Noxyr podporuje oba způsoby
Každý slash příkaz má prefixového dvojníka se stejným názvem, stejnými podpříkazy a stejnými volbami. Noxyr zprávu zpracuje do stejného tvaru, jaký by vytvořil slash příkaz, a pak spustí stejný kód. Oprávnění i chování jsou tedy totožné. Několik pravidel, která stojí za to znát:
- Podpříkazy následují název:
$ticket close,$music settings,$referrals link. - Volby mají tvar
name:value:$sticky set text:"Read the rules" delay:300. Uvozovky udrží mezery pohromadě. Nepojmenovaná slova vyplní povinné volby v pořadí, takže$play never gonna give you upprostě funguje. - Fungují zmínky i názvy:
#kanál,@role, surové ID nebo prostý název kanálu či role. - Ano a ne: logické volby přijímají ano/ne, on/off, true/false.
- Soubory: přiložte k příkazu obrázek a vyplní volbu přílohy.
- Soukromé odpovědi jdou do DM. Když by příkaz odpověděl jen vám, odpověď se pošle do vašich DM s poznámkou, z kterého serveru přišla. Prostá zpráva totiž nemůže být dočasná.
- Formuláře zůstávají jen u slash příkazů. Pokud příkaz otevírá vyskakovací formulář, prefixová verze vám řekne, ať spustíte slash příkaz.
Změna prefixu
/prefix view ukáže aktuální prefix. /prefix set prefix:! ho změní (jeden až pět znaků bez mezer, takže fungují !, ?, n! i nx.). /prefix reset vrátí $. Prefix je nastavený pro každý server a váš custom bot používá stejný. Pokud na serveru jiný bot už používá !, vyberte něco jiného, aby na stejnou zprávu neodpovídaly oba.
Který má váš server používat?
Oba. Novým členům ukažte slash menu, protože se samo vysvětluje. Personálu a stálým členům nechte psát prefixové příkazy. Jediná věc, kterou je dobré sjednotit, je dokumentace: píšete-li interní návody v jednom stylu, nikdo nebude přemýšlet, jestli se $ a / chovají jinak. Na Noxyru se nechovají.
Časté otázky
Potřebují prefixové příkazy Message Content Intent? Ano, a Noxyr ho má. Pokud provozujete custom bota, je to jeden ze dvou intentů, které zapínáte při nastavení.
Můžu prefixové příkazy vypnout? Pokud je chcete mít mimo dosah, zvolte nenápadný prefix. Slash příkazy fungují tak či tak.
Je prefix sdílený mezi servery? Ne, každý server má vlastní.
Úplný seznam příkazů najdete na stránce příkazů, nebo si přidejte Noxyr a zkuste $help.