Raspberry Pi MineCraft 教程:使用 Spigot 搭建 Minecraft 服务器

当你想和你的朋友玩 Minecraft 时,有两种选择:

  • 在 Realms 上玩
  • 安装并运行你自己的服务器。

Realms 是一个基于订阅的服务,每个月花费你几美元,所以如果可能的话,运行你自己的服务器将是一个更好的选择。

运行你自己的服务器有一个缺点:你需要保持你的(服务器)机器打开。

会有电费的担忧,但 Rasbperry Pi:一个低功耗的野兽,他们不会是你的困扰。

现在,下面是在 Raspberry Pi 3 上配置和运行 Minecraft 服务器的步骤:

步骤0:准备

你需要在你的机器上安装 Java 8。

我使用的是 oracle-java8-jdk:

$ sudo apt-get install oracle-java8-jdk

我的树莓派拥有最少量的 GPU 内存(16MB),以及一个附加的根分区的外部硬盘。

此外,服务器使用端口号:25565,所以如果要从外部连接,应该打开端口。

步骤1:下载构建工具

在你的 Raspberry Pi 上,下载构建工具:

$ wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar

并安装它(如果你已经安装了 Java):

$ java -jar BuildTools.jar

几分钟后,您将看到一个名为 spigot-1.10.2.jar 的构建文件。 (当然,版本号可能会有所不同。)

步骤2:同最终意用户许可协议

第一次运行 jar 文件:

$ java -jar -Xms512M -Xmx1008M spigot-1.10.2.jar nogui

那么你将得到一个名为:eula.txt 的文件,以及如下的输出:

Loading libraries, please wait...
[17:40:10 INFO]: Starting minecraft server version 1.10.2
[17:40:10 INFO]: Loading properties
[17:40:10 WARN]: server.properties does not exist
[17:40:10 INFO]: Generating new properties file
[17:40:10 WARN]: Failed to load eula.txt
[17:40:10 INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
[17:40:10 INFO]: Stopping server

仔细阅读 eula.txt,如果您同意,请执行以下操作:

$ sed -i -e 's/eula=false/eula=true/g' eula.txt

步骤3:运行 MineCraft 服务器

接受 EULA 后,现在是启动服务器的时候了。

再次运行jar文件:

$ java -jar -Xms512M -Xmx1008M spigot-1.10.2.jar nogui

几分钟后,你将得到如下的输出:

...
[17:53:38 INFO]: Preparing spawn area: 83%
[17:53:39 INFO]: Preparing spawn area: 87%
[17:53:40 INFO]: Preparing spawn area: 90%
[17:53:41 INFO]: Preparing spawn area: 94%
[17:53:42 INFO]: Preparing spawn area: 97%
[17:53:43 INFO]: Done (256.835s)! For help, type "help" or "?"
>

现在,你的服务器已经启动,并在运行。

MineCraft 运行服务器

如果要停止服务器,只需在提示符下键入 stop 即可。

当你想改变某些东西时,请查看 server.properties 文件。

您可以更改端口号,游戏设置或其中的任何内容。

步骤4:运行服务器作为服务

您不能每次手动运行、停止服务器,因此需要将其作为服务进行管理。

首先,安装 mcrcon 来方便地控制服务器:

$ git clone  git://git.code.sf.net/p/mcrcon/code mcrcon
$ cd mcrcon
$ gcc mcrcon.c -o mcrcon

然后,修改 server.properties 中的 enable-rcon=false 改为 enable-rcon=true

你也需要在其中添加 rcon.password=PASSWORD

接下来,创建一个 systemd 服务文件:

$ sudo vi /lib/systemd/system/minecraft-server.service

并添加以下的内容:

[Unit]
Description=Spigot Minecraft Server
After=syslog.target
After=network.target

[Service]
Type=simple
User=pi
Group=pi
WorkingDirectory=/home/pi/minecraft
ExecStart=/usr/bin/java -jar -Xms512M -Xmx1008M spigot-1.10.2.jar --noconsole
ExecStop=/path/to/mcrcon -H localhost -P 25575 -p PASSWORD stop
Restart=always
RestartSec=5
Environment=

[Install]
WantedBy=multi-user.target

将其中的 User, Group, WorkingDirectory, ExecStart, ExecStop 替换成你的值。

每次打开 Raspberry Pi 时运行服务器

如果您想在 Raspberry Pi 启动时,自动启动服务器:

$ sudo systemctl enable minecraft-server.service

启动、运行服务器

如果您想手动启动或停止服务器:

$ sudo systemctl start minecraft-server.service
$ sudo systemctl stop minecraft-server.service

启动、停止服务器需要几秒钟的时间,所以请耐心等待:

● minecraft-server.service - Spigot Minecraft Server
   Loaded: loaded (/lib/systemd/system/minecraft-server.service; disabled)
   Active: active (running) since Thu 2016-11-24 18:46:46 KST; 1min 3s ago
 Main PID: 17214 (java)
   CGroup: /system.slice/minecraft-server.service
           └─17214 /usr/bin/java -jar -Xms512M -Xmx1008M spigot-1.10.2.jar --noconsole

Nov 24 18:47:34 raspberry java[17214]: [18:47:34 INFO]: Preparing spawn area: 50%
Nov 24 18:47:35 raspberry java[17214]: [18:47:35 INFO]: Preparing spawn area: 58%
Nov 24 18:47:36 raspberry java[17214]: [18:47:36 INFO]: Preparing spawn area: 67%
Nov 24 18:47:37 raspberry java[17214]: [18:47:37 INFO]: Preparing spawn area: 76%
Nov 24 18:47:38 raspberry java[17214]: [18:47:38 INFO]: Preparing spawn area: 85%
Nov 24 18:47:39 raspberry java[17214]: [18:47:39 INFO]: Preparing spawn area: 91%
Nov 24 18:47:40 raspberry java[17214]: [18:47:40 INFO]: Preparing start region for level 2 (Seed: 6136538408987226186)
Nov 24 18:47:41 raspberry java[17214]: [18:47:41 INFO]: Preparing spawn area: 46%
Nov 24 18:47:42 raspberry java[17214]: [18:47:42 INFO]: Server permissions file permissions.yml is empty, ignoring it
Nov 24 18:47:42 raspberry java[17214]: [18:47:42 INFO]: Done (30.277s)! For help, type "help" or "?"

步骤5:故障排除

服务器已过时

如果无法通过 “服务器已过期” 错误连接到服务器,请使用以下命令生成新的 .jar 文件:

# if the newest version is '1.11'
$ java -jar BuildTools.jar --rev 1.11
# or 'latest'
$ java -jar BuildTools.jar --rev latest

如果你不确定,你可以在这里找到所有版本。

生成后,编辑服务文件并重新启动服务:

$ sudo systemctl daemon-reload
$ sudo systemctl restart minecraft-server.service

步骤6:包起来

Raspberry 可能不适合运行全尺寸的 Minecraft 服务器,但它会值得一试:-)

尚未评分
您的评分将帮助我们做出更好的玩法

观光\评论区

Copyright © 2017 玩点什么. All Rights Reserved.