在Raspberry Pi 3上,运行MinecraftPE服务器,并通过Wifi-AP连接

MinecraftPE-v1.1.0.PNG

如果有一个好的phar文件出现,我会将pmmp.io的代码git clone并使用,然后稍微修改这篇文章。

简述、摘要、总结

    • Raspberry Pi 3に

Pocketmine-MPベースのMCPEサーバソフトを入れ、
無線アクセスポイントにしてしまう=> 直接、ラズパイにつなぐ

無線アクセスポイントにするのに、pi-holeを使って、dhcpサーバをさせる
=> 広告除去付 Wifi-APになる!
もしかして、バッテリー駆動させれば、モバイルMCPE鯖になる???(未確認) … ちゃんとシャットダウン処理しないと、データおかしくなるよな。

サイト

PMMP – Server software for Minecraft Pocket Edition written in PHP

BlueLightはMinecraft: Pocket Editionサーバーソフトウェアです

pmmp.ioは、最新のもの(1.6.2dev-110)で Minecraft: PE server version v1.1.0.55となったが、エラー([Server thread/CRITICAL]: InvalidArgumentException: “Inventory slot index “255” is out of range” (EXCEPTION) in “/src/pocketmine/inventory/PlayerInventory” at line 117)でログインできなかったりして、
BlueLight (v1.0.9)をインストールが、こっちもだめ、、
pmmp.ioのgithubのコードが修正されたので、これを使用する。

环境

    • サーバ

Raspberry Pi 3
Raspbian : 2017-04-10-raspbian-jessie-lite

Wifiはアクセスポイントに使うので、有線側がインターネットにアクセスできて(ファイルとかダウンロードする)、おうちのPCからsshログインできるようにしておこう.

クライアント

iOS: Minecraft Pocket Edition (通称:MCPE) v1.0.9

Windows 10: Minecraft: Windows 10 Edition

操作步骤

准备好

いつも通りに、RaspbianイメージをSDに焼いて、sshファイルを作成し、ラズパイに挿して、起動。
sshでログインして、こぴぺとか多いので、設定すると、らくかも。(ToDo: 一発スクリプトをつくる…)

PocketMine-MP 的安装

    1. 安装

复制粘贴
DIR_PMMP=/home/pi/pocketmine
mkdir -p $DIR_PMMP
cd $DIR_PMMP
sudo apt update && sudo apt install -y build-essential git autoconf libtool-bin && curl -sL https://get.pmmp.io | sed -e ‘s@BCM270\[89\]@BCM@’ | bash -s –
#

克隆pmmp.io的代码
DIR_PMMP=/home/pi/pocketmine
if [ -d $HOME/PocketMine-MP/.git ] ; then sh -c ‘cd $HOME/PocketMine-MP && git pull && git submodule update’; else sh -c ‘cd $HOME && git clone https://github.com/pmmp/PocketMine-MP && cd $HOME/PocketMine-MP && git submodule update –init’; fi
cp -r $HOME/PocketMine-MP/src $DIR_PMMP
#

下载BlueLight
# 也下载BlueLight (Build#770是v1.0.9)
# curl -L -O http://jenkins.haniokasai.com/job/BlueLight-PMMP/770/artifact/artifacts/BlueLight-PHP7.phar
# 最新构建是
curl -L -O http://jenkins.haniokasai.com/job/BlueLight-PMMP/lastSuccessfulBuild/artifact/artifacts/BlueLight-PHP7.phar
#

首次启动:./start.sh
首次启动时,会有一些问题,需要正确配置。

DIR_PMMP=/home/pi/pocketmine
cd $DIR_PMMP
# 使用克隆的版本
./start.sh -f src/pocketmine/PocketMine.php
# 普通的 PocketMine-MP.phar 使用时:
# ./start.sh
# 使用 Bluelight 时:
#./start.sh -f BlueLight-PHP7.phar
#

或者

或者,复制粘贴以下内容,等待大约30秒后,按Ctrl-C退出。将0改为1,即为创造模式。
./start.sh -f src/pocketmine/PocketMine.php << EOF
jpn
y
n
Minecraft: PE Server
19132
0
20
y
OPeratorPlayerName
n
n
n

