【Minecraft服务器】由初学者创建的半自动世界切换

使用Shell切换世界

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

这是在操作系统上而非Minecraft游戏内部可以实现的切换方式。

Minecraft服务器环境

Ubuntu 服务器 20.04 LTS
Minecraft全版本

事前准备

为了方便地运行Shell等程序,我会使用screen来运行服务器。安装screen软件。

$ sudo apt-get install screen

在停止运行世界之前,我会创建一个文件来进行一份备份。
※这并非是必须操作,但推荐执行。

$ mkdir BU

执行脚本

请先在你喜欢的地方创建一个shell,这是本次的主要程序。

vi 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'`

可以通过将另一个World的.jar文件存放在相同的目录名和worldname下来进行更改。请根据自己的环境进行调整。

将权限授予Shell。

$ chmod 777 change.sh

Minecraftの起動方法

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

screen -S minecraft

アタッチの場合は

screen -r minecraft

我会在屏幕上启动第一个世界。

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

试着实际操作一下。

当第一个世界启动时,尝试实际运行外壳。

$ ./backup.sh
スクリーンショット (4).png
スクリーンショット 2021-04-11 155452.png

基本上就是这样了。

非常易懂,我参考了下面的内容。

bannerAds