コンポーネントの結果変数
ボタンや選択メニューは、ユーザーが押したり選んだりした結果を、後続のノードから変数として受け取れます。たとえば「どのボタンが押されたか」「どの値が選ばれたか」「誰がどのチャンネルで操作したか」を、そのまま分岐や次の処理に使えます。この受け取り口となるのが「結果変数」です。
「ボタン」「選択メニュー」ノードに「結果変数名(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}は、コマンドを実行した人ではなく、そのボタン・選択メニューを操作した人を表します。操作者本人にだけ応答したいときに使えます。
次のステップ / 関連ページ
- Components V2(高度なレイアウト) — ボタン・選択メニューを含むメッセージの組み立て
- 変数と式の使い方 — 変数の参照とプロパティの取り出し方
- 条件分岐 — 結果変数を使った処理の振り分け
- ノードの種類リファレンス — ボタン・選択メニューを含むノードの早見表
最終更新: