ディレクトリ構成図

/minecraft                             - minecraftユーザーのホーム
  |
  |--/tool                             - シェルスクリプトディレクトリ
  |   |--start.sh                      - 起動スクリプト
  |   |--stop.sh                       - 停止スクリプト
  |   `--backup.sh                     - バックアップスクリプト
  |
  |--/server                           - paperMCディレクトリ
  |   |--banned-ips.json               - [自動生成]
  |   |--banned-players.json           - [自動生成]
  |   |--eula.txt                      - [自動生成]
  |   |--ops.json                      - [自動生成]
  |   |--server.jar                    - /minecraft/jar/papermc.....jar シンボリックリンク
  |   |--server.properties             - [自動生成]設定ファイル
  |   |--usercache.json                - [自動生成]ユーザー情報
  |   |--whitelist.json                - [自動生成]ホワイトリスト
  |   |--start.sh                      - /minecraft/tool/start.sh シンボリックリンク
  |   `--backup.sh                     - /minecraft/tool/backup.sh  シンボリックリンク
  |
  `--jar                               - paperMCの実体ファイル保存ディレクトリ
      |--paper-1.XX.X-XXX.jar
      `--paper-1.XX.X-XXX.jar
...
/backup                            - バックアップディレクトリ
  |--world_20200101_162250.tar.gz
  `--world_20200102_100000.tar.gz
...
/lib/systemd/system/
  |
  |--minecraft-server.service      - ユニット
  `--minecraft-server.timer        - タイマー

ユーザー minecraft 作成

Ubuntu にマインクラフトを管理するユーザー minecraft を作成。sudo出来るようにsudoグループに追加。

sudo adduser minecraft
sudo gpasswd -a minecraft sudo  //いらないかも

/minecraft 以下のディレクトリのファイル操作はユーザー minecraft で行う。

ディレクトリ作成

cd /minecraft
mkdir jar server tool

Java のインストール

マインクラフトサーバを動かすには OpenJDK が必要です。公式ドキュメントでは Amazon が提供する Corretto OpenJDK を推奨しています。

headless と名がついているパッケージは使いません(以前は使えてた記憶があります)。

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install ca-certificates apt-transport-https gnupg wget
wget -O - https://apt.corretto.aws/corretto.key | sudo gpg --dearmor -o /usr/share/keyrings/corretto-keyring.gpg && echo "deb [signed-by=/usr/share/keyrings/corretto-keyring.gpg] https://apt.corretto.aws stable main" | sudo tee /etc/apt/sources.list.d/corretto.list
sudo apt-get update
sudo apt-get install -y java-21-amazon-corretto-jdk libxi6 libxtst6 libxrender1

インストール確認。

java -version
openjdk version "21.0.4" 2024-07-16 LTS
OpenJDK Runtime Environment Corretto-21.0.4.7.1 (build 21.0.4+7-LTS)
OpenJDK 64-Bit Server VM Corretto-21.0.4.7.1 (build 21.0.4+7-LTS, mixed mode, sharing)

paperMC 導入

公式マインクラフトサーバはプラグインを動かせないので、プラグインが動作するサーバとして定評な paperMC を使用します。 ホロライブのマイクラサーバも paperMC が使われています。

ダウンロード

公式サイトのダウンロードボタンを右クリックしてURLをコピーし、wget でダウンロードします。

cd /minecraft/jar
wget https://api.papermc.io/v2/projects/paper/versions/1.21.1/builds/83/downloads/paper-1.21.1-83.jar -O paper-1.21.1-83.jar

/minecraft/jar/paper-....jar を実行すれば動くのですが、このディレクトリに関連ファイルが作成されます。 公式サイトを見て分かる通り、jar ファイルは頻繁に更新があります。そこで、/minecraft/server にシンボリックリンクを作ってそこで関連ファイルが作られるようにします。これは「好み」の問題なので、やり方は任せます。

ln -s /minecraft/jar/paper-...jar /minecraft/server/paper.jar

初めての実行とEULA

最初は EULA(End-User License Agreement:エンドユーザーライセンス契約)に同意するファイルが存在しないので起動しません。正常な動作です。

cd /minecraft/server
java -Xms4G -Xmx4G -jar paper.jar --nogui
Downloading mojang_1.21.1.jar
Applying patches
Starting org.bukkit.craftbukkit.Main
[07:14:42 INFO]: [bootstrap] Running Java 21 (OpenJDK 64-Bit Server VM 21.0.4+7-LTS; Amazon.com Inc. Corretto-21.0.4.7.1) on Linux 6.8.0-45-generic (amd64)
[07:14:42 INFO]: [bootstrap] Loading Paper 1.21.1-83-master@2aaf436 (2024-09-17T15:10:44Z) for Minecraft 1.21.1
[07:14:42 INFO]: [PluginInitializerManager] Initializing plugins...
[07:14:42 INFO]: [PluginInitializerManager] Initialized 0 plugins
[07:14:43 INFO]: [ReobfServer] Remapping server...
[07:14:49 WARN]: Failed to load eula.txt
[07:14:49 INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
[07:14:49 INFO]: [ReobfServer] Done remapping server in 6553ms.

eula.txt を開いて、true に変更します。

vim eula.txt
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
#Thu Sep 19 07:14:49 UTC 2024
+eula=true
eula=false

再度実行すると、停止せずにサーバコンソールが起動した状態になります。

java -Xms4G -Xmx4G -jar paper.jar --nogui

停止するには CTRL+C です。