所有文章

怎麼在 Discord 記錄成員資料、遊戲 ID 和小號

CordBase 團隊

要在 Discord 記錄成員資料、遊戲 ID(IGN)或小號,建立一張每位成員一列的資料表(IGN、階級、小號和一個 Discord 成員欄位),讓成員用斜線指令填寫。之後任何人都能用成員、IGN 或小號名稱查到一份資料。我們做的 CordBase 在 Free 方案就能做到。

公會通常把這些放在釘選訊息、幹部筆記,或一份沒人打開的試算表裡,結果每週都有人在聊天室問「Kaelmage 是誰的小號?」。這篇指南把名單放進 Discord。先說一個限制:沒有報名表單。成員要執行 /profile add,自己挑要填的選項。

完成後你會有

  • 一個 /profile 指令,有 add、query、view、update 和 delete 動作。
  • 每位成員一列:IGN、Discord 成員、階級、小號、職責和備註。
  • 可以用成員、IGN 或小號名稱查詢。
  • 決定誰能新增、編輯和刪除資料的權限。

第 1 步:建立資料表

沒有現成模板有 IGN 或小號欄位。最接近的是成員名錄,但它的第一個文字欄位是時區,而 row 選擇器搜尋的就是那個欄位。所以這張要從頭建立。

  1. 到 cordbase.gg 使用 Discord 登入,選好你的伺服器,控制台詢問時把機器人加進去。
  2. 建立一張名為「Profile」的新資料表。指令名稱會自動填成 profile。
  3. 依照下面的順序加入欄位,完成後儲存。
  • IGN:文字,必填。放第一個。row 選項會用第一個文字欄位自動完成,所以成員打 IGN 就能找到一份資料。
  • Member:使用者,必填。成員從 Discord 的成員選擇器選自己。
  • Rank:選項,用你們自己的階級當選項(例如 Officer、Raider、Trial)。
  • Alts:文字。選一種格式並固定使用,例如 Name (Class), Name (Class)。
  • Role:選項,填 Tank、Healer 和 DPS,或你的遊戲用的分類。
  • Notes:文字。

順序很重要,因為 query 的結果只顯示前四個欄位,而之後加的欄位會排在最後。資料表建立後,欄位的 key 和類型就固定了,但你還是可以新增欄位和改名稱(見資料表說明文件)。

第 2 步:設定權限

權限在資料表的編輯頁面,所以儲存後再打開它。在資料表設定任何身分組之前,每位成員都能執行每個動作,包括刪除。這樣設定身分組:

  • 給全體成員都有的身分組(例如 @Member,因為 @everyone 不能選)寫入權限。成員就可以 add 和 update。
  • 給幹部身分組管理權限,多了 delete。
  • 如果你只想讓幹部輸入資料,給成員讀取、幹部寫入。

只要設定了任何身分組,沒有列出的身分組的成員就完全不能使用這張資料表。擁有 Discord「管理者」權限的人永遠有完整權限。

要清楚寫入權限代表什麼:它涵蓋每一列,不只是成員自己的那列。有寫入權限的人可以編輯任何人的資料,也沒有東西能阻止一位成員新增兩份資料。

第 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)

更新會取代整個值,所以要把包含新小號的完整清單重打一次。「增加(加到目前的值上)」和「減少(從目前的值扣除)」模式只用於數字欄位,而這張資料表沒有數字欄位。

第 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 也行。

查詢會先列出最新的資料列,預設 10 筆,最多 25 筆。回覆會貼在頻道裡,所以在別人看得到的地方查詢。

變化版:每個角色一列

如果你想讓每個小號都有自己的職業、等級或裝備,就把資料表改成每個角色一列:IGN、Member、Class 和一個 Main 是/否欄位。這樣新增小號只是一般的 add,而 /profile query member:@Mara limit:25 會列出 Mara 玩的所有角色。代價是列數:一張 Free 資料表可以放 100 列,小號會把它們用掉。

什麼時候別的工具比較適合

如果你需要排序、公式或讓幹部批次編輯,試算表比較好。CordBase 沒有 CSV 匯入,也沒有 Google Sheets 同步。

如果資料裡有截圖和長篇介紹,大家是拿來讀而不是搜尋,每位成員一篇貼文的論壇頻道比較適合。資料表放的是短文字,不是圖片。

如果你想讓角色資料從遊戲裡抓取、不用人打字就保持最新,請用能從遊戲讀取公會名單的工具。CordBase 從不讀取遊戲資料,也沒有 API。

值得知道的限制

  • Free:2 張資料表,每張 100 列。Pro(每月 $8)取消資料表數量限制,每張資料表可以有 10,000 列,並加入已儲存的檢視和批次編輯。
  • 每張資料表最多 25 個欄位。這張資料表沒有數字欄位,所以沒有 leaderboard 動作。如果你想要,可以加一個像 level 這樣的數字欄位。
  • 沒有給成員的報名表單或逐步提示,也不會檢查 IGN 是否真的存在、是否屬於那位成員。
  • 任何成員都可以執行 /delete-my-data,刪除自己在每個伺服器透過機器人建立的資料列。

常見問題

機器人可以一步一步引導成員填每個欄位嗎?

不行。沒有表單,也沒有逐步提示。成員執行 /profile add,Discord 會為每個欄位顯示一個選項。只有你設為必填的欄位(這裡是 IGN 和 Member)一定要填,其他可以跳過。

可以限制成員只能編輯自己的資料,或每人只能有一份嗎?

權限做不到。權限套用在整張資料表上,所以有寫入權限的人可以更新任何一列,成員也可以新增不只一份。如果你想嚴格控管,給成員讀取權限、幹部寫入權限,並用 /profile view 看是誰建立了某一列。

成員要怎麼查某個小號是誰的?

執行 /profile query alts:<name>。這個篩選會找出 alts 文字裡含有那個名稱的資料,不分大小寫。它只對有人打進 alts 欄位的小號有效,因為 CordBase 不會讀取遊戲裡的資料。