環境構築からWEBアプリ開発・スマホアプリ開発まで。ときには動画制作やゲームも。

supilog
すぴろぐ

【minecraft】統合版マルチサーバー構築のおまけ【手順】

【minecraft】統合版マルチサーバー構築のおまけ【手順】

前回のおまけです。(前回はマルチサーバーを新規構築する全手順を記載しました)

前回の内容が前提となる手順ですので、ご了承ください!

さて。おまけとは何かなんですが、次の2個の手順も記載しておきます。

  • ワールドの新規作成や作り直し
  • 設定ファイルの中でとくに重要そうなもの
  • 許可した人にのみログイン権限を付与する
  • bedrock alpha server の新バージョンが出て、バージョンアップする方法

おまけ程度に数行で済むかなーなんて思って書き始めて・・・思ったよりボリュームがあるかも?w

雑に手順を載せておきますので、もしよかったら見てください。

ワールドの新規作成や作り直し

まず、ワールドデータの存在する場所は以下になります。

$ cd /usr/local/games/minecraft/bedrock-server/worlds
$ ls -la ./
-------
drwxr-xr-x  3 root root   24 Mar 24 07:59 .
drwxr-xr-x 14 root root 4096 Mar 24 07:59 ..
drwxr-xr-x  3 root root   75 Mar 24 07:59 TestServer
-------

この「TestServer」というディレクトリが1個のワールドデータです。前回の手順どおりに構築を行うと、「’Bedrock level’」という名前でワールドが作成されているかもしれません。

説明していませんでしたが、設定ファイルにてワールド名を設定することが出来ます。level-nameの部分がディレクトリの名前になっています。

$ vi /usr/local/games/minecraft/bedrock-server/server.properties
-----
(...略...)
max-threads=8
# Maximum number of threads the server will try to use. If set to 0 or removed then it will use as many as possible.
# Allowed values: Any positive integer.

level-name=TestServer
# Allowed values: Any string without semicolon symbol or symbols illegal for file name: /\n\r\t\f`?*\\<>|\":

level-seed=
# Use to randomize the world
(...略...)
-----

minecraftサーバーを起動した時に、level-nameで指定した名前のワールドデータが存在しない場合には、新規にワールド生成してくれます。ということで、

# ワールドデータを破棄して新規にする場合は、ワールドデータを削除しminecraftを再起動する
$ cd /usr/local/games/minecraft/bedrock-server/worlds
$ rm -rf ./TestServer
$ systemctl restart minecraft
# 前のワールドデータも保管しておきたい場合は、level-name値を変えよう
$ vi /usr/local/games/minecraft/bedrock-server/server.properties
-----
level-name=TestServer2nd
-----
$ systemctl restart minecraft


$ ls -la /usr/local/games/minecraft/bedrock-server/worlds
-----
drwxr-xr-x  4 root root   45 Mar 24 08:13 .
drwxr-xr-x 14 root root 4096 Mar 24 08:12 ..
drwxr-xr-x  3 root root   75 Mar 24 08:12 TestServer
drwxr-xr-x  3 root root   75 Mar 24 08:13 TestServer2nd
-----
→新規ワールドが生成されました。元のデータで遊びたくなった場合には、
server.propertiesで旧ワールド名を指定して再起動してあげると良いでしょう。

ちなみに、このワールド名はほとんど使われないので、自分が区別できる分かりやすい名前で良いです。ログインして設定を開けば見れますが、これが唯一の表示ではないだろうか。

設定ファイルの中でとくに重要そうなもの

実はわたしも設定の隅から隅までは詳しくないので、重要そうなところのみの説明です。

server.propertiesからいくつかチョイスしてみました。

server-name

先程のlevel-nameとの違いのために記載しました。大して重要ではありません。

server-name=Dedicated Server

表示される場所はここです。見切れていますが・・。お好きな名前をどうぞ♪

gamemode

gamemode=survival

こちらがゲームモードです。設定できる値は、”survival”, “creative”, “adventure”となっています。

difficulty

difficulty=easy

ゲーム難易度です。設定できる値は、”peaceful”, “easy”, “normal”, “hard”です。

level-seed

level-seed=

シード値です。デフォルトは空になっており、新規ワールド生成の度にランダムな値が振られるようになっています。

その他の設定

大幅に説明をサボりましたが、他にも「接続人数の設定」や「チートの許可設定」「タイムアウト値の設定」など細かい設定があります。詳しく説明してくれているサイトが幾つかあると思いますので、探してみてください。

許可した人にのみログイン権限を付与する

マルチサーバーを運用する場合、これに関しては必要な場面が出てくることも容易に想像ができます。順を追ってみてみましょう。

server.properties

※必要な箇所のみ抜き出しています

allow-list=true
default-player-permission-level=member

まず「allow-list」の値をtrueにします。「default-player-permission-level」の値は初期値としてmemberになっていますので、変更せずそのままにしましょう。

自分のIDを確認し、設定に追加しよう

前回やった手順で起動していた場合、ログの確認が出来ないので、一度停止します。

$ systemctl stop minecraft

ここで許可したいユーザーのゲーマータグをチェックしておきます。まずは自分のIDを追加したいので、確認しておきましょう。わたしの場合は「SupiCraft」というタグ名になります。

手動でminecraftを実行します。また手動で実行した状態だとコマンドが打てますので、コマンドでユーザー追加をします。

