我们一起来搭建 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的准备工作

由于操作系统的安装方法在网络上有很多,所以省略不提。

    • 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的Wikipedia进行构建。

我会安装构建所需的应用程序。

# dnf -y install git wget

构建Spigot

若要构建1.18版本,由于Spigot的稳定版本似乎是1.17,您可以在 –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

我同意使用许可协议。

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

将 eula=false 更改为 eula=true。

:
eula=true

将内存使用量调整为服务器规格的适当数值。

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

现在至少已经启动到最低限度的状态了。

接下来,我们将参考《教程/服务器启动脚本》创建启动脚本。

为了在虚拟终端中运行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
  :
# 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文件,确认是否存在错误。

Geysers and floodgates的安装

选择GeyserMC网站上的下载按钮,然后在链接页面的“最新成功构建的成果物”中下载“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中的「下载链接可从这里获取」,从链接所指页面的「最新成功构建成果物」中下载「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
  :
  auth-type: floodgate
  :

重新启动Spigot,准备完毕。

# systemctl restart minecraft@survival

让我们试着连接Java版和基岩版来看看是否可以。

自從Floodgate升級到版本2以後,Bedrock Edition的用戶皮膚似乎可以顯示,但根據我輕微的測試,並沒有顯示出來。這可能是設定問題,而且也有提到上傳皮膚可能需要花費一些時間,所以我可能需要觀望一下。

广告
将在 10 秒后关闭
bannerAds