0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Last updated at Posted at 2022-02-14

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

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

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?