スラッシュコマンド
アプリケーションコマンドの登録方法は Discord とまったく同じです。エンドポイントもペイロードもライブラリも同じ。異なるルールは 1 つだけで、GameVox には独自の組み込みコマンドがあり、その名前が予約されています。
登録
Discord から変更ありません。4 つのルートはすべて動作し、グローバルとギルド単位、作成と一括上書きに対応します。
POST /api/v10/applications/{application_id}/commands
PUT /api/v10/applications/{application_id}/commands
POST /api/v10/applications/{application_id}/guilds/{guild_id}/commands
PUT /api/v10/applications/{application_id}/guilds/{guild_id}/commands 予約された名前
以下のコマンドには GameVox 自身が応答します。これらの名前で登録すると 400 と Discord のエラーコード 50035 で拒否されます。メッセージにコマンド名が含まれるので、デプロイログで原因がすぐ分かります。
理由はプラットフォームではなくメンバー側にあります。GameVox は組み込みコマンドとアプリのコマンドを名前空間なしの 1 つのピッカーに並べるため、ban という名前のコマンドが 2 つあると、区別のつかない同じ行が 2 つ並びます。モデレーション用のコマンドでは、これはエラーよりたちが悪く、どちらの /ban を実行したのか迷わせるべきではありません。
| グループ | 予約された名前 | GameVox がどう扱うか |
|---|---|---|
| モデレーション | ban unban kick clear slowmode | 呼び出したユーザー自身の GameVox 権限で、サーバーに直接作用します。 |
| 娯楽 | 8ball flip choice ascii qrcode love | チャンネル内で応答します。 |
| 情報 | serverinfo userinfo avatar | 呼び出したユーザーが UI ですでに見られる内容を表示します。 |
| メンバー | afk remindme welcome goodbye | 離席メモ、リマインダー、サーバーの参加/退出メッセージ。 |
| クライアント | me poll shrug tableflip unflip lenny | サーバーに届かず、GameVox クライアント側で処理されます。 |
照合では大文字小文字と前後の空白を無視します。ピッカーも同じ方法で名前を照合するため、Ban は ban と衝突します。
すでに登録してしまっている場合
名前が予約される前に登録されたコマンドはデータベースに残りますが、メンバーのピッカーからは外れ、呼び出しても拒否されます。名前を変えて登録し直してください。アプリのそれ以外には影響しません。
予約されていない名前
完全一致だけが対象です。banish、clearall、server-info はすべて自由に使えます。warn も同様で、GameVox に警告コマンドはありません。メンバーの報告は報告フローで扱うためです。
予約の有無にかかわらず、アプリ固有の短い接頭辞を付けておく価値はあります。インストール済みの 2 つのアプリ同士の衝突を防ぐのはそれだけで、GameVox はその調停をしません。
権限は引き続き適用されます
名前の予約は、誰がコマンドを実行できるかとは無関係です。この点は変わらず、既定では拒否されます。登録されたコマンドは、運営者がサーバー設定 → 連携でグループに許可するまで、サーバーのオーナーだけが実行できます。権限をご覧ください。