CurseForgeが提供するサーバー(以下ForgeServerと記す)の機能は主にサーバーの起動、操作、そして停止であり、プレイヤーのゲーム入退室を通知する機能は備わっていない。
したがって、watchdogで常にログファイルを監視し、必要に応じてDiscordのサーバーに通知を行うDiscord Botを作成した。
更新されたログから以下の情報を検知した場合、Discordのサーバーに通知を行う。
- プレイヤーがゲームに参加した
- プレイヤーがゲームを退出した
- プレイヤーが進捗を達成した
Discordサーバーには、以下の情報を通知する。
- ゲームに参加した日時とプレイヤー名
- ゲームに参加した日時とプレイヤー名
- 進捗を達成した日時と進捗名とプレイヤー名
$ sudo apt update && sudo apt upgrade -y
$ sudo apt install python3.10-venv
$ python3 -m venv venv_4_Bot
$ source ./venv_4_Bot/bin/activate
(venv_4_Bot) $ python3 -m pip install discord.py
(venv_4_Bot) $ python3 -m pip install watchdog
用意するもの
- チャンネルのID
- Botのトークン
- マインクラフトのサーバーが生成する
latest.logが保管されている絶対パス
それぞれを、bot.pyの必要な箇所に入力する。
(venv_4_Bot) $ python3 bot.py
この場では、ソースコードの解説は行わない。
なお、技術書典16で販売予定である「TECHNOLOGICS VOL.4」では解説が掲載されているので、必要であればそちらを参照されたい。
URL:(2024年6月上旬より販売開始予定)
This project is licensed under the MIT License, see the LICENSE file for details.