Discordのスラッシュコマンド:仕組みと、ボットが使う理由
スラッシュコマンドは、メッセージ入力欄に / を入力し、Discordが表示するメニューから選んで始めるボットのコマンドです。 Discordが選択肢を表示し、入力を検証するため、スラッシュコマンドは古い接頭辞コマンドのほとんどに取って代わり、メッセージを読む特別な権限を必要としません。
スラッシュコマンドの仕組み
ボットは、APIを通じてコマンドをDiscordに登録します。各コマンドには、名前、説明、そして任意の入力(ユーザー、チャンネル、数値、選択肢の一覧など)があります。/を入力すると、Discordはメニューを表示し、入力内容を検証してから、ボットにインタラクションを送ります。ボットは三秒以内に応答しなければならず、その後は十五分間、返信し続けられます。
ボットがあなたのチャットを読む必要はありません。ボットが見るのは、あなたが実行を選んだコマンドだけです。
グローバルコマンドとサーバーコマンド
- グローバルコマンドは、ボットが参加しているすべてのサーバーに表示されます。ボットが許可していれば、ダイレクトメッセージにも表示されます。更新がすべての場所に表示されるまで、少し時間がかかることがあります。
- サーバー(ギルド)コマンドは、一つのサーバーにだけ存在し、すぐに更新されます。開発者はテストに使います。
コマンドにはサブコマンドやグループを持たせられるため、/ticket closeのように、ボットは多くの機能を少数の名前にまとめられます。
誰が使えるか
各コマンドには、開発者が設定した既定の権限があります。サーバーの管理者は、サーバー設定の連携で、どのロールまたはチャンネルがどのコマンドを実行できるかを上書きできます。コマンドがメニューにないとき、よくある原因は権限の上書きかチャンネルの制限です。
スラッシュコマンドと接頭辞コマンド
古いボットは、!playのようなテキストを聞き取っていました。それには特権のメッセージ内容のインテントが必要で、オートコンプリートもありません。スラッシュコマンドは、どちらの問題も避けます。反対側については接頭辞コマンドを、詳しい比較は完全な比較をご覧ください。
Noxyrのスラッシュコマンド
Noxyrのすべての機能はスラッシュコマンドとして使えます。同じコマンドは、$helpのような通常の接頭辞メッセージとしても、同じ権限で動きます。全一覧はコマンドのページで見られます。管理者は、カスタムコマンド(ドキュメント)でサーバーごとにコマンドの名前を変えたり、コマンドの表示設定で各ロールに見せるコマンドを決めたりできます。メニューが空に見えるなら、コマンドが見つからないガイドに従ってください。
メンバー向けのヒント
スラッシュを入力し、コマンド名の入力を始めると一覧が絞り込まれます。Tabキーでオプションの間を移動できます。何かが見当たらない場合は、アプリがコマンドの一覧をキャッシュしているため、Discordを再起動してください。そして、正しいチャンネルにいるかを確認してください。
よくある質問
スラッシュコマンドが表示されないのはなぜですか?
通常は、ボットがapplications.commandsのスコープなしで招待されたか、権限の上書きでコマンドが隠れているためです。サーバー設定の連携を確認してください。
スラッシュコマンドには、メッセージ内容のインテントが必要ですか?
いいえ。それがこの方式の利点の一つです。ボットは、あなたが実行したコマンドだけを受け取ります。
スラッシュコマンドの名前を変えられますか?
Discord自体ではできません。Noxyrには、サーバー内でコマンドに新しい名前を付けられるカスタムコマンドがあります。