こんにちは。里芋のすり身です。
突然ではありますが、
「Minecraft」(以下マイクラと表記)というゲームは好きですか?
みんな好きだと思ってます。
ただ、マイクラサーバーをCommandで入力するとき、
$ ~~~ % cd ~~~/~~~/~~~/~~~/Minecraft/サーバー用ファイル
$ ~~~ % java -Xmx~G -Xms~G -jar server.jar nogui
のような、Command入力していませんか?
これ、正直面倒ですよね。そこで、楽にしてみたいと思って、ちょこっとプログラミングを書いてみました。よければ見ていってください。
#Minecraftの事前準備
Minecraftのインストールはお済みでしょうか?この記事はマインクラフトサーバーを自分で立てようと思ってない方以外は役に立てないと思うので、その点ご留意を。
###本当に簡単なサーバーの立て方の説明
Minecraftからダウンロードしたserver.jarを[Application Support/Minecraft/サーバー用ファイル]の中に突っ込んでjarファイルを解凍。その後server.jarをクリック。Command入力の場合は、
$ ~~~ % cd ~~~/~~~/~~~/~~~/Minecraft/サーバー用ファイル
$ ~~~ % java -Xmx~G -Xms~G -jar server.jar nogui
で、起動します。(~は任意の数)
###cd-->java ~ が面倒で仕方がない
これすら面倒になりました。そこで勝手に起動してくれるようにできないかなぁと思った時に、
pythonの
$ ~~~ % pyinstaller mine_driver.py --onefile
で、windowで言えばexe化、macで言えば起動アプリ化できることが閃きまして、pythonでterminalを操作できれば起動アプリが作れるぞ!と思い、ちょこっと書いてみました。
##Commandを動かす上での注意
これは、server.jarが[Application Support/Minecraft/サーバー用ファイル]に入っていることが前提です。あと、これはターミナルを移動するコマンドを書いているだけなので、実際に動かしているのはterminal操作であってjavaをpythonで起動させている訳ではないです。初心者Commandなので、その点ご留意を
#================================================#
#Pythonとserver.jarを組み合わせた楽々起動マン
#作成日:2022/02/13
#製作者:里芋のすり身
#================================================#
import subprocess
import os
import sys
#================================================#
#1.PATHの取得から、Minecraftのファイルまでの自動移動
#================================================#
path = os.getcwd() # PATHの取得
print('現在のPATHは ' + path + ' です。') #そのpathを出力
def change_file():
while True:
choice = input("Minecraftファイルまで移動します。よろしいですか?[y/N]").lower()
if choice in ['y', 'ye', 'yes']:
return True
elif choice in ['n', 'no']:
return False
if __name__ == '__main__':
if change_file():
os.chdir('/Users/~~~~~~/~~~~~~~/Application Support/Minecraft/~~~~~~~~~~') #change directly
path = os.getcwd() #PATHの更新
print('現在のPATHは ' + path + ' です。')
else:
print('変更しませんでした。')
path = os.getcwd() #更新などないが、一応更新
print('現在のPATHは ' + path + ' です。')
sys.exit()
#================================================#
#2.実際に移動したファイルでサーバーを起動
#================================================#
def running_minecraft():
while True:
choice = input("Minecraftを起動します。よろしいですか?[y/N]").lower()
if choice in ['y', 'ye', 'yes']:
return True
elif choice in ['n', 'no']:
return False
if __name__ == '__main__':
if running_minecraft():
try:
subprocess.run("java -Xmx4G -Xms1G -jar server.jar nogui",shell = True)
except:
print ('ERROR')
else:
print('起動しませんでした。')
こんな感じにしました。他の人のプログラミングを少し参考にさせてもらってます。
python内の
os.chdir('/Users/~~~~~~/~~~~~~~/Application Support/Minecraft/~~~~~~~~~~') #change directly
の部分がもしMinecraftファイルの中にserver専用ファイルを用いてた場合はこの~~~~の部分はそのファイル名にしてください。一回設定してしまえば、後で場所を動かさなければ書き換える必要がないので。
#最後に起動ファイル化
あとは
$ ~~~ % pyinstaller mine_driver.py --onefile
で、はい!出来上がりです。
これで、起動も確認できると思います。わからなかったら質問待ってます。
初心者コマンドなので、どうか非難とかは怖いです。やめてほしいです。
それでは、ここまで読んで頂いて、ありがとうございました。