EOF
#

配置后的启动

复制粘贴
cd /home/pi/pocketmine
./start.sh -f src/pocketmine/PocketMine.php
# ./start.sh
# 使用 Bluelight 时:
#./start.sh -f BlueLight-PHP7.phar
#

将其注册为服务(开机自启动,无法使用服务器控制台)

以下复制粘贴
DIR_PMMP=/home/pi/pocketmine
PMMP_EXEC=src/pocketmine/PocketMine.php
#PMMP_EXEC=PocketMine-MP.phar
#PMMP_EXEC=BlueLight-PHP7.phar
cat << EOF | sudo tee /etc/systemd/system/pocketmine.service [Unit] Description=PocketMine-MP MCPE Server [Service] User=pi # ExecStart=$DIR_PMMP/start.sh 1>/dev/null 2>&1
# 使用 Bluelight 时,请使用以下命令。
ExecStart=${DIR_PMMP}/start.sh -f ${DIR_PMMP}/${PMMP_EXEC} 1>/dev/null 2>&1
WorkingDirectory=/home/pi
Restart=always
RestartSec=5s

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable pocketmine
sudo systemctl status pocketmine
sudo systemctl daemon-reload
sudo systemctl restart pocketmine
sudo systemctl status pocketmine
#

停止服务注册
sudo systemctl status pocketmine
sudo systemctl stop pocketmine
sudo systemctl disable pocketmine
sudo systemctl status pocketmine
#

Wifi-AP + 使用DHCP服务器(采用Pi-hole)

按照这个来进行设置。

PiHole17.png

连接

MinecraftPE-v1.1.0.PNG

维护(待办事项:很快就会进行…)

    1. Pi-hole更新

 

    PocketMine-MP更新

麻烦吗?

    1. 出现了一些问题。

当客户端的版本升级时,出现了问题=> 当我正在写文章的时候,出现了问题…(v1.0.9 => v1.1.0)
当服务器的版本升级时,出现了问题=> 当我正在写文章的时候,出现了问题…

=> 停止自动启动,打开控制台,从那里启动服务器,可以看到各种消息…

插件被版本检查拒绝…

如果你使用git clone的代码,可以禁用版本检查…(可以吗?)

src/pocketmine/plugin/PluginManager.php
$ diff -uprN src/pocketmine/plugin/PluginManager.php{.org,}
— src/pocketmine/plugin/PluginManager.php.org 2017-06-01 19:35:42.594662156 -0700
+++ src/pocketmine/plugin/PluginManager.php 2017-06-01 23:06:13.641016261 -0700
@@ -246,7 +246,7 @@ class PluginManager{
break;
}

– if($compatible === false){
+ if(0 && $compatible === false){
$this->server->getLogger()->error($this->server->getLanguage()->translateString(“pocketmine.plugin.loadError”, [$name, “%pocketmine.plugin.incompatibleAPI”]));
continue;
}
$

其他

    1. 活塞缸体之类的,没办法使用啊。

(备忘录)如果删除了swap,将”/var/log/”转换为tmpfs的位置。

使用cron,在启动时创建lighttpd文件夹。
$ sudo crontab -l | grep reboot
@reboot /home/pi/atstartup.sh
$ cat /home/pi/atstartup.sh
#!/bin/bash
mkdir /var/log/lighttpd
chown www-data:www-data /var/log/lighttpd

(备忘录)类似于可以通过URL进行关机/重启的内容。没有安全性。

复制粘贴:
# 主页
echo ‘ShutdownReboot’ | sudo tee /var/www/html/shutdown.html
# shutdown 脚本
echo “” | sudo tee /var/www/html/shutdown-h.php
echo “” | sudo tee /var/www/html/shutdown-r.php
#
# 允许www-data使用sudo shutdown
echo ‘www-data ALL = NOPASSWD: /sbin/shutdown’ | sudo tee /etc/sudoers.d/www-shutdown
#

如果连接到wifi-AP,则访问http://192.168.42.1/shutdown.html。

广告
将在 10 秒后关闭
bannerAds