マイクラを友達と同じワールドで遊ぶために必ず必要なマイクラサーバー。
しかし、VPSなどを借りてサーバーを運用すると、2人で遊ぶにしてもメモリ2GB, 3core 程度のスペックは必要ですので1800円程度毎月かかってしまいます。
毎日遊ぶならいいですが、たまにしか遊ばないのにずっと料金がかかり続けるともったいないですよね。
また、飽きる時期が来るのでほとんど人のいないサーバーにお金を払い続けるのは、管理する人にとっては負担ですし、遊んでいた人にとっては申し訳ない気持ちになります。
asagao for minecraft を使えば、遊んだ時間だけ課金されるので格安でマイクラサーバーを管理できます。
Discordにコマンドを入力するとConoHaのサーバーを作ったり壊したりします。もちろん、データはサーバーのImageとして保存します。
マイクラのサーバーを立てて友達と遊びたい。でも金は払いたくない。そんなあなたに最適。
asagao for minecraft とは
Discordから指定のメッセージを送信すると、ConoHaにMinecraft用のVM(バーチャルマシンサーバー)を構築、もしくは(データを保存の上)VMの破棄を行います。 これにより、マインクラフトを遊んでいる時間のみサーバーが課金され、安く運用することができます。
遊び終わった後にDiscordに/mc close
と投稿すると、VMデータを退避(imageへ保存)しVMを破棄します。 これによって、破棄した後は料金の発生を防ぐことができます。
また遊びたいときはDiscordに/mc open
と投稿すると、退避していたimageからVMを作成します(使い終わったimageは破棄します)。 これによって、ConoHaの課金が始まりますがMinecraftサーバーでまた遊べるようになります。
VMの構築が完了するとipアドレスが表示されます。
これをマイクラに入力するだけです。
1時間の料金が3円ほどなので、毎週8時間くらい遊んだとしたら30~40円くらい?
使い始めたばかりなので正確にはわかりませんが。
使い方
デプロイ先
詳しくはリポジトリのReadmeに書いているのでそちらを参照してください。
Herokuやクラウド(できれば無料枠がいいと思いますね)で運用するのが無難なところ。
また、raspberry.piなどを用いるのもいいのではないかと考えています。
マイクラサーバーを自宅で構築するのと違って、ポートを開かなくても動くので安心ですし、プログラムの処理的にも軽いと思うのでラズパイでも十分だと思います(多分)。電気代も安いし。
個人的にはHerokuなどのクラウドやラズパイなどは使ってないので頑張って!
ちょっと手間ですが、使う前にPCでスクリプトを起動するという手もあります。
超ざっくりした使い方
できれば新しいPythonの環境を用意します。少なくともPython 3.5.3以上でしか動きません。Python3.9で動作確認してます。
必要なライブラリをインポートして、本スクリプトをサーバー等に設置します。
python3 -m pip install -U discord.py
pip install requests
DiscordBotの設定を行います
詳しくはDiscord Botのアカウント初期設定を行うをご覧ください。
環境変数に値を設定します
DISCORD_TOKENを設定するとConoHaAPIを使わないコマンドは動くようになります。
main.pyを実行します。
CONOHAAPIVMPLANFLAVOR_UUIDは使用するConoHaのプランのIDです。 /mc planとDiscordのminecraftチャンネルで投稿すると、ConoHaのプラン一覧を表示してくれます。「g-c3m2d100」は3Core, 2GB memory, 容量100GBのはず。
環境設定が終わったらConoHaに手動でマイクラサーバーを立てます。
イメージが用意されてますので簡単に作れます。
使ってみる
現在、VMが存在しているのでConoHaに対して料金が発生しています。 以下のコマンドをDiscordのminecraftチャンネルに投稿してみましょう。
/mc close
無事成功すれば、サーバーリストから先ほど作成したVMが消えていることが確認できます。 その時、イメージを確認すると同じ名前のネームタグが付いたイメージが生成されていることも確認できます。これで料金がかからない状態になりました。
また、遊びたくなったとします。その時は以下のコマンドを投稿します。
/mc open
無事成功すれば、サーバーリストにimageから新しくVMが生成され、使い終わったimageはなくなっていることが管理画面から確認できると思います。
VMを再作成している仕様上、毎回サーバーのipアドレスは変更してしまいます。Discordに表示されたものを使用してください。
コマンドの一覧は以下のコマンドで確認できます。
/mc help
まとめ
注意事項とか読んだうえで使っていただけるとありがたいです。