Minecraftのserver起動のCommand入力を出来るだけ楽にしたい

こんにちは。里芋のすり身です。
突然ではありますが、
「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
#================================================#
#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内の

```python
os.chdir('/Users/~~~~~~/~~~~~~~/Application Support/Minecraft/~~~~~~~~~~') #change directly
```
の部分がもしMinecraftファイルの中にserver専用ファイルを用いてた場合はこの~~~~の部分はそのファイル名にしてください。一回設定してしまえば、後で場所を動かさなければ書き換える必要がないので。

#最後に起動ファイル化
あとは

```
$ ~~~ % pyinstaller mine_driver.py --onefile
```
で、はい！出来上がりです。
これで、起動も確認できると思います。わからなかったら質問待ってます。
初心者コマンドなので、どうか非難とかは怖いです。やめてほしいです。

それでは、ここまで読んで頂いて、ありがとうございました。