Minecraft BE wiki - pocketmine-MPを使ってサーバーを立てる
ここでは、Pocketmine-MPというソフトを使った、オンラインマルチプレイ用サーバーの立て方の説明をするページです。
よくわからないことがあれば、こちらのドキュメントを見ることを推奨します
https://pmmp.readthedocs.io/en/rtfd/         

マルチプレイについては、マルチプレイのページをご覧ください。

必要なもの

    • Windows/Unix系OS(Linux・Mac)の搭載されたパソコン
    • そのパソコンがインターネットに接続できる環境
    • ある程度のパソコンに関する知識(英語が読めるとなおよし)
      操作できない、とはでは話になりません。
    • 困難な事でも乗り越えようという根気(準備3のポート開放の時に必要になります)

準備1 インストール

Unix系OSの方向け

windowsとはインストール方法が変わってきますので、Unix系OSのサーバー構築説明のページをご覧ください。

Windows向け

Windows向けの方はこのまま下へ行ってください

【注意】
サーバーを動かして、ゲストを招きマルチプレイをする間はサーバーを動かしっぱなし=パソコンをつけっぱなしにすることになります。電気代のことも考えましょう。

筆者の環境はWindows10 64bit(x64)です。ブラウザーはMicrosoft Edgeを使っています。他バージョンやOSによって手順が多少違ってくると思いますがご了承ください。

まず、こちらからPHPのバイナリをダウンロードします

下にWindows 64bit版用があります
一番下のをクリックしてダウンロードしてください
解凍したら、binフォルダと「vc_redist.x64.exe」があると思うので
あらかじめ「vc_redist.x64,exe」を実行し、Microsoft Visual C++ 2015-2019をインストールしてください。

次に、こちらからPMMPをダウンロードします

PocketMine-MP.pharと、start.cmdをダウンロードしてください

ダウンロードしたものをファイルを作成してファイルの中にぶち込みましょう
先ほどのbinフォルダとPocketMine-MP.pharと、start.cmdを入れてください。


start.cmdを実行してください(ダブルクリックで実行できます)

お疲れさまでした。ここまでが、pmmpのdownload方法です。
セットアップの仕方は後日書きます

ここまで最新



インストール後

インストールした後、自動で、サーバーが起動するはずです。起動したら、コマンドプロンプト画面を見ながら、サーバー構築
をしてください。
お疲れ様でした。

準備2 ポート開放

さて、ここが一番大変なところです。
(何を言ってるかさっぱりだという方には難しいかもしれません)
この操作を行わないと、「オンライン」にすることができません。
つまり今のままだとローカルマルチプレイしかできないわけです。
19132番のUDPポートを開放すればOKです
※同じルーターで別のサーバーを建てる場合は19132以外のポートも開放してください

