変数とデータ

データ型(カスタム型)を定義する

「データ型」は、複数の項目(プロパティ)をひとまとめにした 自分専用の型 を作っておく機能です。たとえば「レベル」「経験値」「所持金」をまとめた RPGStats のような型をあらかじめ定義しておくと、オブジェクト型の変数を作るときに同じ構造を何度も使い回せます。データ型は「ストレージ」画面の「データ型」タブで管理します。

この機能はベータ版です。作成したデータ型は お使いのブラウザにのみ保存 されます(データ型はこのブラウザにだけ保存されます)。

データ型タブとは(オブジェクトの「設計図」を作る)

Bot に覚えさせるデータには、1 つの値だけを持つもの(数値や文字列)と、複数の項目をひとまとめにしたもの(オブジェクト)があります。たとえば「あるユーザーの RPG ステータス」は、

  • level(レベル)= 数値
  • exp(経験値)= 数値
  • class(職業)= 文字列

のように、複数の項目をひとつにまとめたいことがあります。このような「まとまった形」をあらかじめ名前付きで定義しておくのが データ型 です。

データ型は、いわばオブジェクトの 設計図 です。設計図そのものがデータを持つわけではなく、「この型にはこういう項目(プロパティ)が並ぶ」という形だけを決めておきます。実際の変数を作るときに、この設計図を読み込むことで、プロパティを一つひとつ手入力する手間を省けます。

データ型を作っただけでは Bot の動作は変わりません。実際に使うには、変数作成フォームでこの型を読み込みます(オブジェクト型変数で「Load Type...」から読み込むを参照)。

データ型タブを開く

Bot の管理画面で、サイドバーの「データストレージ」を開き、画面上部の「変数」「データ型」の 2 つのタブのうち「データ型」を選びます。登録済みのデータ型がカードで一覧表示されます。変数そのものの一覧や作成は「変数」タブで行います(ストレージ(カスタム変数・データ型)を参照)。

最初から用意されている組み込みの型

「データ型」タブには、はじめから Bot でよく使う組み込みのデータ型が用意されています。これらは Discord のユーザーやサーバーなど、よく扱う対象の項目をまとめたものです。

データ型主な用途含まれるプロパティの例
UserDiscord ユーザー/サーバーメンバーを表すnameidmentioniconcreatedAtjoinedAt
GuildDiscord サーバー(ギルド)を表すnameidmemberCounticonownerboostCountboostLevel
Channelチャンネルを表すnameidmention
Time日付と時刻を表すunixrelativelongshort
Money経済システムの金額を表すvalueformat
UrlURL 文字列を表すurl

これらの組み込み型も、自分で作った型と同じように編集・削除できます。ただし経済システム用の Money 型だけは削除できません。

新しいデータ型を作る

データ型は「データ型名」と、その型が持つ「プロパティ」の組み合わせで作ります。

「データ型を新規作成」をクリックする

「データ型」タブの右上にある「データ型を新規作成」ボタンをクリックして、「新しいデータ型」フォームを開きます。

「データ型名」を入力する

「データ型名」に、このデータ型の名前(例: RPGStats)を入力します。

「プロパティを追加」でプロパティを増やす

「プロパティ」の見出しの横にある「プロパティを追加」をクリックすると、プロパティの入力行が 1 つ追加されます。必要な項目の数だけ繰り返して追加します。

各プロパティの「キー」「型」「デフォルト値」を設定する

追加した各プロパティに「キー」「型」「デフォルト値」を設定します(プロパティの設定を参照)。不要になったプロパティは、その行の削除(ゴミ箱)アイコンで取り除けます。

「保存」をクリックする

入力が終わると、一覧にこのデータ型のカードが追加されます。

プロパティの設定

各プロパティには、次の項目を設定します。

項目内容
「キー」プロパティの名前です。コマンドの中で値を取り出すときの目印になります(例: level)。
「型」「文字列」「数値」「真偽値」の 3 つから選びます(「真偽値」は true / false)。
「デフォルト値」そのプロパティの初期値です。

データ型タブの新規作成フォームで選べる型はこの 3 種類だけです。変数作成フォーム側でプロパティを直接編集する場合は、これに加えて「ユーザー」「チャンネル」「ロール」「オブジェクト」も選べます(ストレージ(カスタム変数・データ型)を参照)。

入れ子の構造(オブジェクトの中の配列・配列の中のオブジェクト)

