見出し画像

EDHの戦績を登録するBOT(サーバー)作った

タイトルのまんまです。

DiscordのBOTを使ってEDHの成績を登録するサーバーを作りました。


きっかけは

「〇〇EDH会 5-5」とかX上で見かけたりしますし

各種 統率者EDHイベントで対戦記録、note対戦レポを書いてくれる偉い人たちがいますよね?

あーいう記録をちゃんと残せるアプリ作ったろっていう気持ちが発端です。



とういうのはまー建前で。

「〇〇の次の手番だと脳筋ぶっぱするから勝ちやすいんだよなー」

本当はこういう会話がいつだったかに発生して
戦績を記録してデータとして見返したら面白いかもねーが全ての始まりです。


てなわけで作りました。


そもそも成績がどう見えるのか?


今後見え方とかは変えていく予定ですが、β版としてはこんな感じ

今までに登録した成績限定になりますが
全体の勝率(席順含む)と統率者別のデータを出せます。

見た目は暫定版なので今後は全然違う形になりかもしれません。

とりあえず表示するデータを日付指定か、週間 or 月間で出せるようにするのも面白いかもしれないなーっていうくらいしか考えてません。



なにが出来るアプリ(BOT)なのか


EDHの成績を記録(統率者毎)できるアプリ(BOT)です。


たったこれだけなんですが
ここまで読んでくれた人の中には DiscordのBOT?アプリって??なんぞ?
っていう人もいると思います。

BOT、アプリとは

そもそもDiscordというツールの中にBOTっていう存在がいます。

Discordを開いた際に、右のメンバー欄に「アプリ」とかついてるユーザーのことです。

(Discord入っていない人はぜひインストールしてEDH鯖とかに入ってみてください)


そしてアプリとは

+から色々できるよ!

チャット欄の「+」をクリックすることで出てくる選択肢だとか

アプリ版でもにてるよ

BOTを右クリックしたら表示される機能の事です

これがアプリです。


押したら、BOTがもつアプリ機能の選択肢だとかが表示されます。


こんなのとか

チャット欄から実行できるスラッシュコマンドや


メンバーが表示される右側にあるBOTのを右クリック

こんなのが出ます。


私が作ったBOTはこれらのアプリ機能から、統率者登録や成績を登録してもらう感じです。

全体の流れというかイメージはこうです。

大会の成績登録に近いよね



BOTの各機能紹介(2024.7.17現在)

とにもかくにも実際に各アプリ機能のイメージ図です。

ユーザー登録

なにはともあれ、ユーザー登録。
これをしないとほとんど全部の他のアプリ機能が使えません。

統率者登録

成績を登録する統率者を登録するコマンドです。
複数回設定可能ですが、登録解除的な機能は未実装なので要注意。

全角でも半角でもOK

そもそも統率者のIDは下記のコマンドから探してくるか、統率者の一覧ページがあるのでそちらを確認ください。

/commander 統率者実行モード:ID検索 統率者名:木霊

個人成績登録

個人成績

実行後、勝敗結果 → 席順 → 統率者 を選択して成績を登録します。

登録が完了したらゲームIDが発行されます
※登録データに変更が必要な場合はゲームIDで問い合わせてください



卓成績登録

卓成績は卓全員の成績登録になります。
前提としてユーザー全員の登録が必要です。

大会みたいに、勝者が勝利報告をし→同卓したユーザが承認をする

その後にデータが記録される仕組みです。
(EDHなので同卓したユーザー全員(3人)から承認を得ないとだめです)


卓成績登録:勝者

勝者はアプリ実行して、銅鐸したユーザーをメンションする形で
BOTに返信する。あとは自身の勝利結果を登録。


卓成績登録:承認者

同卓ユーザーはメンションされるので

承認者は自身の席順 → 統率者選択 することで承認が完了します。


卓成績登録:承認が全部揃った場合

全員の承認が実行された後にデータが正式登録されます。
ゲームIDが発行されますので、もしデータの変更が必要な場合はこの値をもとに問い合わせしてください。



成績表示

日付指定か週間/月間単位で成績をまとめ表示できたらおもしろいできたら面白いかな

個人成績の取得が完了しました。
個人登録成績結果
--------------------------------
全体勝率:44.4%(4/9)
席順別: ① 0.0% ② 40.0% ③ 100.0% ④ 33.3% 【不明/その他】 0.0%(0/0)
↓ ↓ ↓


--- 統率者別 ---
統率者:統率者設定なし・不要
勝率 : 100.0% (1/1)
席順別: ① 0.0%(0/0) ② 100.0%(1/1) ③ 0.0%(0/0) ④ 0.0%(0/0) 【不明/その他】0.0%(0/0)
ターン勝利について: 3.0 【 1:2T以下、2:3T、3:3~4T、4:4~6T 、5:ロングゲーム(7T or 40分 以上) 】
※ターン不明で登録されている情報は計算対象外
---
統率者:織り手のティムナ/Tymna the Weaver + 東の樹の木霊/Kodama of the East Tree
勝率 : 0.0% (0/1)
席順別: ① 0.0%(0/0) ② 0.0%(0/1) ③ 0.0%(0/0) ④ 0.0%(0/0) 【不明/その他】0.0%(0/0)
ターン勝利について: - 【 1:2T以下、2:3T、3:3~4T、4:4~6T 、5:ロングゲーム(7T or 40分 以上) 】
※ターン不明で登録されている情報は計算対象外
---
統率者:苛まれし預言者、エルス/Eruth, Tormented Prophet
勝率 : 42.9% (3/7)
席順別: ① 0.0%(0/0) ② 33.3%(1/3) ③ 100.0%(1/1) ④ 33.3%(1/3) 【不明/その他】0.0%(0/0)
ターン勝利について: 2.3 【 1:2T以下、2:3T、3:3~4T、4:4~6T 、5:ロングゲーム(7T or 40分 以上) 】
※ターン不明で登録されている情報は計算対象外

最近の戦績

今まで登録してきた成績の表示です。見た目はそのうち変える予定です。

一応卓成績表示ボタンはありますが、未実装です。(データは記録してる)




以上、各種コマンドの実行イメージになります。

が、一番早いのは自分で挙動を確かめることですかね。

今はβ版なので↑の招待リンクは人数制限かかってます。
切れて入れなかったらXで教えて下さい。



適当なあとがき

  • BOTなので、正直別のサーバーで動かすことも可能です。
    今はそういう作りになっていませんが、要望あったら考えるかもしれないです。

  • 負荷やばい → 激重だったら機能制限するかもです

    • 私に投げ銭してくれたらサーバースペック上げます。

  • ちゃんとアプリ、DB設計したのでなんかふつーにお金もらえるプロジェクト並のコード量になってびっくりしました。
    というわけ久しぶりの個人開発で楽しかった。機会に感謝

  • 自分でちゃんと成績登録使ってみた結果

    • ポチポチしても思ったけど、おもったよりめんどくさい(え

    • 自分の負け成績登録するの辛かった

    • データを分析したい人か、戦闘狂むけ


なんか更新項目あったら続きを書きます。

それでは。




この記事が気に入ったらサポートをしてみませんか?