Discord 上で複数のゲームサーバー(例: Minecraft, Sons of the Forest, Ark など)を管理するためのボットです。
Discord チャットを通じて、ゲームサーバーの起動、停止、状態確認などを簡単に操作できます。
身内で遊ぶとき向けです。
- 複数のゲームサーバーを管理:
- 各ゲームサーバーに対応するコマンド(例:
mc.start,sof.start)を使用して操作可能。
- 各ゲームサーバーに対応するコマンド(例:
- サーバーの起動・停止
<prefix>.startコマンドで、特定のサーバーを起動。<prefix>.stopコマンドで、特定のサーバーを停止。
- サーバーの状態確認:
r.statusコマンドで、すべてのサーバーの状態を一覧表示。<prefix>.statusコマンドで、特定のサーバーの状態を確認。
- ヘルプメッセージ:
r.helpコマンドで、利用可能なゲームサーバーとコマンドを確認。<prefix>.helpコマンドで、特定のゲームサーバーの詳細なコマンドを確認。
- 管理者専用コマンド:
- 管理者のみが実行可能な
.cmdコマンドをサポート(例: 任意のサーバーコマンドを送信)。
- 管理者のみが実行可能な
-
必要なライブラリをインストール
pip install -r requirements.txt
-
config.jsonを設定config.jsonファイルを作成し、以下のように記述。
{ "token": "YOUR_DISCORD_BOT_TOKEN", "games": [ { "name": "minecraft", "prefix": "mc", "runsh": "Servers/mc/run.sh", "stop_method": "command", "stop_command": "stop", "admin_only_commands": true, "enabled": true }, { "name": "sons_of_the_forest", "prefix": "sof", "runsh": "Servers/sof/run.sh", "stop_method": "ctrl_c", "stop_wait_time": 120, "admin_only_commands": false, "enabled": true } ] }token: Discord Bot のトークンを設定。games: 管理するゲームサーバーの設定を記述。name: ゲームの名前。prefix: Discord コマンドで使用するプレフィックス(例:mc)。runsh: サーバー起動スクリプトのパス。stop_method: サーバー停止方法(commandまたはctrl_c)。stop_command: 停止コマンド(stop_methodがcommandの場合に必要)。stop_wait_time: 停止コマンド送信後に待機する時間(秒単位)。admin_only_commands: 管理者専用コマンドを有効にするかどうか。enabled:true: サーバーを有効化(ボットで管理対象にする)。false: サーバーを無効化(ボットで管理対象から外す)。
-
ボットを起動
python serverstarterbot.py
-
r.help:- 利用可能なゲームサーバーとコマンドを一覧表示。
-
r.status:- すべてのゲームサーバーの現在の状態を一覧表示。
-
r.reload:- 設定ファイル(
config.json)を再読み込みし、ゲームサーバーの設定を更新。 - サーバーの有効/無効を切り替えるには、
config.jsonのenabled項目を変更してからr.reloadを実行する。
- 設定ファイル(
-
<prefix>.help:- 特定のゲームサーバーの詳細なコマンドを表示。
-
<prefix>.start:- 指定したゲームサーバーを起動。
-
<prefix>.stop:- 指定したゲームサーバーを停止。
-
<prefix>.kill:- 指定したゲームサーバーを強制終了。
-
<prefix>.status:- 指定したゲームサーバーの現在の状態を確認。
-
<prefix>.cmd <コマンド>:- 任意のコマンドをサーバーに送信(管理者専用)。
- 例:
mc.cmd time set day