イントロ
あけましておめでとうございます。
Minecraftサーバ開発・運営 Advent Calendar 2021 19日目です。
記事投稿時点の年は2025年だって?そんなまさか
必要な環境
- win10などの最近のウインドウズos
- Windows管理者権限
- 正規のマイクラ(ios、android、マイクラ統合版のwin10版)
統合版マインクラフト(MCBE版)のカスタムサーバPocketMine-MPの構築方法です。
最新の入れ方は、Nerahikada (ねらひかだ)さんのインストーラを使うのが主流です。今回はこの方法で解説します。
インストーラをダウンロード
まずここからPocketMine-MP-?.??.?.exe
をダウンロードします。
ダウンロードマークをクリックし、ウイルス検知は許可をクリックします。
ブラウザにダウンロードフォルダがない場合は、Windowsのマーク+E
を同時押しし、左の項目などからダウンロードを探しクリック、そのフォルダ内からPocketMine-MP-?.??.?.exe
を探します。
フォルダにPocketMine-MP-?.??.?.exe
がない場合は、ブラウザやアンチウィルスにダウンロードがブロックされている可能性があるので、ブラウザのダウンロードポップアップにブロックと表示されてない場合諦めましょう。
クリックミスでダウンロードできてない可能性もあります。
Windowsのブロックを解除
exeを右クリックし、(win11の場合詳細オプション)のプロパティを開き、セキュリティの欄の許可するにチェックを入れてから、okを押します。
これをしないと、実行数の少ないマイナーなexeなのでwindowsくんが実行を許可してくれません。
インストールウィザード
ダウンロードしたPocketMine-MP-?.??.?.exe
をダブルクリックします。
Windowsの管理者権限が必要です。
次の画面では、次へ(N)>をクリックします。
pmmpのライセンス画面では 同意する(A) をクリックします。
契約という物騒な言葉がかかれていますが、ソフトウェアを使ったり、配布したり、引用したりする際のしていいこと、したらだめなことなどが書かれた文章に同意するだけなので、実際に契約が発生するわけはありません。
次の画面では、インストール時に行う設定を行います。
- PocketMaine-MP
- pmmp本体を展開します。必須
- Development Plugins
- DevTools.pharというほぼpmmp開発において必須のプラグインを展開します。
- Visual C++ Runtime
- 「pmmpを動かす」言語である「phpを動かす」ための前提モジュールをパソコンにインストールします。pmmpを動かしたい場合パソコンにインストールするのは必須です。
- Allow loopback connection
- Windows10版、統合版マインクラフトにおいて、デフォルトではローカルサーバを立てても絶対にパソコンに内のサーバーに接続出来ない問題をパソコンの設定を変更し解消します。
- win10(ストア版)版MCBEを将来にわたって買わないのであれば不要です。
- おそらく、java版を持っているのであれば同時にMCBE版マインクラフトを起動できるはずなので、許可しておいて問題ないと思います。
初回インストールであれば、すべてチェックを入れて、次へ(N)>をクリックします。
インストール先はとりあえずC:\Users\Owner\Downloads\PocketMine-MP
で問題ないので、 インストール(I) をクリックします
インストール中、2回の権限昇格がありますが、両方とも許可します。
1回目はVisual C++ Runtimeのインストール、
2回目はAllow loopback connectionの構成です。
次の画面では、 完了(F) をクリックします。するとコマンドプロンプトが起動しpmmpの初期設定に移行します。
次の画面はpmmpの初期設定です。
2回目以降の起動方法は後ほど説明します。間違えて閉じてしまった場合は2回目以降の手順で起動してください。
ここからはテキストで紹介します。
このメッセージでは、jpnを入力します。
Deleted stale phar cache at C:\Users\Owner\AppData\Local\Temp/PocketMine-MP-phar-cache.0/PMM9077.tmp
Preparing PocketMine-MP.phar decompressed cache...
Cache ready at C:\Users\?????\AppData\Local\Temp\PocketMine-MP-phar-cache.0\PMM2DCB.tmp.tar in 0.42s
[*] PocketMine-MP set-up wizard
[*] Please select a language
中文 (简体) => chs
Deutsch => deu
Ελληνικά => ell
English => eng
Français => fra
Hrvatski => hrv
Italiano => ita
日本語 => jpn
한국어 => kor
Latviešu => lav
Nederlands => nld
Русский => rus
Español => spa
Türkçe => tur
Tiếng Việt => vie
[?] Language (eng): jpn
次のメッセージでは、yを入力します。
[*] 日本語が正しく選択されました。
[*] 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
次のメッセージでは、Nを入力します。
[?] セットアップ ウィザードをスキップしますか? (y/N): N
ここでは、サーバ接続画面で表示される名前を構成します
my development serverなど適当な名前にしましょう。
[*] サーバーのセットアップを開始します。
[*] デフォルト値を変更しない場合は、Enter キーを押してください。
[*] これらの設定は後で server.properties ファイルで編集できます。
[?] サーバーの名前を付けてください (PocketMine-MP Server): my development server
このメッセージはそのままエンターを押します。サーバーのポートを19132以外に変更したい場合の設定です。
[*] これが初めてのサーバーの場合は、デフォルトのポート値を変更しないでください。
[?] サーバー ポート (IPv4) (19132):
同じくエンターを押します
[?] サーバー ポート (IPv6) (19133):
デフォルトのゲームモードを指定します。オペレーション権限(以下op権限)がある人は自由にゲームモードを変更できるのでそのままエンターでも問題ありません。
[*] クリエイティブ (1) またはサバイバル (0) のいずれかを選択してください
[?] デフォルトのゲーム モード (0):
同時接続数は、100人など任意の数にします。
[?] 最大オンライン プレイヤー数 (20): 100
サーバ側で送信を許可する描画距離(1チャンクは16ブロックx16ブロックx16ブロックです)の制限を構成します。
16チャンクの場合、マインクラフト(クライアント)側で100チャンクにしても16チャンクしか表示されません。
増やせば増やすほどチャンクを非常広くしているプレーヤーにネットワーク、cpuなどのリソースが消費されるので、公開サーバーではそのままエンターします。
[?] 最大表示距離 (チャンク) (16):
オペレーター権限というサーバー内でクリエイティブモードなどのチートが使える権限を最初から追加するオプションです。
これがないとクリエイティブモードを使ったり飛ぶことが出来ません。
ログインするxboxのゲーマータグを入力します。日本語の場合は設定後にops.txt
に行を追加して日本語を入れると動くかもしれません。
[*] OP はサーバーのプレイヤー管理者です。OP は通常のプレイヤーよりも多くのコマンドを実行できます
[?] OP プレイヤー名 (例: あなたのゲームの名前): rab**********
ホワイトリストは特定のユーザーのみがサーバーに入ることができるモードです。開発サーバーかつ、外部に公開するのであれば必要でしょう。
[*] ホワイトリストではリストに含まれているプレイヤーのみが参加できます。
[?] ホワイトリストを有効にしますか? (y/N): y
[!] ホワイトリストにプレイヤーを追加する必要があります
これはデフォルトでいいのでエンターします
[!] Query はサーバーとログインしているプレイヤーの情報を取得するためにさまざまなツールで使用されるプロトコルです。
[!] 無効にすると、サーバー リストを使用できなくなります。
[?] Query を無効にしますか? (y/N):
外部ipはポート解放という手段(一部のネットワークプロバイダーは有料だったり対応してない。モバイル回線、無線系のプロバイダーサービスの場合非対応かつ接続の度に変動する場合がある)を踏むとネットワーク外のプレーヤーが参加できるようになり、その際に相手の方が入力することになるipアドレスです。
一部のプロバイダーでは、固定ipは有料である場合があり、その場合はホスト名が固定であればそこから参加することになります。
ipアドレスはプロバイダーによって固定ではないことがあるので、メモしてもあまり意味はありません。
外部ipは絶対に絶対に外部に公開しないでください。
内部ipはあなたが他のデバイスから同じルーターを経由して、サーバーにログインするために必要な情報です(パソコン本体からパソコンで動かしてるサーバーに入る場合127.0.0.1
)。メモしておいてください。これは起動毎に変動する可能性があります。
外部ipは絶対に外部(SNS、チャットアプリなど)に公開しないでください。
ポート解放をしないとネットワーク外の人は参加できません
[*] 外部 IP と内部 IP を取得しています
[!] あなたの外部 IP は ***.***.***.*** です。ポートをあなたの内部 IP 192.168.***.** に転送する必要がある場合があります
[!] 必ず確認してください。ポートを転送する必要があるがスキップすると、外部プレイヤーは参加できません。[Enter キーを押し てください]
エンターを押すとサーバーが起動します。
windowsディフェンダーは プライベートネットワークにチェックを入れ、アクセスを許可します(正しく許可しないと接続できません)
ウイルス対策ソフトが入っていて、それが独自のファイアウォールを構成しており、ローカルサーバーにログインできない場合、ウイルス対策ソフトの構成と、ループバックの構成の管理者権限に許可したかどうか確認してください
[*] セットアップ ウィザードは正しく終了しました
[*] サーバーに新機能、ミニゲーム、または高度な保護を追加するには、プラグイン リポジトリを確認してみてください
[*] PocketMine-MP を開始します。使用可能なコマンドの一覧を表示するには /help と入力してください。
[06:01:47.112] [Server thread/INFO]: Loading server configuration
[06:01:47.121] [Server thread/INFO]: 日本語 (jpn) を基本言語として選択しました
[06:01:47.123] [Server thread/INFO]: Minecraft: Bedrock Edition サーバー バージョン v1.21.50 を開始しています
[06:01:47.129] [Server thread/INFO]: オンライン モードが有効になっています。サーバーは、プレイヤーが Xbox Live に認証さ れていることを確認します。
[06:01:47.277] [Server thread/INFO]: このサーバーは PocketMine-MP バージョン 5.23.3 を実行しています
[06:01:55.491] [Server thread/INFO]: PocketMine-MP は LGPL ライセンスに基づいて配布されています
[06:01:56.055] [Server thread/INFO]: Loading resource packs...
[06:01:56.072] [Server thread/INFO]: DevTools v1.17.1 を読み込んでいます
[06:01:56.081] [Server thread/INFO]: [DevTools] Registered folder plugin loader
[06:01:56.082] [Server thread/INFO]: DevTools v1.17.1 を有効にしています
[06:01:56.320] [Server thread/INFO]: ワールド "world" を準備しています
[06:01:56.348] [Server thread/NOTICE]: ワールド "world" のスポーン地形がバックグラウンドで生成されています
[06:01:57.085] [Server thread/INFO]: Minecraft ネットワーク インターフェイスは 0.0.0.0:19132 で動作しています
[06:01:57.086] [Server thread/INFO]: GS4 Query リスナーは 0.0.0.0:19132 で動作しています
[06:01:57.112] [Server thread/INFO]: Minecraft ネットワーク インターフェイスは [::]:19133 で動作しています
[06:01:57.112] [Server thread/INFO]: GS4 Query リスナーは [::]:19133 で動作しています
[06:01:57.114] [Server thread/INFO]: デフォルトのゲームの種類: サバイバル モード
[06:01:57.116] [Server thread/INFO]: If you find this project useful, please consider donating to support development: https://patreon.com/pocketminemp
[06:01:57.117] [Server thread/INFO]: 完了 (10.009 秒)! ヘルプを表示するには、「help」または「?」と入力してください
[06:01:57.937] [Server thread/INFO]: [World: world] スポーン地形の生成: 1 / 224 (0%)
[06:02:02.106] [Server thread/INFO]: [World: world] スポーン地形の生成: 23 / 224 (10%)
[06:02:03.078] [Server thread/INFO]: [World: world] スポーン地形の生成: 45 / 224 (20%)
[06:02:03.895] [Server thread/INFO]: [World: world] スポーン地形の生成: 68 / 224 (30%)
[06:02:04.328] [Server thread/INFO]: [World: world] スポーン地形の生成: 90 / 224 (40%)
[06:02:04.693] [Server thread/INFO]: [World: world] スポーン地形の生成: 112 / 224 (50%)
[06:02:04.873] [Server thread/INFO]: [World: world] スポーン地形の生成: 135 / 224 (60%)
[06:02:05.052] [Server thread/INFO]: [World: world] スポーン地形の生成: 157 / 224 (70%)
[06:02:05.258] [Server thread/INFO]: [World: world] スポーン地形の生成: 180 / 224 (80%)
[06:02:05.489] [Server thread/INFO]: [World: world] スポーン地形の生成: 202 / 224 (90%)
[06:02:05.790] [Server thread/INFO]: [World: world] スポーン地形の生成: 224 / 224 (100%)
コマンド紹介
コンソール権限はデフォルトでop権限があり、全てのコマンドを実行する権限がありますが、コンソールはゲーム内のプレーヤーオブジェクトではないのでメッセージ送信等しかできないため、プラグインによってはクラッシュを回避するために実行できないものも存在します。
デフォルトのものを紹介します。
しばらくの間コンソールの場合で紹介します。ゲーム内で実行するにはスラッシュ(/)をつけます。
これらのコマンドは基本的にop権限の人以外は使えません。
ここでは誤解されそうな単語は扱いません。helpを直接見てください
help
サーバーに存在する全てのコマンドを出力します。マインクラフト側で表示されるのはクライアント側で処理されているので、基本的に形式が違います
help
重要ホワイトリスト関連
Command output | 使用法: /whitelist <on|off|list|add|remove|reload>
ホワイトリストにSteveを追加します。
whitelist remove Steve
ホワイトリストからSteveを削除します。
whitelist add Steve
ホワイトリストを有効化します
whitelist on
ホワイトリストを無効化します
whitelist off
ban関連
ban
引数で指定したユーザーをサーバーから追放し、参加できなくします。
なお名前で照会するため、サブアカウントなどでこれを回避することができます。
いわゆるサブアカウントを検出する賢いbanなどは、後述するプラグインで実装することになります。
ban
Command output | 使用法: /ban <名前> [理由 ...]
pardon
banを解除します。これはサーバー停止時にbanned-players.txt
を直接編集する事でも可能です。
pardon
Command output | 使用法: /pardon <名前>
ban-ip
引数で指定したipアドレスをサーバーから追放し、参加できなくします。
なおipアドレスをローカルで照会するため、モバイル回線、vpsなどでこれを回避することができます。
ban-ip
/ban-ip <アドレス|名前> [理由 ...]
pardon-ip
ipbanを解除します。これはサーバー停止時にbanned-ips.txt
を直接編集する事でも可能です。
pardon-ip
Command output | 使用法: /pardon-ip <アドレス>
その他
say
管理者限定の非常に目立つメッセージをサーバー全体に送信します
say
Command output | 使用法: /say <メッセージ ...>
stop
サーバーを停止します。基本的にctrl+cで止まるので使う事はありません。
stop
op
指定したユーザーにop権限を付与します。サーバー停止中にops.txtを直接弄ることもできます。サーバーにopにしたいユーザーがいる場合、多分途中まで入力すればいけます
op
Command output | 使用法: /op <プレイヤー>
deop
指定したユーザーのop権限をはく奪します。サーバー停止中にops.txtを直接弄ることもできます
deop
Command output | 使用法: /deop <プレイヤー>
ゲーム内関連
ゲーム内で実行するにはスラッシュ(/)をつけます。
gamemode
自分のゲームモードを変更します。pmmpでは数字や略称を使うのが一般的です。
gamemode
Command output | 使用法: /gamemode <モード> [プレイヤー]
# クリエイティブモード
/gamemode 1
/gamemode c
# サバイバルモード
/gamemode 0
/gamemode s
time
Command output | 使用法: /time <set|add> <値> または /time <start|stop|query>
time set 0
time stop
time start
clear
所持しているアイテムをすべて消去します。
clear
Command output | 使用法: /clear [プレイヤー] [アイテム] [最大数]
サーバーへの入り方
フレンドから入る場合
ループバックの構成をちゃんとし、ルーターが優秀であれば、そのままフレンドから入ることができます。
この場合、後述する設定によりxboxログアウト状態でもログインできます
サーバータブからはいる場合(xbox正規ログイン状態のみ)
ワールド選択画面に行き、サーバータブを開きます
サーバータブのAdd Serverをクリックします。
win10版統合版で同じパソコンのサーバーに入る場合(xbox正規ログイン状態のみ)
インストーラの管理者権限昇格を両方とも許可、またはAllow loopback connectionの構成にチェックを入れなかった場合、同じパソコン内のサーバーには絶対に入れません
下記のアドレスを入力します。
Server Name: わかりやすい名前
Server Address: 127.0.0.1 (入力間違え注意!)
Saveを押し、追加された項目からサーバーに入ります。
xbox正規アカウントでスマホから入る場合(同じルーター経由)
内部ipを入力して接続します。ルーターの性能によっては入れないことがあります。
ルーターによっては内部ipは接続ごとに変動します。次の手段で固定するか、毎回確認してください。
この場合、後述する開発サーバー向け回避手段を使わない場合、正規のxboxサブアカウントかxboxメインアカウントで入る必要があります。
whitelist add Steveのようにそのアカウント名を追加しておいてください
microsoftはサブアカウントを作ろうとすると、認証するまで本アカウントまでロックがかかるので、安直にサブアカウントを作ろうとしないでください。
購入したゲームたちが台無しになっても私は責任を取りません。
下記で非ログイン環境でも接続できるかもしれない方法を解説します。
ログアウト状態でも入れるようにする方法(スマホ向け)
下記の方法と組み合わせて使います。
公開サーバーでは絶対にオンラインモードを無効化しないでください。オンラインモードが無効の場合、ハッカーはあなたや友達に自由になりすまして、サーバーや人間関係をめちゃくちゃにすることができます。
- サーバーを停止します。
-
サーバーのフォルダ(PocketMine-MP)/server.properties
をメモ帳で開きます。 -
xbox-auth=on
を探します。 -
xbox-auth=off
に書き換えます - ctrl+sを同時押しして、保存し、メモ帳のアスタリスク(*)が消えてることを確認します。
- 下記の2回目以降の方法でサーバーを起動します。
- フレンドタブからサーバーを見つけ、参加します(ログアウト状態だとサーバータブは使えません。)
- whitelistで弾かれた場合、whitelist add 弾かれた名前でホワイトリストに追加します。
モバイルホットスポットから入る方法(パソコンが対応している場合)
モバイルホットスポットはルーターへのフルアクセス(パケットに制限はありません)を提供します。
必ずクラックされにくい12文字以上の記号などを含むランダムなパスワードを設定してください。
パスワード生成:
https://www.luft.co.jp/cgi/randam.php
whitelist add Steveのようにそのアカウント名を追加しておいてください
モバイルホットスポットを構成します。
- モバイルホットスポットに接続します。
- フレンドタブで待機しながらサーバーを再起動したりすると、フレンドタブにサーバーが現れるので、ログインします。
- 上手くいかない場合、サーバーを再起動する。モバイルホットスポットに再接続するなどしてください。
- どうしてもうまくいかないなら、使ってるルーターが外れです。
- whitelistで弾かれた場合、whitelist add 弾かれた名前でホワイトリストに追加します。
2回目以降の起動方法
サーバーのフォルダ(PocketMine-MP)を探します。変更していなければ
%USERPROFILE%\Downloads\PocketMine-MP
にあります。ダウンロードフォルダ内のPocketMine-MPフォルダです。
分からない場合
下記の方法で探します。
起動方法
PocketMine-MPフォルダ内の、start.cmdというファイルをダブルクリックします。これで起動します。同時起動はできません。
to be continued