LoginSignup
4
1

More than 1 year has passed since last update.

昨年の投稿でMinecraftサーバーを立ててみたのですが、結局あまり使われず(笑)、ほぼ僕がたまにログインして遊ぶくらいのサーバーになってしまっています。

Minecraft 1.18 がリリースされたのでアップデートを行ってみたのですが、JavaやFloodgateのバージョンが少し変わったので、昨年の記事をリライトしてみました。


環境

  • CPU: 4コア, メモリ: 8GB, HDD: 50GB
  • Oracle Linux 8.5
  • Spigot
  • Geyser
  • Floodgate

Linux の準備

OSのインストール方法はウェブ上にいっぱいあるので割愛

  • SSHは鍵認証のみに
  • システム最新化
  • アップデートの自動化
  • ファイアウォールの設定
    • 25565/tcp
    • 19132/udp
    • 19133/udp

あたりをやっておきましょう。

JDKのインストール

# dnf -y install java-17-openjdk-headless
$ java --version
openjdk 17.0.1 2021-10-19
OpenJDK Runtime Environment 21.9 (build 17.0.1+12)
OpenJDK 64-Bit Server VM 21.9 (build 17.0.1+12, mixed mode, sharing)

Spigotのインストール

あとで必要になるので、先にサーバー実行ユーザーを作成を作成しておきましょう。

# mkdir /opt/minecraft
# groupadd minecraft
# useradd --system --shell /bin/bash --home /opt/minecraft -g minecraft minecraft
# chown minecraft:minecraft /opt/minecraft

SpigotのWikiを参考にビルドします。

ビルドに必要なアプリケーションをインストールしておきます。

# dnf -y install git wget

Spigotをビルド

(Spigotの安定版は1.17のようなので、1.18をビルドしたい場合は --rev パラメータでバージョンを指定します)

# su - minecraft
$ mkdir survival
$ cd survival
$ wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
$ java -jar BuildTools.jar --rev 1.18

EULAに同意

$ java -jar spigot-1.18.jar
$ vi eula.txt

eula=false を eula=true へ変更

eula.txt
:
eula=true

メモリ使用量をサーバーのスペックに合わせておきます。

# vi /opt/minecraft/survival/server.conf
server.conf
MCMINMEM=512M
MCMAXMEM=7168M

これでとりあえず最低限起動する状態になりました。

続いて、Tutorials/Server startup scriptを参考に起動スクリプトを作成します。

Spigotを仮想端末内で実行するために screen をインストールします。

# dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# dnf -y install screen

systemdスクリプトをダウンロード

# wget -O /etc/systemd/system/minecraft@.service https://raw.githubusercontent.com/agowa338/MinecraftSystemdUnit/master/minecraft%40.service

RHEL8系は /run/screen のパーミッションを変更しないといけないらしいので、ダウンロードしたスクリプトを修正します。

# vi /etc/systemd/system/minecraft@.service
minecraft@.service
  :
# Uncomment this to fix screen on RHEL 8
ExecStartPre=+/bin/sh -c 'chmod 777 /run/screen'
  :

自動実行を有効化します。

# systemctl enable minecraft@survival

ひとまずここまでの動作確認で一度起動してみましょう。

# systemctl enable minecraft@survival
# systemctl stop minecraft@survival

/opt/minecraft/survival/logs/latest.log を確認してエラーになっていないか確認しましょう。

Geyser・Floodgateのインストール

GeyserMCのサイトのDownloadボタンを選択、リンク先ページの「最新成功ビルドの成果物」から「Geyser-Spigot.jar」をダウンロードします。

# su - minecraft
$ cd /opt/minecraft/survival/plugins/
$ wget https://ci.opencollab.dev//job/GeyserMC/job/Geyser/job/master/lastSuccessfulBuild/artifact/bootstrap/spigot/target/Geyser-Spigot.jar

FloodgateのGithub Wikiの「Downloads are available here.」リンクを選択、リンク先ページの「最新成功ビルドの成果物」から「floodgate-spigot.jar」をダウンロードします。

# su - minecraft
$ cd /opt/minecraft/survival/plugins/
$ wget https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/lastSuccessfulBuild/artifact/spigot/target/floodgate-spigot.jar

一度サーバーを起動してプラグインのデフォルト設定ファイルを生成させます。

# systemctl start minecraft@survival

BedrockユーザーがXbox Liveアカウントのみで接続できるように設定します。

# vi /opt/minecraft/survival/plugins/Geyser-Spigot/config.yml
config.yml
  :
  auth-type: floodgate
  :

Spigotを再起動して準備完了です。

# systemctl restart minecraft@survival

JavaエディションBedrockエディションから接続できるか試してみましょう。

Floodgateがバージョン2になってから、Bedrockエディションのユーザースキンが表示されるようになったようなのですが、自分が軽く試してみた限りは表示されないようです。設定の問題かもしれませんが、スキンアップロードで時間がかかるというようなことも記載されているので、少し様子見でしょうかね。

4
1
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
4
1