見出し画像

遊戯王カードをドローできるDiscord Botを作った

(※)機能のアイデアは以下のサイトを参考にさせていただきました。

お久しぶりです、キャベツです。最近は東京の暑さに心底参っています。北海道が恋しい。

今回はちょっとした夏休みの工作として自作した、遊戯王カードをドローできるDiscord Botを紹介します。


Discord Botとは

名前の通りDiscordで利用できるボットで、サーバ(ディスコードのグループ)にメンバとして導入することで拡張機能のように使用できます。

『Draw!!』が今回作成したDiscord Bot

私はよく知らないですが、タスクスケジューラや文章の翻訳、ニュースの通知など色々と便利なBotがあるみたいですね。

公開されているDiscord Botは、左サイドバーでサーバアイコンを右クリック->サーバ設定->Appディレクトリから検索できます。詳細はググってください。

『Draw!!』の機能

今回私が作成したDiscord Bot『Draw!!』は、「/draw」コマンドを入力すると、OCG準拠のカードプールからランダムに1枚をドローし、遊戯王カードデータベースのリンクを返してくれるボットです。

なんでもいいからカードを1枚引きたいときに使用できます。

コマンドの後ろに「type」オプションを付けることで、モンスター・魔法・罠(monster/spell/trap)を指定してドローすることも可能です。

# 魔法をランダムにドローする
ex) /draw type:spell

単純ですね。

カードプールはその時々の最新まで対応しますが、カードデータの更新の関係でアップデートに数日程度のラグが発生する場合もあります。

導入方法

以下のリンクから、自身が管理者権限を持つサーバに導入できます。

このアプリは、上で紹介したAppディレクトリでは公開されていません(審査とか必要なので)。未審査では100サーバが加入上限で、85サーバくらいに加入すると公式から「審査受けてね」というメールが届くらしいです。

気が向いたら入れてやってください。キック(サーバからの追放)はDiscord右サイドバーのメンバアイコンを右クリックすれば簡単にできます。

技術的な話

  • 使用ライブラリ:discord.py

  • 環境:Raspberry Pi 4(Ubuntu 23.04)

『Draw!!』の本体は自宅のラズパイで動かしています(なので自宅のブレーカーが落ちたりするとボットが落ちます)。

メインの機能は見ての通り特に難しいことはしていません。どちらかといえば、Pushbulletを用いたイベントの通知や安全なカードデータの更新方式など、安定運用を目指した自分向けの機能を充実させています。

技術記事ではないのでコードの云々は書きません。

連絡先

不具合等ありましたら下記の連絡先にご連絡いただけると助かります。XはDMを開放しています。「こんな機能ほしい!」とかもありましたらお気軽にどうぞ。

おわりに

勉強が半分、自宅で腐っていたラズパイの有効活用が半分といった具合で作ってみました。ドローのオプションの追加などはとりあえずやろうと思っています。

お盆休みも明けて今年の夏も終盤ですね。皆様も良き遊戯王ライフをお過ごしください。

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