すべての記事

Discordでメンバーのプロフィール、IGN、サブキャラを管理する方法

CordBaseチーム

Discordでメンバーのプロフィール、IGN、サブキャラを管理するには、メンバー1人につき1行(IGN、ランク、サブキャラ、Discordのメンバーの列)のテーブルを作り、メンバーにスラッシュコマンドで入力してもらいます。あとは誰でも、メンバー、IGN、サブキャラの名前でプロフィールを検索できます。私たちが作っているCordBaseなら、Freeプランでこれができます。

ギルドでは、こうした情報をピン留めしたメッセージや役員のメモ、誰も開かないスプレッドシートで管理していることが多く、「Kaelmageって誰のサブキャラ?」という質問が毎週チャットに流れます。このガイドでは、その一覧をDiscordの中に置きます。先にひとつ注意点があります。登録フォームはありません。メンバーが/profile addを実行し、入力するオプションを選びます。

完成するもの

  • add、query、view、update、deleteの操作がある/profileコマンド。
  • メンバー1人につき1行:IGN、Discordのメンバー、ランク、サブキャラ、役割、メモ。
  • メンバー、IGN、サブキャラの名前での検索。
  • プロフィールを追加・編集・削除できる人を決める権限。

ステップ1:テーブルを作る

IGNやサブキャラの列がある既製のテンプレートはありません。いちばん近いのはメンバー名簿ですが、最初のテキスト列がtimezoneで、rowの選択欄が検索するのはその列です。そのため、このテーブルはゼロから作ります。

  1. cordbase.ggにDiscordでログインし、サーバーを選んで、ダッシュボードに表示されたらBotを追加します。
  2. 「Profile」という名前で新しいテーブルを作ります。コマンド名はprofileと自動で入ります。
  3. 次の列をこの順番で追加し、終わったら保存します。
  • IGN:テキスト、必須。最初に置きます。rowオプションは最初のテキスト列で入力補完するので、メンバーはIGNを入力してプロフィールを探せます。
  • Member:メンバー、必須。メンバーはDiscordのメンバー選択から自分を選びます。
  • Rank:選択肢。選択肢には自分たちのランクを入れます(例:Officer、Raider、Trial)。
  • Alts:テキスト。Name (Class), Name (Class)のように形式をひとつ決めて、それを守ってください。
  • Role:選択肢。Tank、Healer、DPSなど、ゲームに合わせて入れます。
  • Notes:テキスト。

queryの結果には最初の4列しか表示されず、あとから追加した列は最後に並ぶので、順番が大切です。テーブルを作ったあとは列のキーと種類はロックされますが、列の追加やラベルの変更はできます(テーブルのドキュメントを参照)。

ステップ2:権限を設定する

権限はテーブルの編集ページにあるので、保存したあとに開きます。テーブルにロールが設定されていないうちは、すべてのメンバーが削除を含むすべての操作をできます。ロールは次のように設定します。

  • 全メンバーが持っているロール(@everyoneは選べないので、例えば@Member)に編集を与えます。これでメンバーはaddとupdateができます。
  • 役員のロールに管理を与えます。これでdeleteも使えます。
  • 役員だけにデータを入力させたいなら、メンバーに閲覧、役員に編集を与えます。

ロールをひとつでも設定すると、設定したロールを持たないメンバーはテーブルをまったく使えなくなります。Discordの「管理者」権限を持つ人は、常にすべての操作ができます。

編集の意味ははっきりさせておきましょう。編集は自分の行だけでなく、すべての行が対象です。編集権限がある人は誰のプロフィールでも編集でき、1人のメンバーがプロフィールを2件追加することも防げません。

ステップ3:メンバーがプロフィールを追加する

/profile add ign:Kaelith member:@Mara rank:Raider role:Healer alts:Kaelmage (Mage), Kaelstab (Rogue)

Discordは先に必須のオプション(IGNとMember)を求め、そのあとメンバーが任意のオプションを追加します。項目を案内する仕組みはないので、正確なコマンドをチャンネルにピン留めしておきましょう。プロフィールを変更するときは、rowオプションに入力を始めて、一覧から選びます。