$ cd /usr/local/games/minecraft/bedrock-server/
$ ./bedrock_server
-----
[2022-03-24 08:55:08:501 INFO] Starting Server
[2022-03-24 08:55:08:501 INFO] Version 1.18.12.01
[2022-03-24 08:55:08:501 INFO] Session ID 99423807-ba05-4587-8c66-70ff59fd45ac
[2022-03-24 08:55:08:501 INFO] Level Name: TestServer2nd
[2022-03-24 08:55:08:568 INFO] Game mode: 0 Survival
[2022-03-24 08:55:08:568 INFO] Difficulty: 1 EASY
[2022-03-24 08:55:08:605 INFO] opening worlds/TestServer2nd/db
[2022-03-24 08:55:09:171 INFO] IPv4 supported, port: 19132
[2022-03-24 08:55:09:172 INFO] IPv6 supported, port: 19133
[2022-03-24 08:55:09:451 INFO] Server started.
[2022-03-24 08:55:09:480 INFO] IPv4 supported, port: 59442
[2022-03-24 08:55:09:480 INFO] IPv6 supported, port: 59613
-----
→起動するとログが流れます。

allowlist add SupiCraft
※ログが出ている下に入力してしまってOKです。
-----
Player added to allowlist
-----
→これで追加されました。

この状態で、ワールドにログインすると無事にログインすることが可能です。

特定の人とのみ遊びたい場合には、「ゲーマータグ」を教えてもらい、同じ手順を実行しましょう。

オペレーター権限を付与したい

最初にdefault-player-permission-levelで設定した通り、デフォルトはmemberという権限になりますが、特定の人には管理者権限を与えたい場合の手順です。

まず、先程と同じように、手動で起動します。

$ cd /usr/local/games/minecraft/bedrock-server/
$ ./bedrock_server
-----
[2022-03-24 08:55:08:501 INFO] Starting Server
[2022-03-24 08:55:08:501 INFO] Version 1.18.12.01
[2022-03-24 08:55:08:501 INFO] Session ID 99423807-ba05-4587-8c66-70ff59fd45ac
[2022-03-24 08:55:08:501 INFO] Level Name: TestServer2nd
[2022-03-24 08:55:08:568 INFO] Game mode: 0 Survival
[2022-03-24 08:55:08:568 INFO] Difficulty: 1 EASY
[2022-03-24 08:55:08:605 INFO] opening worlds/TestServer2nd/db
[2022-03-24 08:55:09:171 INFO] IPv4 supported, port: 19132
[2022-03-24 08:55:09:172 INFO] IPv6 supported, port: 19133
[2022-03-24 08:55:09:451 INFO] Server started.
[2022-03-24 08:55:09:480 INFO] IPv4 supported, port: 59442
[2022-03-24 08:55:09:480 INFO] IPv6 supported, port: 59613
-----

次に、そのユーザーでログインをします。ログには以下のように表示されます。

[2022-03-24 09:04:22:605 INFO] Player connected: SupiCraft, xuid: 0000000000000000

この状態で、opコマンドを打ちます。

[2022-03-24 09:04:22:605 INFO] Player connected: SupiCraft, xuid: 0000000000000000
op SupiCraft

これで管理者権限が付与されました。設定に追加されるので、確認してみます。

cat /usr/local/games/minecraft/bedrock-server/permissions.json 
-----
[
   {
      "permission" : "operator",
      "xuid" : "0000000000000000"
   }
]
-----

以上です。

Bedrock Server バージョンアップ

今回、一番重要なところがココですね。

マイクラがアップデートされて、スマホなどのアプリがバージョンアップされてしまうと、マルチサーバー側も更新しないと遊べなくなりますので、この手順は必須手順となります。

ご確認ください。

# minecraft停止
systemctl stop minecraft

# バックアップ
export BEDROCK_BACKUP=bedrock-server.`date "+%Y%m%d"`
mv /usr/local/games/minecraft/bedrock-server /usr/local/games/minecraft/backups/${BEDROCK_BACKUP}
 
# ダウンロード・展開
(公式ページにアクセスして、新バージョンのナンバーを確認してバージョンを書き換えてください)
cd /usr/local/games/minecraft/zips/
wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.18.12.01.zip
unzip bedrock-server-1.18.12.01.zip -d ../bedrock-server

# 各種ファイルコピー
cp -i /usr/local/src/openssl-1.1.1/libssl.so.1.1 /usr/local/games/minecraft/bedrock-server/
cp -i /usr/local/src/openssl-1.1.1/libcrypto.so.1.1 /usr/local/games/minecraft/bedrock-server/
cp -i /usr/local/games/minecraft/backups/${BEDROCK_BACKUP}/allowlist.json  /usr/local/games/minecraft/bedrock-server/
cp -i /usr/local/games/minecraft/backups/${BEDROCK_BACKUP}/permissions.json  /usr/local/games/minecraft/bedrock-server/
# 設定ファイル初期状態バックアップ
cp -i /usr/local/games/minecraft/bedrock-server/server.properties /usr/local/games/minecraft/bedrock-server/server.properties.org
# 旧設定ファイルコピー
cp -i /usr/local/games/minecraft/backups/${BEDROCK_BACKUP}/server.properties /usr/local/games/minecraft/bedrock-server/server.properties

# バージョンアップで、新規設定項目が追加されてないか確認
diff /usr/local/games/minecraft/bedrock-server/server.properties.org /usr/local/games/minecraft/bedrock-server/server.properties
→ 必要に応じて設定追加を行う


# ワールドデータ移設
mkdir /usr/local/games/minecraft/bedrock-server/worlds
cd /usr/local/games/minecraft/bedrock-server/worlds
cp -ri /usr/local/games/minecraft/backups/${BEDROCK_BACKUP}/worlds/* ./
 
# 起動
systemctl start minecraft

これで問題なくバージョンアップできると思います。

まとめ

いかがでしたか。

少し細かい手順も含めて、おまけ記事を書いてみました。バージョンアップは避けて通れない手順なので、書けてよかったです。できるだけ失敗しにくいようにバックアップなども手順に含めてあります。

それでは、よいマイクラライフを♪