ポートとは…特定のパケット(通信)を通す場所。物理的に存在するわけではありません。無線LANルーターやDCHPルーターに存在します。ポートは1番ポートから65535番ポートまで存在します。「ポートが閉じている」とは、ファイルなどのやり取りができないということです。「ポートが開いている」とは、ファイルのやり取りが可能だということになります。
{※ポート開放…たとえば誰もが見ているこのWikiのページ、というかWebページを見るためには8080番ポートが開放されている必要がありますが、8080番ポートは最初から開いているので、ポート開放という作業は必要ありません。
他のサービスをWAN(外部)に接続するためにはわざわざ特定の手順を踏み、ポートを開ける必要があります。
そしてマルチプレイというサービスを行うためには19132番ポートを開放する必要があります。

【注意】
ポート開放は、ルーターの種類によって手順が違います。
つまり人によってやり方が違うということです。
さすがに全てのルーターの解説をするわけにもいかないので、各自googleやyahooなどでお調べになってください。。


※もしかしたらhttp://portforward.com/english/routers/port_forwar...のページがヒントになるかもしれません。
macの方へ→http://quoqlish.mods.jp/wordpress/?p=324
macだと数分でおわります♪
サーバーの構築は大変ですが・・・

また、ファイアウォールの設定もしなくてはなりません。
不正なアクセスを防ぐ為に、「ルーターではなくパソコン側で」ポートの使用を許可してない場合があります。


ポート開放ができたら、自分のipアドレスを調べましょう。
マルチプレイを一緒にやる仲間には、プライベートipアドレスではなくグローバルipアドレスを教える必要があります。
192.168...で始まるものはプライベートipアドレスと呼ばれるもので、ローカルマルチプレイ、別の言い方で言えば家の中でしか使えないものですので、他の方に教えても意味が無いですのでご注意を。

グローバルipアドレスは、http://www.cman.jp/network/support/go_access.cgiで調べることができます。
出てきたxxx.xxx.xxx.xxx(xは数字)が、あなたのグローバルipアドレスです。

設定0 遊んでみる

動画

起動&初期設定&サーバーへの入り方1.4 "0.10.5" から 1.5 "0.11.0 "にアップデート方法
大画面(YouTube)で見るにはこちら大画面(YouTube)で見るにはこちら
ひとまず、この設定でローカルマルチプレイができるかどうか自分で試してみましょう。

パソコンと無線LANルーターがつながっている必要があります。
(接続方法はブリッジでもルーターモードでもかまいません)

・PC側
「Pocketmine-MP」フォルダ内のstart.cmdを実行します。


・PC側
「Done (xx.xxxs)! For help....」と出たら、サーバーの準備が終わり、稼動したということです。
この表示が出た後、プレイできるようになります。


・端末側
そしてお手持ちのiOS/Androidの端末を無線LANに接続します。

・端末側
Minecraftを起動し、「遊ぶ」を押します。
フレンドを押してサーバーを選択しましょう。


「Locating server .../」と出ますがすぐ消え、
「Building terrain」と出て地形の生成が始まります。


コマンドのテストをして見ましょう。
「/help」と打ち、キーボード右上の「→」のような所を押します。


使用可能なコマンド一覧が出ます。



これでマルチプレイはできるようになりましたが、まだ何も設定がされていない状態なので、詳しいモード設定は以下でやっていきます。

設定1 server.propertiesファイル

「Pocketmine-MP」のフォルダ内に「server.properties」というファイルがあるので「メモ帳」で開きます。
サーバーの設定がこのファイルで決まります。重要です。
ここを自分の好きなように編集します。


文字=入力可能な値
という風に入力していきます。
文字設定項目入力可能な値
motdサーバー名英数字であればなんでもOK
server-portサーバーのポート[19132〜19135]
ポート開放したのと同じ番号のポート番号を入力すること
White-listホワイトリスト[on]で有効[off]で無効
announce-player-achievements実績の表示をするか[on]で表示[off]で非表示
spawn-protectionリスポーン地点から半径[数字マス]を破壊できなくする[-1]〜の数字
完全に無効にする場合は-1
max-prayersサーバーに入れる最大人数[2]〜[100]の数字
大きくしすぎるとパソコンの処理が間に合わなくなる可能性があるので10にしておくとよい
allow-flight飛行Modを使用した飛行を許可するか[on]で許可[off]で無許可
spawn-animals動物Mobのスポーン[on]で許可[off]で無許可(現在動物Mobはスポーンしません)
spawn-mobs敵Mobのスポーン[on]で許可[off]で無許可(現在敵Mobはスポーンしません)
gamemodeゲームのモード[0]=サバイバルモード
[1]=クリエイティブ
[2]=アドベンチャーモード
[3]=
force-gamemodeゲームモードの変更を許可するか否か[on]で有効[off]無効
hardcoreゲームモードがサバイバルのときにのみ適用。一度死んだ場合プレイヤーはBanされ、入れなくなる。[on]か[off]
pvpプレイヤー同士でダメージを与える/受けるかどうか否か[on]か[off]
difficultyゲームの難易度。現在はあまり関係ない。[0]〜[3]だが1のままでいい
generator-settings不明不明
空白のままでよい
level-name読み込むワールドの名前(フォルダ名)を指定。デフォルトでは[world]となっている。これはpocketmine-MP/worlds/のworldという名前のフォルダをロードするという意味。その名前のフォルダがなければstart.cmdを実行した時に作られる。読み込むワールドのフォルダ名
level-seedSeed値を入力するトラブルの元なので空白を奨励
level-typeワールドをフラットにするか、普通の地形生成にするか[DEFAULT]か[FLAT]
enable-queryPocketmine-MPにデータ(使用プラグインなどの情報)を送信するか否か[on]で許可[off]で無許可
enable-rconリモートコントロールを使うか否か[on]か[off]
autosave自動セーブを有効にするか[on]で有効[off]で無効
リモートコントロールの方法についてはPocketmine-mpをリモートコントロール操作するを御参照ください。

設定2 プラグイン

プラグインとは、サーバーに付加内容を加えるもの。
たとえば、ワールドの編集を行ったり、コマンドの権限を変えたりと様々なことができます

適用方法や使い方など、詳しくはpocketmine-mp用プラグインのページをご覧ください。

設定3 その他ファイル/フォルダについて

このファイルを編集した後に再起動をすると適用されます。

banned-players.txtファイル

サーバーに入られなくする人のプレイヤー名%を一行に一人ずつ書きます。
ここに書かれたプレイヤーは、サーバーに入ることができません。

サーバーコンソールで、コマンド「/ban <プレイヤー名>」を使うことでもBanすることができます。

banned-ips.txtファイル

サーバーに入られなくする人のIPアドレスを一行に一つずつ書きます。
ここに書かれたIPアドレスからは、サーバーに入ることができません。
名前でBanしても、名前を変えられると入ることができるようになってしまうのでその場合はこちらがおすすめです。

サーバーコンソールで、コマンド「/ban-ip <IPアドレス>」を使うことでもBanすることができます。

ops.txtファイル

プレイヤー名を一行に一人ずつ書きます。
ここに名前が書かれたプレイヤーは、コマンドをすべて実行する権利を得ます。
許可されていない人(ops.txtに名前が無い人)は限られたコマンドしか使うことができません。
(「/help」「/kill」「/me」「/version」などは権限がなくても使うことができます)

サーバーコンソールで、コマンド「/op <プレイヤー名>」を使うことでも権限を与えることができます。
コマンドについては、コマンドのページを見てください。

White-list.txtファイル

サーバーに入ることのできる人を指定して一行に一人ずつ書きます。
この設定を適用する為には、server.propatiesファイルのwhite-listの項目をONにする必要があります。

Console.logファイル

コンソールに出力された文字列がそのまま保存されます。
コンソールに日本語があれば文字コードをUTF-8にして開くと文字化けしません。

Worldsフォルダ

ここには、ワールドのデータがフォルダーごとに保存されています。

playersフォルダ

サーバーにログインしたプレイヤーのデータ(プレイヤー名.dat)が入っているフォルダです。

プレイヤー名.datには、
そのプレイヤーのユーザーネーム、スポーン地点(前回サーバーからログアウトした地点)、所持アイテム(インベントリ)、ゲームモード、残り体力、最後にサーバーに入った時のIPアドレス、識別番号が、つまりそのプレイヤーのデータがすべて保存されています。

binフォルダ

Pocketmineの核となるファイルが入っているフォルダです。
通常ここをいじる必要はありません。

srcフォルダ

Pocketmineの動作部分となるファイルが入っているフォルダです。
通常ここをいじる必要はありませんがプラグイン開発をする方や日本語化する方は良く使うことになると思います。
※PocketMine-MP 1.4現在srcフォルダはPocketMine-MP.pharに圧縮されています。

トラブルシューティング

グローバルIPから自分では入れない!

グローバルIPを入力しても自分のサーバーには入れません。
自宅でプレイする場合はプライベートIPを入力して、参加しましょう。
ポートが開いているかの確認作業は、ご友人さんに手伝ってもらうといいかと思います。

自分の作ったワールドを入れたい!

配布ワールドをプレイする方法と逆の手順で、「ワールド名」フォルダを取り出してください。
そのフォルダを「worlds」フォルダに入れます。
server.propatiesのworld-nameを「ワールド名」に変えましょう。

例)
フォルダ名が「gonbeee」なら、server.propatiesを「world-name : gonbeee」にすればOKです。
start.cmd(macはstart.sh)を押し、鯖を起動させると、自動的にワールドのインポートが始まります。

