一馬力のメモ帳

MVSからLinuxまで。基盤屋さんは眠らない

Minecraft PE用マルチプレイサーバー構築(PE v0.14.0.0対応版)

目次


注意 この記事で紹介した方法の場合2016/4/24時点でminecraft PE v0.14.0以上はアクセスできません


先日さくらのクラウドクラウドの無料クーポン件を頂き
クーポンアクティベートしたまでは良かったのですが、、、、。

ichibariki.hatenablog.com

なかなか、クーポンを使いきれません。(それだけさくらのクラウドの利用料が安い?)
何かネタが無いかなぁと考えたいたところ

  • 最近,子供たちが毎日iPadMinecraft(PE)やってないか?
  • 週末は近所の友達とMinecraftのマルチプレイするために,我が家(のWiFi)に群がってない?
  • Splatoon(スプラトゥーン)はオンラインで友達とあそべるのにぃ。(って声が聞こえる)
  • 、、、、。はっ!サーバ立てればいいんでない???!

ということで、今回はMinecraft PE用マルチプレイサーバーを構築してみようと思います。
(目指せ近所子供たちのヒーロー。マイクラおじさん!!)

前提となる環境

OS

CentOS 7
 事前に"perl gcc make automake libtool autoconf m4"が導入されている事
 インストールされていない場合は
 "yum install perl gcc make automake libtool autoconf m4"
 でインストールする事
 

Minecraft PE用マルチプレイサーバーソフトウェア

PocketMine-MP
https://www.pocketmine.net/?lang=ja

network

グローバルIPでのアクセス可能な環境

ユーザーの追加

まずは,pocketmine実行用のユーザーを作成します。
今回はユーザー名:”mine2”で作成しています。

[root@PocketMineMP ~]# adduser mine2
[root@PocketMineMP ~]# su - mine2
[mine2@PocketMineMP ~]$ pwd
/home/mine2
[mine2@PocketMineMP ~]$

PocketMineのインストール

PocketMineのインストールはインストールスクリプトが用意されており
コマンド一発打てば,インストール完了です。

ユーザーの切替

まずは,先ほど作成したユーザー"mine2"に切替ます。

[root@PocketMineMP ~]# su - mine2
[mine2@PocketMineMP ~]$ pwd
/home/mine2

インストールスクリプトの実行

インストールスクリプト

"curl -sL https://raw.githubusercontent.com/PocketMine/php-build-scripts/master/installer.sh | bash -s -"

を実行すれば,ダウンロードからインストールまで完了です。

[mine2@PocketMineMP ~]$ curl -sL https://raw.githubusercontent.com/PocketMine/php-build-scripts/master/installer.sh | bash -s -
[*] Found PocketMine-MP 1.6 (build 23) using API 2.0.0
[*] This stable build was released on Mon Mar 14 18:24:39 JST 2016
[-] This channel should have a signature, none found
[*] Installing/updating PocketMine-MP on directory ./
[1/3] Cleaning...
[2/3] Downloading PocketMine-MP 1.6 phar... done!
[3/3] Obtaining PHP: detecting if build is available...
[3/3] Linux 64-bit PHP build available, downloading PHP_7.0.3_x86-64_Linux.tar.gz... checking... regenerating php.ini... done
[*] Everything done! Run ./start.sh to start PocketMine-MP

インストールされている事を確認します。

[mine2@PocketMineMP ~]$ ls
bin  CONTRIBUTING.md  LICENSE  PocketMine-MP.phar  README.md  start.sh

PocketMineの起動

初回起動(セットアップウィザードの実行)

インストール完了時のメッセージにある通り"./start.sh"を起動すれば
初回起動時に限りセットアップウィザードが動作します。
基本的にはデフォルトのままEnter連打で構いませんが,内容は確認しながら勧めて下さい。

[mine2@PocketMineMP ~]$ ./start.sh
[*] PocketMine-MP set-up wizard
[*] Please select a language:
 English => en
 Español => es
 中文 => zh
 Pyccĸий => ru
 日本語 => ja
 Deutsch => de
 한국어 => ko
 Nederlands => nl
 Français => fr
 Italiano => it
 Melayu => ms
 Norsk => no
 Svenska => sv
 Suomi => fi
 Türkçe => tr
[?] Language (en): ja
[*] 日本語に設定されました
PocketMine-MPをインストールして頂きありがとうございます!サーバのセットアップを開始するにはライセンスに同意する必要があります。PocketMine-MPはLGPLライセンスに基づいて認可されており、これについてはこのフォルダ内のLICENSEファイルから確認することができます。

  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU Lesser General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

[?] ライセンスに同意しますか? (y/N): y
[?] セットアップウィザードをスキップしますか? (y/N): N

