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 3 years have passed since last update.

【Minecraftサーバー】初心者が作った半自動ワールド切り替え

Last updated at Posted at 2021-04-11

#シェルによるワールド切り替え
サーバーでワールドの切り替えを手動でするのが面倒なので作ろうと思いました。
いろいろ引用して作ってるのと、最近勉強し始めたばかりなのでスマートじゃないところがありますが、ご了承ください。

Minecraftのゲーム内の切り替えではなくOS上でできるものです。

##Minecraftサーバー環境
Ubuntu server 20.04 LTS
Minecraft全バージョン

#事前準備
・シェルなどを動かす際、便利なのでscreenでサーバーを動かします。
screenのインストール

screen
$ sudo apt-get install screen

・ファイルの作成
ワールドを止める際に一応バックアップをとるのでそのためのファイルを作成します。
※これは必須ではありません。推奨です。

mkdir
$ mkdir BU

#シェルスプリクト
今回のメインのプログラムです。
まずは自分の好きな場所にシェルを作ってください。

vi change.sh
change.sh
#!/bin/bash
#
#起動ワールドの切り替えスプリクト

########## ワールド内の通知 ###########
 #worldname,gameversion変更可能
 worldname=skyblock
 gameversion=1.16.5
 #起動中のワールド内のアナウンス
 screen -S minecraft -X stuff 'say '$time1'秒後に再起動し、'$worldname'に切り替えます。'`echo -ne '\015'`
 screen -S minecraft -X stuff 'say 次の'$worldname'のバージョンは'$gameversion''`echo -ne '\015'`
 sleep '$time1'
 screen -S minecraft -X stuff 'say 停止します。'`echo -ne '\015'`
 sleep 5
 screen -S minecraft -X stuff 'stop'`echo -ne '\015'`

########## minecarftが完全に終了するまで待機 ##########
 #javaのプロセス数を数えてるため
 #ほかにjavaを動かしていたら調整してください
 count1=`ps -ef | grep java | grep -v grep | wc -l`
 while :
 do
     if [ $count1 = 0 ] ; then
         break
     else
         sleep 0.5
         count1=`ps -ef | grep java | grep -v grep | wc -l`
     fi
 done

########## バックアップ開始 ##########
  #Temporaryの作成
  #仮のファイルです
  mkdir ~/バックアップファイルの場所/Temporary
  #world,world_nethr,world_the_end,logsのみコピー
  cp -rf ~/マイクラサーバのパス/world ~/バックアップファイルの場所/Temporary
  cp -rf ~/マイクラサーバのパス/world_nether ~/バックアップファイルの場所/Temporary
  cp -rf ~/マイクラサーバのパス/world_the_end ~/バックアップファイルの場所/Temporary
  cp -rf ~/マイクラサーバのパス/logs ~/バックアップファイルの場所/Temporary
  #時間をつけてzip
  zip -r ~/BU/`date "+%Y%m%d_%H%M"`.zip ~/BU/Temporary
##########切り替え##########
 screen -S minecraft -X stuff 'cd ~/二個目のマイクラサーバのパス/'$worldname''`echo -ne '\015'`
 sleep 5s
 ##########java起動#########
screen -S  java -Xmx4G -Xms4G -jar server.jar '\015'`

もう一つのワールドの.jarファイルが入っているディレクトリ名とworldnameを共通にすることで変更することができます。自分の環境に合わせていじってください。

シェルに権限を渡します。

権限
$ chmod 777 change.sh

#Minecraftの起動方法
screenで起動しますが、screenの名前がminecraftじゃないとダメですのでminecraftscreenを起動してください。

名前付きscreen
screen -S minecraft

アタッチの場合は

アタッチ
screen -r minecraft

screen上で一つ目のワールドを起動しておきます。

起動
$ cd マイクラサーバのパス
$ java -Xmx4G -Xms4G -jar server.jar

#実際に動かしてみる。
一つ目のワールドが起動しているときに、実際にシェルを動かしてみる。

$ ./backup.sh

すると、ワールド内に通知が飛びますので、それを確認してください。
スクリーンショット (4).png

ついでにバックアップも圧縮して作成されています。下記の写真は解凍後の写真です。
スクリーンショット 2021-04-11 155527.png
スクリーンショット 2021-04-11 155452.png

一応これで以上になります。

めちゃわかりやすくて下記を参考にしました。

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?