/profile update row:Kaelith alts:Kaelmage (Mage), Kaelstab (Rogue), Kaeltank (Warrior)

updateは値全体を置き換えるので、新しいサブキャラを含めてサブキャラの一覧をすべて入力し直してください。加算と減算のモードは数値の列にしかなく、このテーブルには数値の列がありません。

ステップ4:メンバーを調べる

  • /profile view row:Kaelithは、すべての列に加えて、誰が行を作り、最後にいつ更新されたかを表示します。
  • /profile query member:@Maraは、Discordのメンバーのプロフィールを探します。
  • /profile query alts:Kaelmageは、サブキャラが誰のものかを探します。テキストのフィルターは、大文字・小文字を区別せずにその文字を含む行に一致します。
  • /profile query rank:Officer limit:25は、役員を最大25人まで一覧表示します。フィルターは組み合わせられるので、rank:Raider role:Healerも使えます。

queryは新しい行から順に、標準で10件、最大25件を表示します。返信はチャンネルに投稿されるので、ほかの人に見えても問題ない場所で検索してください。

応用:キャラクター1人につき1行

サブキャラごとにクラス、レベル、装備を持たせたいなら、テーブルをキャラクター1人につき1行にします:IGN、Member、Class、そしてメインかどうかのはい / いいえの列です。サブキャラの追加は普通のaddになり、/profile query member:@Mara limit:25でMaraが使っているキャラクターをすべて一覧表示できます。そのぶん行を使います。Freeのテーブルは100行までで、サブキャラの分だけ減っていきます。

ほかのツールのほうが向いている場合

役員が並べ替え、数式、一括編集を使いたいなら、スプレッドシートのほうが向いています。CordBaseにはCSVインポートもGoogleスプレッドシートとの同期もありません。

メンバーごとに1つの投稿を作るフォーラムチャンネルは、検索するよりも読まれる、スクリーンショットや長い紹介文があるプロフィールに向いています。テーブルに入るのは短いテキストで、画像は入りません。

誰も入力しなくてもゲームからキャラクターのデータを取得して最新に保ちたいなら、ゲームからギルドの名簿を読み込むツールを使ってください。CordBaseはゲームのデータを読み込まず、APIもありません。

知っておきたい上限

  • Free:テーブル2個、それぞれ100行。Pro($8/月)ではテーブル数が無制限になり、1テーブルあたり10,000行まで使え、保存済みビューと一括編集も使えます。
  • 1テーブルあたり最大25列。このテーブルには数値の列がないので、leaderboardの操作はありません。使いたい場合は、levelのような数値の列を追加してください。
  • メンバー向けの登録フォームや順番に聞いていく入力はなく、IGNが実在するか、そのメンバーのものかを確認する仕組みもありません。
  • どのメンバーも/delete-my-dataを実行すれば、Bot経由で自分が作った行をすべてのサーバーで削除できます。

よくある質問

Botがメンバーに項目をひとつずつ案内してくれますか?

いいえ。フォームや順番に聞いていく入力はありません。メンバーが/profile addを実行すると、Discordが列ごとにオプションをひとつずつ表示します。入力が必要なのは必須にした列(ここではIGNとMember)だけで、ほかは省略できます。

メンバーが編集できるのを自分のプロフィールだけにしたり、1人1件に制限したりできますか?

権限としてはできません。権限はテーブル全体に適用されるので、編集権限がある人はどの行でも更新でき、メンバーが2件以上追加することもできます。厳しく管理したいなら、メンバーに閲覧権限、役員に編集権限を与え、/profile viewで誰が行を作ったか確認してください。

あるサブキャラが誰のものか、メンバーはどうやって調べますか?

/profile query alts:<name>を実行します。このフィルターは、alts欄にその名前を含むプロフィールを大文字・小文字を区別せずに探します。CordBaseはゲームのデータを読み込まないので、誰かがalts列に入力したサブキャラにしか使えません。