mcrconについての記事が少なくて困ったので備忘録。
mcrconの導入
任意のコンソール(本記事ではgitbashを使う)で次のどちらかを行う。詳しくは以下を参照して環境に合わせてインストールしてください。
https://pypi.org/project/mcrcon/
gitbash
pip install mcrcon
python -m pip install mcrcon
まず初めに準備
サーバ側のserver.propertiesを次のように書き換える
server.properties
:
rcon.port=任意のポート番号 #約24行目 初期設定:rcon.port=25575
:
rcon.password=任意のパスワード #約34行目 初期設定:rcon.password=minecraft
:
enable-rcon=true #約40行目 初期設定:enable-rcon=false
:
‣rcon.port=
ではポート番号の指定ができるが特に特別な理由がない限り25575
にするのが無難だろう。
※もし考えるのがめんどうであればenable-rcon
をtrue
に編集すればよいだろう。
起動するpythonのファイルコードの頭に次のように記述(本記事ではファイル名をcmd.pyとしている)
cmd.py
import mcrcon from MCRcon #mcrconのインポート
server_address = "サーバのアドレス" #マルチプレイするときに入れるアドレス
server_pass = "任意のパスワード" #server.propertiesと同じパスワード
server_port="任意のポート番号" #server.propertiesと同じポート番号
プログラムの解説
cmd.py
with MCRcon(server_address, server_pass, server_port) as mcr:
cm=input("起動したいコマンドを入力してね!")
log=mcr.command(cm)
print(log)
入力(例)
/stop
出力(例)
stopping server!
出力と同時にサーバが止まります。
解説
server_addres&server_pass&server_port
まず初めに準備で設定した値が入る。with MCRcon(~) as mcr:
MCRcon(~):で接続したいサーバに接続します。 with ~ as mcr:で~の処理をmcrという変数にします。mcr.command()
ここでminecraftサーバのコンソールに打つようなコマンドを実行できます。今回の場合は入力したコマンドを実行します。
実行結果を出力してくれるので(log=はなくても実行できます)今回はlogに入れて出力しています。
コード全体像
cmd.py
import mcrcon from MCRcon #mcrconのインポート
server_address = "サーバのアドレス" #マルチプレイするときに入れるアドレス
server_pass = "任意のパスワード" #server.propertiesと同じパスワード
server_port="任意のポート番号" #server.propertiesと同じポート番号
with MCRcon(server_address, server_pass, server_port) as mcr:
cm=input("起動したいコマンドを入力してね!")
log=mcr.command(cm)
print(log)
最後に
今回はコマンドを出力する方法しかわかりませんでした。他にもできることがわかり次第記事を書いていきたいのでコメントくださるとうれしいです。