搭建 MCPE 服务器
目前搭建 MCPE 服务器的方法主要有两种:PocketMine-MP 和 Nukkit。前者基于 PHP,而后者基于 Java。
无论选择哪一种方法,都要确保游戏客户端和服务器端均是最新版本。如果版本不匹配,可能造成无法连接等问题。
PocketMine-MP
运行 PocketMine-MP 需要 PHP7 环境和大量的拓展库,例如 php-leveldb
和 yaml
等。即使你已经通过 brew
、yum
等包管理工具安装了 PHP,也可能无法正确启动服务器 —— 它们一般是不会自带这些拓展库的。为了免去手动编译安装拓展的麻烦,比较简单的解决方法是使用 php-build-scripts。它会编译出带有所有必要的拓展库的 PHP,供 PocketMine-MP 使用,并且不会与系统原有的 PHP 环境冲突。比如在 Mac 下,执行1
2
3git clone https://github.com/pmmp/php-build-scripts.git
cd php-build-scripts
bash compile.sh -t mac64 -l -j4 -f
即可编译安装 PHP(Linux 将参数对应改为 -t linux64
即可)。
完成后,再执行 bash installer.sh
,就会自动下载 PocketMine-MP.phar
等必要程序。最后,执行 bash start.sh
就可以运行了,接下来根据提示进行配置即可。这种方式非常方便,只要记得使用 screen
,然后等上几分钟就行。更多配置可以参考其官方文档。
Nukkit
Nukkit 的原版似乎已经失去维护,其官方网站 Nukkit.io 也无法打开。这里介绍的是一个 fork 出的分支。
Nukkit 需要 Java8 环境,如果没有安装,可以前往 ORACLE 官网下载。运行方式也很简单,克隆这个仓库后,依次执行:1
2
3git submodule update --init
mvn clean package
java -jar Nukkit.jar
当然,在其新维护者的官网上也有发布的版本,无需自行编译 Jar 文件,可以前往 NukkitX 查看。
Nukkit 的主要问题是不支持 leveldb
,也就是无法打开较新的 MCPE 存档,只支持 MC 存档和上古的 MCPE 存档,因此建议使用第一种方法。
客户端
PocketMine-MP 和 Nukkit 启动后默认都会监听 19132 端口,配置服务器时填写局域网或公网 IP / 域名即可。更多的设置项可以参考它们的文档。
更多
转换存档的格式可以用这个脚本:LevelDb2Avnil,不过笔者测试发现其兼容性存在问题,请谨慎使用。
本文更新于 2019 年 9 月:
笔者发现了一个更好的转换存档的方式,请看转换 Minecraft 存档格式。