[*] サーバのセットアップを開始します
[*] 設定を変更しない場合は、Enterキーを押してください。
[*] それらの設定は後からでもserver.propertiesファイルから変更できます
[?] あなたのサーバに名前を付けてください (Minecraft: PE Server): mine
[*] これが初めてのサーバの場合は、ポート番号をデフォルトから変更しないでください
[?] サーバポート (19132): 19132
[*] クリエイティブモード(1)、またはサバイバルモード(0)を選択してください
[?] デフォルトのゲームモード: (0): 1
[?] 最大プレイヤー数 (20): 20
[*] スポーンプロテクションは、OPでないプレイヤーによるスポーン地点付近でのブロックの設置/破壊を制限します
[?] スポーンプロテクションを有効にしますか? (Y/n): Y
[*] OPとはそのサーバの管理権限を指します。OPを持ったプレイヤーは他のプレイヤーよりも多くのコマンドを使用できます。
[?] OPプレイヤー名(例: あなたのゲーム内での名前):
[!] 後から/op <プレイヤー名>コマンドを実行してOPプレイヤーを追加することもできます
[*] ホワイトリストはこのサーバに入ることのできるプレイヤーを制限します。
[?] ホワイトリストを有効にしますか? (y/N): N
[!] クエリは他のツールによりあなたのサーバやプレイヤーの情報を取得するためのプロトコルです。
[!] それを無効にした場合、サーバリストを使用できなくなる可能性があります。
[?] クエリを無効にしますか? (y/N): N
[*] RCONはパスワードを用いてサーバコンソールからリモート接続するためのプロトコルです。
[?] RCONを有効にしますか? (y/N): N
[*] グローバルIPとプライベートIPの取得
[!] あなたのグローバルIPはxxx.xxx.xxx.xxxです。プライベートIPyyy.yyy.yyy.yyyをポート解放してください。
[!] 必ずポート解放ができているか確認してください。ポートが解放できていなかった場合、他のプレイヤーがサーバに入れなくなる恐れがあります。[Enterキーを押してください]
[*] セットアップは正しく終了しました
[*] 拡張機能や管理システム、ミニゲームなどを追加できるプラグインリポジトリも確認してみてください
[*] PocketMine_MPを起動します。/helpと入力すれば使用可能なコマンド一覧を表示できます。


[13:22:04] [Server thread/INFO]: Loading pocketmine.yml...
[13:22:04] [Server thread/INFO]: Loading server properties...
[13:22:04] [Server thread/INFO]: Selected English (eng) as the base language
[13:22:04] [Server thread/INFO]: Starting Minecraft: PE server version v0.14.0.0 alpha
[13:22:04] [Server thread/INFO]: Opening server on 0.0.0.0:19132
[13:22:04] [Server thread/INFO]: This server is running PocketMine-MP version 1.6dev-23 "[REDACTED]" (API 2.0.0)
[13:22:04] [Server thread/INFO]: PocketMine-MP is distributed under the LGPL License
[13:22:04] [Server thread/INFO]: Loading recipes...
[13:22:04] [Server thread/NOTICE]: Level "world" not found
[13:22:04] [Server thread/INFO]: Preparing level "world"
[13:22:05] [Server thread/NOTICE]: Spawn terrain for level "world" is being generated in the background
[13:22:05] [Server thread/INFO]: Starting GS4 status listener
[13:22:05] [Server thread/INFO]: Setting query port to 19132
[13:22:05] [Server thread/INFO]: Query running on 0.0.0.0:19132
[13:22:05] [Server thread/INFO]: Default game type: Creative Mode
[13:22:05] [Server thread/INFO]: Done (111.521s)! For help, type "help" or "?"

[13:22:05] [Server thread/INFO]: Done (111.521s)! For help, type "help" or "?"
まで表示されれば,起動完了です。

あとは,iPhoneAndroidminecraft pocket editionから
起動したPocketMine-MPサーバのグローバルIP+ポートへ接続すれば完了です。

minecraft pocket edition側の操作はMinecraftPE Wikiの記事が参考になるかもしれません。
http://wiki.mcpe.jp/d/%A5%DE%A5%EB%A5%C1%A5%D7%A5%EC%A5%A4#pocketmine_guest

[参考]パーソナルFWの開放

さくらのクラウドクラウドでCentOS7を導入した場合
デフォルトでパーソナルファイアーウォールが動作しています。
下の参考コマンドを確認して,ポートを開放して下さい。

参考コマンド

firewall-cmd --zone=public --add-port=19132/udp --permanent # 19132/udpの開放
firewall-cmd --reload                                       # 設定の読み込み
firewall-cmd --list-all                                     # 設定内容確認

参考にした資料

https://www.pocketmine.net/?lang=ja http://pocketmine-mp.readthedocs.org/en/latest/installation.html#installing-on-linux-macos

試した環境

Minecraft PE用マルチプレイサーバー

PocketMine-MP version 1.6dev-23

OS

[root@PocketMineMP ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@PocketMineMP ~]# uname -a
Linux PocketMineMP 3.10.0-327.10.1.el7.x86_64 #1 SMP Tue Feb 16 17:03:50 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux