コマンドビルダー

コマンドの基本設定(名前・クールダウン・権限・エラー処理)

コマンド名・説明・クールダウン・権限といったコマンド全体の設定は、起点ノード「スラッシュコマンド」で行います。実行中にエラーが起きたときの動きは「エラーハンドラー」ノードで決めます。

コマンド名とクールダウン

  • コマンド名に使える文字と文字数は上限とクールダウンをご覧ください。日本語やスペースは使えず、条件を満たしていないと保存時にエラーになります。
  • 既存のコマンドの名前を変更して保存すると、新しい名前に置き換わります。以前の名前のコマンドは残りません。
  • クールダウンの適用範囲・クールダウン中の返信文はクールダウンをご覧ください。

権限設定

「個別権限設定を有効化」をオンにすると、ホワイトリスト/ブラックリストによる BotShade 独自の権限判定に切り替わります。リストの種類・権限条件のモード・判定の順序はコマンド権限設定の使い方をご覧ください。

「Discord権限より個別設定を優先」をオンにすると Discord の権限チェックが回避され、意図しない人がコマンドを使えてしまう恐れがあります。通常はオフのままにしてください(→強制上書き)。

永続パネルのボタンにも権限を適用する

永続化した「メッセージを送信」ブロックが付けたボタンや選択メニューは、押されるたびにそのコマンドの権限が再評価されます。このスイッチ(既定はオン)をオフにすると再評価を行わず、誰でも操作できるようになります。/rules のように「発行できる人は絞りたいが、貼ったパネルは全員に使わせたい」公開パネル向けの設定です。コマンド自体の実行権限は変わりません。

  • コマンド本体にも関数にも永続化した「メッセージを送信」ブロックが 1 つも無いときは操作できません。
  • オフにしても外れるのは、そのコマンドの権限の再評価だけです。親グループの権限は引き続き適用され、参照先のグループが壊れている場合は常に拒否されます。
  • 一時的なパネル(永続化していないメッセージ)のボタンは、この設定の対象外です。

親グループの権限を継承しない

グループに入れたコマンドは、既定では親グループの権限で先に絞り込まれてから、そのコマンド自身の権限で判定されます。このスイッチをオンにすると、親グループの権限を無視し、そのコマンド単体の権限だけで判定します。

エラーハンドラー

「エラーハンドラー」ノードの下に動作ノード(メッセージを送信する、変数に記録する、など)をつなぐと、コマンドの途中でエラーが起きたときにそのノード列が実行されます。使わない場合は、何もつながなくて構いません。

エラーハンドラーには本体とは別の実行時間が与えられるため、本体が実行時間を使い切ってもエラー処理は動きます。

「エラーメッセージをプライベートメッセージにするか」を「はい」にすると、エラーメッセージは実行者本人にだけ表示されます。ただし、一部の動作では適用されないことがあります。表示するメッセージに機密情報が含まれないようご注意ください。

エラー時に使える組み込み変数

エラー処理のノードの中では、発生したエラーの内容を次の組み込み変数で表示できます。

変数内容
{Error.message}エラーメッセージ本文
{Error.detail}エラーの詳細(スタックトレースなど)
{Error.block}エラーが起きたブロックの表示名(ブロックに付けた名前 → ラベル → ブロックの種類の順)
{Error.type}エラーの種別(下表)

{Error.message} と {Error.detail} は、環境変数の値などの秘密を取り除いたうえで 500 文字に切り詰められます。

エラーの種別 {Error.type}

「比較による条件分岐」ブロックの基準値に {Error.type} を入れると、種別ごとに処理を振り分けられます。

キー意味
undefined_variable未定義の変数を参照
undefined_function存在しない関数を呼んだ
invalid_argument引数が不足 / 型が違う
execution_limit呼出深度 / 総呼出数の上限
api_request外部 API 呼び出しの失敗
discord_apiDiscord API 側の失敗
expression${ ... } 式の評価失敗
timeout実行タイムアウト
function上記以外の関数実行の失敗
unknown種別を特定できない

構文エラーは保存前の検証で弾かれるため、実行時には出ません。また、未定義変数エラーとタイムアウトはエラーハンドラーには流れません(未定義変数は実行を止めず該当箇所がそのまま出力され、タイムアウトはエンジンごと打ち切られるためです)。

Config(設定可能パラメータ)

Config は、コマンドの作り手と、サーバーごとに値だけを差し替える運用者を分けるためのしくみです。「外から差し替えたい設定」をキーと型で宣言し、その値を同じ画面の「現在の値 (Configure)」フォームで埋めます。

  • キーは末尾部分だけを入力し、先頭の BSVAR_ は自動で付きます(例: welcome_channel → BSVAR_welcome_channel)。
  • 宣言したキーは永続変数として展開され、コマンド本体からは {BSVAR_welcome_channel} のように参照できます。「値を保存」で更新されるのは、この 永続変数の既定値 です。
  • 「必須項目」をオンにしたキーの値が空のときは、コマンド一覧で「設定未完了」の目印が付きます。

「型」は「文字列 (string)」「数値 (number)」「真偽値 (boolean)」「URL」「チャンネル (channel)」「ロール (role)」「ユーザー (user)」「絵文字 (emoji)」から選びます。

次のステップ / 関連ページ

最終更新:

目次