16
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PocketMine-MPをUbuntu19.04でサーバー構築

Last updated at Posted at 2018-04-07

必要なもの

  • 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.shcomposer.jsonをコピーします。

使わなくなったPocketMine-MPフォルダは削除してしまっても構いません。

binフォルダのコンパイル

Gitからクローンとbinのコンパイル
$ git clone https://github.com/pmmp/php-build-scripts.git
$ cd php-build-scripts
$ ./compile.sh

コンパイルには時間を要しますので、時間に余裕があるときに行うことをオススメします。

[ERROR] Please install "*" が発生した場合

例(bisonとlibtoolがない)
$ ./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をダウンロードします。

Composerのダウンロードとインストール
$ 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のセットアップ
[*] 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-buildstrueに書き換え、保存します。

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を使用します。

ufwのインストール(apt)
$ 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コマンドが無い場合 :

screenのインストール(apt)
$ sudo apt install screen

セッションにアタッチした状態でサーバーを起動すると、SSHが切れた場合も継続的にプログラムを動作させることが出来ます。

最後に

今回のPocketMine-MPでのサーバー作成はどうでしたか?
この記事を見てPocketMine-MPに少しでも興味を持ってくれたら嬉しいです!

16
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?