変数作成フォーム側でプロパティを直接編集する場合は、オブジェクトのプロパティに 配列 を、配列の要素に オブジェクト を、それぞれ入れた 入れ子の構造 も扱えます。永続変数(BSVAR_)に保存しても、入れ子のまま保たれます。

たとえば「ユーザーごとに持ち物のリストを保存する」場合、次のような形が作れます。

profile (Object)
├─ name : 文字列
├─ level: 数値
└─ items: 配列
    └─ 各要素は Object: { name: 文字列, count: 数値 }

作成手順(変数作成フォーム)

上の profile を実際に作るには、変数作成フォームでプロパティを 直接編集 します(データ型タブの新規作成フォームでは入れ子を宣言できません)。

「変数」タブで新しい変数を作成する

「ストレージ」画面の「変数」タブを開き、右上の「新しい変数を作成」をクリックします。

「データタイプ」を「オブジェクト(Object)」にしてプロパティを追加する

「プロパティ」の設定欄が表示されるので、「プロパティを追加」で name(文字列)と level(数値)の 2 行を追加します。

items を「配列(Array)」型で追加する

もう 1 行追加し、「キー名」に items、「型」に「配列(Array)」を選ぶと、その下に「要素の型」を選ぶ欄が現れます。

items の「要素の型」を「オブジェクト(Object)」にする

配列の中身となるオブジェクトの 入れ子のプロパティ を編集する欄が現れるので、name(文字列)・count(数値)を追加します。これで items 配列の各要素が「namecount を持つオブジェクト」になります。

スコープ・デフォルト値を整え、「保存」する

スコープ(全体 / サーバー / ユーザー)を選び、必要ならデフォルト値も整えてから「保存」します。

配列にあとから要素を足したり、特定の要素を更新したりするときは、配列操作ノード(「配列に追加」「配列を更新」など)を使います。items のような永続変数の配列にも、BSVAR_ で始まるリファレンス名でそのまま指定できます。

参照のしかた

入れ子の中身は、ドット記法と添字記法を組み合わせて取り出します。

書き方取り出すもの
{BSVAR_profile.name}プロフィールの名前
{BSVAR_profile.items.length}アイテムの個数
{BSVAR_profile.items[0].name}先頭アイテムの名前
{BSVAR_profile.items[0].count}先頭アイテムの個数

参照記法そのものについては 変数と式の使い方 もあわせて参照してください。

オブジェクト型変数で「Load Type...」から読み込む

作ったデータ型は、変数を作るときの 入力補助 として使います。変数の「データタイプ」を「オブジェクト」にすると、データ型に登録したプロパティをまとめて読み込めます。

「変数」タブで新しい変数を作る

「ストレージ」画面の「変数」タブを開き、右上の「新しい変数を作成」をクリックします。

「データタイプ」を「オブジェクト(Object)」にする

「プロパティ」の設定欄が表示されます。

「Load Type...」から作ったデータ型を選ぶ

「プロパティ」の見出しの横にある「Load Type...」の選択欄から、読み込みたい型(例: RPGStats)を選びます。そのデータ型に登録されているプロパティ(キー名・型・初期値)が「プロパティ」欄にまとめて読み込まれるので、必要に応じて値を調整し、変数を保存します。

「データタイプ」で「ユーザー(User)」または「チャンネル(Channel)」を選んだときに表示される「ユーザー/チャンネルごとのデータタイプ」の選択肢にも、作成済みのデータ型が並びます。各ユーザー・各チャンネルに保存するデータの中身の型として指定できます。

編集と削除

登録済みのデータ型は、一覧のカードの編集(鉛筆)アイコンから「データ型を編集」フォームを開いて変更できます。削除(ゴミ箱)アイコンからは、組み込み型を含めて削除できます(Money を除く)。

既存のデータ型を編集しても、すでにその型を「Load Type...」で読み込んで作った変数の内容は自動では変わりません。型の変更を変数側へ反映したい場合は、対象の変数を開いて改めて読み込み直してください。

データ型はこのブラウザにだけ保存されます

データ型は、お使いのブラウザの中(ローカルストレージ)にのみ保存されます。Bot の本体や、永続変数のカタログには送られません。実際に Bot へ保存されるのは、データ型を読み込んで作った 変数 のほうなので、データ型が消えても保存済みの変数の中身には影響しません。

次の点に注意してください。

  • 別の端末や別のブラウザで同じダッシュボードを開いても、作ったデータ型は表示されません。
  • ブラウザの履歴やサイトデータを消去すると、作ったデータ型も失われることがあります。
  • 共同編集者など、ほかの人の画面には、作ったデータ型は共有されません。

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

最終更新:

目次