スラッシュコマンド(/help)は、メニュー、自動補完、入力内容のチェックを備えています。プレフィックスコマンド($help)は普通のメッセージなので、入力が速く、2022年より前からDiscordを使っている人には馴染みがあります。どちらか一方を選ぶ必要はありません。Noxyrはすべてのコマンドを両方の形式で受け付けます。デフォルトのプレフィックスは $ で、サーバーごとに変更できます。両者の実際の違いと、それぞれが適している場面を見ていきましょう。
簡単な歴史
長年、すべてのボットがプレフィックスを使っていました。!play、?ban、-help のようにです。その後Discordはスラッシュコマンドを導入し、2022年には、ほとんどのボットからメッセージ内容へのアクセスを取り上げることで、認証済みボットにスラッシュコマンドを使うことを求めました。スラッシュコマンドが標準になり、プレフィックスの使い方を知らないユーザーの世代も生まれました。それでも、メニューをスクロールするより $help と入力するほうが好きなサーバーはたくさんあります。また、モバイルのキーボードではスラッシュのメニューが扱いにくいので、両方に対応しているボットなら、誰もが満足できます。
スラッシュコマンドのほうが優れている点
- 発見しやすさ。
/と入力すると、すべてのコマンドが説明付きで表示されます。ヘルプページは必要ありません。 - 入力チェック。チャンネルのオプションはチャンネルしか受け付けず、数値のオプションは数値しか受け付けません。ボットが受け取る前にミスが検出されます。
- 自動補完。曲、商品、プレイリストを入力しながら検索できるのは、スラッシュコマンドだけです。
- フォーム。
/quick catalog addや提案ボックスのようなポップアップフォーム(モーダル)は、スラッシュコマンドの操作からしか開けません。 - 非公開の返信。あなただけに見える一時的な返信は、スラッシュコマンドの機能です。
プレフィックスコマンドのほうが優れている点
- 速さ。
$skipはキーを5回押すだけです。メニューも、選択画面の読み込みを待つ必要もありません。 - どのクライアントでも、どの状況でも使える。メッセージはメッセージです。古いスマートフォンでも、別のプラットフォームからのブリッジ経由でも動きます。
- 手が覚えている操作。10年間
!のコマンドを打ってきた古参のメンバーやスタッフは、改めて覚え直したくありません。 - コピーと貼り付け。スタッフのガイドに「
$ticket close reason:spamを実行してください」と書けば、そのまま貼り付けられます。
Noxyrが両方を扱う仕組み
すべてのスラッシュコマンドには、同じ名前、同じサブコマンド、同じオプションを持つプレフィックス版があります。Noxyrはメッセージを、スラッシュコマンドが生成するのと同じ形に解析し、同じコードを実行します。そのため、権限や動作はまったく同じです。知っておくべきルールがいくつかあります。
- サブコマンドは名前の後に続けます:
$ticket close、$music settings、$referrals link。 - オプションは
name:valueの形式です:$sticky set text:"Read the rules" delay:300。引用符を付けると、スペースを含む値をまとめて扱えます。名前のない単語は、必須オプションに順番に当てはめられるので、$play never gonna give you upのように書くだけで動きます。 - メンションでも名前でも指定できます:
#channel、@role、ID、またはチャンネルやロールの名前をそのまま書けます。 - はい・いいえ:真偽値のオプションは、yes/no、on/off、true/false のいずれも受け付けます。
- ファイル:画像をメッセージに添付すると、添付ファイルのオプションに入ります。
- 非公開の返信はDMに届きます。コマンドの返信があなただけに向けられる場合、通常のメッセージでは一時的な表示にできないため、どのサーバーからの返信かを記したメッセージがDMに送られます。
- フォームはスラッシュコマンドのみ。コマンドがポップアップフォームを開く場合、プレフィックス版は代わりにスラッシュコマンドを実行するように案内します。
プレフィックスの変更
/prefix view で現在のプレフィックスを表示し、/prefix set prefix:! で変更します(1〜5文字、スペース不可。!、?、n!、nx. のいずれも使えます)。/prefix reset で $ に戻ります。プレフィックスはサーバーごとに設定され、カスタムボットも同じものを使います。サーバー内の別のボットがすでに ! を使っている場合は、同じメッセージに両方が反応しないように、別の文字を選んでください。
サーバーではどちらを使うべきか?
両方です。新しいメンバーはスラッシュのメニューに案内しましょう。メニューは使えば自然に覚えられます。スタッフや常連はプレフィックスコマンドを打てばよいでしょう。統一しておくべき点は、ドキュメントです。内部のガイドは1つの書き方に揃え、$ と / で動作が違うのではないかと誰にも思わせないようにしてください。Noxyrでは、両者の動作は同じです。
よくある質問
プレフィックスコマンドには、メッセージ内容のインテントが必要ですか?はい。Noxyrはそれを持っています。カスタムボットを運用している場合は、設定時にオンにする2つのインテントのうちの1つがそれです。
プレフィックスコマンドをオフにできますか?邪魔にならないように、わかりにくいプレフィックスを選んでください。スラッシュコマンドは、どちらにしても引き続き使えます。
プレフィックスはサーバー間で共有されますか?いいえ。各サーバーが独自のプレフィックスを持ちます。