スラッシュコマンドの定義
discord.jsにおいてはスラッシュコマンドの定義の作成/更新/削除は次のメソッドを用いて行う。
コマンド定義の作成及び更新を行う。
名前が重複するとそのコマンドは上書きされるため。
コマンド定義の削除を行う
コマンド定義の編集を行う。
コマンド定義の一括更新/編集を行う。
スラッシュコマンドには以下の制限がある。
アプリケーションはトップレベルのグローバルコマンドを100個まで持つことができる。
アプリケーションはトップレベルのサーバーコマンドを100個まで持つことができる。
アプリケーションはトップレベルのコマンドの下に25個までサブコマンドグループを持つことができる。
アプリケーションはサブコマンドグループの下に25個までサブコマンドを持つことができる。
コマンドは25個までオプションを持つことができる。
オプションは25個まで選択肢を持つことができる。
コマンド、サブコマンドグループ、サブコマンドのname、description、と value は全て合わせて4000文字までに制限される。
コマンド名は1文字以上32文字以下の英小文字と英数字、それと_および-で構成されていなければならない。
コマンドの下にサブコマンドを直接持つこと、及び、コマンドの下にサブコマンドグループを持ち、その下にサブコマンドを持つ子は許されるが、更にサブコマンドグループをもつこと、及び、サブコマンドの下にサブコマンドグループを持つことは許可されない。
code:txt
VALID
command
|
|__ subcommand
|
|__ subcommand
----
command
|
|__ subcommand-group
|
|__ subcommand
|
|__ subcommand-group
|
|__ subcommand
-------
INVALID
command
|
|__ subcommand-group
|
|__ subcommand-group
|
|__ subcommand-group
|
|__ subcommand-group
----
INVALID
command
|
|__ subcommand
|
|__ subcommand-group
|
|__ subcommand
|
|__ subcommand-group
Global rate limit of 200 application command creates per day per guild
ここでは作成に焦点を当てることにする。
name
必須
コマンド名は1文字以上32文字以下の英小文字と英数字、それと_および-で構成されていなければならない。
description
必須
コマンドの説明は1文字以上100文字以下でなければならない。
default_permission
コマンドがデフォルトで使用可能か。
options
オプション(コマンドの引数)を指定する。
指定した順序はUIにでてくる順序となる。
[idx]
type
必須
型は以下のものが用意されている。
SUB_COMMAND
SUB_COMMAND_GROUP
STRING
文字列
INTEGER
整数値
ちなみに、JSONで表現できる数値の範囲を超えると文字列で送ってくる。
BOOLEAN
真偽値(True/False)
USER
ユーザー
CHANNEL
チャンネル
ROLE
役職
MENTIONABLE
メンションできるもの
NUMBER
小数値
name
必須
オプションの名前
1文字以上32文字以下の英小文字と英数字、それと_および-で構成されていなければならない。
description
必須
オプションの説明
1文字以上を100文字以下でなければならない。
required
このオプションが必須であるか。
デフォルトは必須ではない。(false)
choices
選択肢からユーザーに選択させる場合は配列で選択肢を与える。
省略した場合は自由入力となる。
[idx]
name
選択肢の名前。
1文字以上100文字以下。
value
選択肢の値。
オプションのtypeと一致している必要がある。
この値がDiscordからBotへ送信される。
文字列の場合は100文字以下。
options
typeがサブコマンドおよび、サブコマンドグループの場合、オプション、サブコマンドを指定するため、使用する。