search
LoginSignup
1

More than 1 year has passed since last update.

Organization

Minecraftサーバー 作ろう (Minecraft1.18 + Spigot + Geyser + Floodgate)

昨年の投稿で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エディションのユーザースキンが表示されるようになったようなのですが、自分が軽く試してみた限りは表示されないようです。設定の問題かもしれませんが、スキンアップロードで時間がかかるというようなことも記載されているので、少し様子見でしょうかね。

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
What you can do with signing up
1