必要なもの
- Ubuntu 19.04
- GitHubアカウント
新規ユーザの作成
$ sudo adduser <任意のユーザ名>
画面の指示に従って設定してください。(設定するものはパスワードのみでいいです。)
次に、sudoグループに作成したユーザを登録し、ユーザを切り替えます。
$ sudo gpasswd -a <ユーザ名> sudo
$ su - <ユーザ名>
PocketMine-MPのダウンロード
作業用のディレクトリを作成し、Git上からPocketMine-MPのリポジトリをクローンします。
$ mkdir pmmp
$ cd pmmp
$ git clone --recursive https://github.com/pmmp/PocketMine-MP.git
--recursive
オプションを付与することで、サブモジュールも同時にクローンします。
$ cd PocketMine-MP
$ cp -r src start.sh composer.json ../
$ cd ../
起動に必要なsrcフォルダとstart.sh、composer.jsonをコピーします。
使わなくなったPocketMine-MPフォルダは削除してしまっても構いません。
binフォルダのコンパイル
$ git clone https://github.com/pmmp/php-build-scripts.git
$ cd php-build-scripts
$ ./compile.sh
コンパイルには時間を要しますので、時間に余裕があるときに行うことをオススメします。
[ERROR] Please install "*" が発生した場合
$ ./compile.sh
[PocketMine] PHP compiler for Linux, MacOS and Android
[INFO] Checking dependencies
[ERROR] Please install "bison"
[ERROR] Please install "libtool" or "libtool-bin"
Press [Enter] to continue...
$ sudo apt install bison libtool-bin
コンパイルが終了したら、ファイルを移動します。
$ mv bin ../
$ cd ../
php-build-scriptsフォルダは削除しても構いません。
Composerのインストール
Composerの公式サイトからcomposer.pharをダウンロードします。
$ curl -sS https://getcomposer.org/installer | php
$ bin/php7/bin/php composer.phar install
すると、
・
・
・
Token (hidden):
トークンの入力が要求される場合があります。
トークンの入手方法については、composer使う時にgithubのトークンを聞かれた - Qiitaを参考に進めてください。(GitHubアカウントが必須となります。)
PocketMine-MPのセットアップ
$ ./start.sh -f src/pocketmine/PocketMine.php
でPocketMine-MPを起動します。
[*] PocketMine-MP set-up wizard
[*] Please select a language
العربية => ara
Pyccĸий => rus
Tiếng Việt => vie
English => eng
Čeština => ces
Magyar => hun
Español => spa
tlhIngan => tlh
한국어 => kor
Українська => ukr
Português => por
Svenska => swe
Latviešu => lav
Türkçe => tur
Norsk => nor
Tagalog => tgl
Italiano => ita
日本語 => jpn
Английски => bul
Bahasa Melayu => msa
Malti => mlt
Eesti => est
Français => fra
中文 (简体) => chs
Suomi => fin
Bahasa Indonesia => ind
Ελληνικά => ell
Polski => pol
Gaeilge => gle
Deutsch => deu
עברית => heb
中文(繁體) => zho
ภาษาอังกฤษ => tha
Engleski => hrv
Nederlands => nld
[?] Language (eng):
セットアップウィザードが起動し、使用する言語が求められるので、jpnと入力します。
[*] 日本語に設定されました
[*] 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):
ここでは、サーバーの詳細設定はserver.propertiesファイルにて行いますので、yでスキップします。
これでサーバーは起動しますが、まだサーバーの設定とポートの解放が必要なので、一旦Ctrl+Cでサーバーを閉じます。
pocketmine.ymlファイルの編集
vim等でpocketmine.ymlファイルを開きます。
settings
の中のenable-dev-builds
をtrueに書き換え、保存します。
server.propertiesファイルの編集
vim等でserver.propertiesファイルを開きます。
motd=PocketMine-MP Server
server-port=19132
white-list=off
announce-player-achievements=on
spawn-protection=16
max-players=20
allow-flight=off
spawn-animals=on
spawn-mobs=on
gamemode=0
force-gamemode=off
hardcore=off
pvp=on
difficulty=1
generator-settings=
level-name=world
level-seed=
level-type=DEFAULT
enable-query=on
enable-rcon=off
rcon.password=abcd1234
auto-save=on
view-distance=8
xbox-auth=on
各種設定の説明
motd=PocketMine-MP Server
Motd(サーバー名)の設定
server-port=19132
サーバーのポート設定
white-list=off
ホワイトリストの有効化設定
これをonにすると/whitelist add <プレイヤー名>
で追加したプレイヤーしか入れなくなります。
announce-player-achievements=on
実績を解除した時にサーバーにいるプレイヤーにお知らせを流すかどうかの設定です。
spawn-protection=16
op以外がリスポーン地点からの地形編集が出来ない範囲の設定です。
max-players=20
サーバーへ入れる最大人数の設定です。
allow-flight=off
FlyKickの有効化設定
onにするとFlyHackの自動Kickを無効化します。
spawn-animals=on
動物のスポーンの有効化設定です。
spawn-mobs=on
Mobのスポーンの有効化設定です。
gamemode=0
番号 | モード |
---|---|
0 | サバイバルモード |
1 | クリエイティブモード |
2 | アドベンチャーモード |
3 | スペクテイターモード |
force-gamemode=off
このオプションを有効化するとプレイヤーのゲームモードが毎ログイン時にgamemode=
で設定したゲームモードに変更されます。
hardcore=off
ハードコアの有効化設定です。
有効化すると、プレイヤーの死亡時にサーバーからBanされます。
pvp=on
PvPを許可するかの設定です。
onにすると他のプレイヤーを攻撃することが可能です。
difficulty=1
難易度の設定です。0〜3の値が設定可能です。
generator-settings=
ジェネレーターの設定です。
level-name=world
デフォルトワールド名の設定です。
level-seed=
デフォルトワールドのシード値の設定です。
level-type=DEFAULT
新規に生成するワールドのタイプです。
以下のタイプが設定できます。
タイプ | 詳細 |
---|---|
DEFAULT / NORMAL | ノーマルな地形 |
FLAT | フラットな地形 |
HELL / NETHER | ネザー |
enable-query=on
サーバーのクエリの有効化設定です。
クエリを有効化すると、外部ツールを用いてサーバーにいる人数やバージョン、サーバーにいるプレイヤー名などの情報が取得できます。
enable-rcon=off
Rconの有効化設定です。
Rconを有効化すると、外部のサイトやツール等を利用してサーバーの管理を行うことが可能です。
rcon.password=abcd1234
Rconのパスワードの設定です。
Rconを有効化する時にのみ設定します。
view-distance=8
チャンクの描画距離です。
例 : view-distance=12
上記の場合、12チャンク分クライアントに送信されます。
xbox-auth=on
サーバ参加時にXBox認証を行うかの設定です。
ポート解放
今回は、ポート解放にufwを使用します。
$ sudo apt install ufw
次に、解放するポートの設定を行います。
$ sudo ufw default deny
$ sudo ufw allow 22
$ sudo ufw allow 80
$ sudo ufw allow 443
$ sudo ufw allow 19132/udp
特にVPSなどを利用している方は22番ポートの解放を忘れると、SSH接続が出来なくなるので注意が必要です。
最後に、ufwを有効化します。
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
yと入力し、有効化します。
これで全ての設定が終了です。
バックグラウンドで動かしたい場合
VPSでサーバーを立てている方は、上の場合、SSH接続が切れた時にマインクラフトのサーバーへ接続できなくなります。
そのような時に便利なのがscreenです。
$ screen -S pmmp
で新しいセッションを作成。
$ screen -r pmmp
で作成したセッションにアタッチします。
screenコマンドが無い場合 :
$ sudo apt install screen
セッションにアタッチした状態でサーバーを起動すると、SSHが切れた場合も継続的にプログラムを動作させることが出来ます。
最後に
今回のPocketMine-MPでのサーバー作成はどうでしたか?
この記事を見てPocketMine-MPに少しでも興味を持ってくれたら嬉しいです!