LoginSignup
3
1

More than 3 years have passed since last update.

そうだ Minecraftサーバー 作ろう (Oracle Linux + Spigot + Geyser)

Last updated at Posted at 2020-12-28

前回の投稿でBedrock Serverを立ててみたのですが、よく考えたらMacの人が参加できないなぁと思ったのでJava版サーバーに切り替えて、GeyserでBedrock版をカバーすることにしました。

遊びで気軽に考えていたのになんだか壮大になってしまった...


環境

  • 会社のESXi上に仮想マシン作成
  • CPU: 4コア, メモリ: 8GB, HDD: 50GB
  • Oracle Linux 8.3
    (慣れたRHEL系で。CentOS 8 が先行き不透明なため)
  • Spigot 1.16
  • Geyser + Floodgate

Linux の準備

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

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

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

JDKのインストール

# dnf -y install java-11-openjdk-headless
$ java --version
openjdk 11.0.9.1 2020-11-04 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.9.1+1-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.9.1+1-LTS, 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をビルド

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

EULAに同意

$ java -jar spigot-1.16.4.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

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

GeyserのFloodgate wikiのDownloadリンクを選択、リンク先ページの「最新成功ビルドの成果物」から「floodgate-bukkit.jar」をダウンロード

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

Spigotを再起動

# systemctl restart minecraft@survival

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

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

Bedrockユーザーの名前のプレフィックスを変更
(*だと一部のプラグインでうまく処理できないようなのでASCII文字に変更)

# vi /opt/minecraft/survival/plugins/floodgate-bukkit/config.yml
config.yml
  :
username-prefix: "BE_"

  :

Spigotを再起動

# systemctl restart minecraft@survival

まだJava版の動作確認ができていないけど、こんな感じで動くんじゃなかろうか!?

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