コマンドビルダー

コンポーネントの結果変数

ボタンや選択メニューは、ユーザーが押したり選んだりした結果を、後続のノードから変数として受け取れます。たとえば「どのボタンが押されたか」「どの値が選ばれたか」「誰がどのチャンネルで操作したか」を、そのまま分岐や次の処理に使えます。この受け取り口となるのが「結果変数」です。

「ボタン」「選択メニュー」ノードに「結果変数名(variable_name)」を設定しておくと、操作されたときの情報がその名前のローカル変数に入り、{変数名}{変数名.プロパティ} の形で参照できるようになります。

結果変数を設定する

ノードを選んで設定パネルを開く

キャンバス上の「ボタン」または「選択メニュー」ノードをクリックし、右側の設定パネルを開きます。

「変数名」(結果変数名)を入力する

設定の最後にある「変数名」欄に、結果を受け取る変数の名前を入力します({} は付けず、名前だけ)。名前は英字・数字・アンダースコア(_)がおすすめです。

後続ノードで参照する

入力した名前で、後続のノードから {変数名}(プライマリ値)や {変数名.プロパティ}(細かい情報)として参照できます。

「変数名」を空欄のままにすると、結果変数は作られません。

ボタンの結果変数

ボタンに結果変数名(例として btn)を設定した場合、次の値を参照できます。

参照内容
{btn} / {btn.label}押されたボタンのラベル({btn} がプライマリ値)。
{btn.style} / {btn.disabled}押されたボタンに設定されているスタイルと、無効化状態。
{btn.user}ボタンを押したユーザー({btn.user.mention} でメンション、{btn.user.name} で名前など、さらに細かく参照できます)。
{btn.channel}ボタンが押されたチャンネル({btn.channel.name} など)。
{btn.guild}ボタンが押されたサーバー({btn.guild.name} など)。

選択メニューの結果変数

選択メニューに結果変数名(例として select)を設定した場合、次の値を参照できます。

参照内容
{select} / {select.value}選ばれた値({select} がプライマリ値)。複数選択のときはカンマ区切りで連結されます。
{select.user}選択メニューを操作したユーザー({select.user.mention}{select.user.name} など)。
{select.channel}操作されたチャンネル({select.channel.name} など)。
{select.guild}操作されたサーバー({select.guild.name} など)。

使い方の例

押されたボタンによって処理を分けたいときは、結果変数を条件分岐で見ます。

ボタンに結果変数名を付ける

「はい」「いいえ」など複数のボタンに、同じ結果変数名(例: btn)を付けます。

「比較による条件分岐」で振り分ける

ボタンの後に条件分岐をつなぎ、{btn}(押されたボタンのラベル)を、判定したい値(例: はい)と比較します。

分岐先で続きの処理を組む

当てはまった側・それ以外の側それぞれに、メッセージ送信やロール付与などの処理をつなぎます。{btn.user.mention} を使えば、操作した本人に向けた応答も作れます。

選択メニューでも同様に、{select} を条件分岐で見て振り分けられます。

注意点

  • 結果変数はローカル変数です。コマンドの実行が終わると消えるため、永続的に残したい場合はカスタム変数に反映してください。
  • ボタンの {btn.user} や選択メニューの {select.user} は、コマンドを実行した人ではなく、そのボタン・選択メニューを操作した人を表します。操作者本人にだけ応答したいときに使えます。

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

最終更新:

目次