ワールドがでこぼこになる

そのワールドが正しく生成されなかったのが原因です。筆者も苦しめられました。
一度「worlds」フォルダを削除し、level-seedの値を空白にし、再起動してみてください。

動物出ないぞ

Pocketmine-MPのワールド上では、Mobの自動生成はされません(v1.7.9現在)
クリエイティブでスポーンエッグを使えば可能なようです。ただし動きません。

自分はできるのに他の人が入れない!

以下の事項をお確かめください。

white-list規制はしていませんか?
教えたアドレス、ポートは間違っていませんか?
教えたアドレスはプライベートIPアドレス(192.168...)ではありませんか?
(プライベートIPを教えても他人はできません)
ポート開放はできていますか?

ブロックが破壊できない!/元に戻る!

原因が3つ考えられます
1、ゲームモードがアドベンチャーモードになっている
  アドベンチャーモードではブロックを破壊することができません。
 └対処法…Server.propertiesファイルのGamemodeの値を1(クリエイティブ)か0(サバイバル)に変更してみる

2、Spawn-protectがかかっている
  スポーンプロテクトとは、リスポーン地点から半径何マスかを保護(破壊できないように)するものです。
  これが働いているのかもしれません。
 └対処法…Server.propertiesファイルのspawn-protectionの値を0にしてみる

3、サーバーのレスポンス速度が遅い
  サーバーに負荷がかかり、処理が追いつかなくなっている状態の可能性があります。
  /pingと打って見ましょう。すぐに英語の文字が出てきたらこの可能性はありません。
  すぐに出てこない場合これが原因だと思われます。
 └対処法…しばし待つもしくはサーバーを/stopし再起動させる

4、バグ
  自分より高い位置のブロックを破壊しアイテム化した場合(とくに原木などで多いと思われる)時々アイテムが取れなくなる場合があります。これはどうしようもありません…