この連載が書籍になりました! 『マインクラフトでマルチサーバーを立てよう!』好評発売中です。

MODサーバーの立ち上げとプラグインによる機能追加

2016年5月12日(木)
ecolight

前回はexeファイルを使用して最も簡単にMinecraftサーバーを立ち上げる方法を紹介しました。しかし、実際にはWindows以外のOSで起動したり、メモリ割り当て量を変更したりするため、別の方法でサーバーを立ち上げるケースが多いです。そこで今回はjarファイルを使用したサーバーの立ち上げ方法を紹介します。MODを適用したサーバーもjarファイルを使用して立ち上げます。

JARファイルでサーバーを立ち上げる

まずはMinecraftの公式ページを開き、右上の「MENU」をクリックします(図1)。

MENUを開いたらその中の「DOWNLOAD」をクリックします(図2)。

DOWNLOADページを開いたら、本文中にある「set up your own Minecraft server」のリンクをクリックして、Minecraftサーバーのダウンロードページに移動します(図3)。

Minecraftサーバーのダウンロードページを開いたら「minecraft_server.(バージョン番号).jar」のリンクをクリックしてダウンロードします(図4)。サーバーを起動した際に色々とファイルが生成されるため、空のディレクトリにダウンロードすることをお勧めします。

サーバー起動用のBATファイルを作成する

次にサーバーを起動するためのBATファイルを作成します。以下のような内容で新規テキストを作成して、拡張子「.bat」で保存してください。名前は分かりやすいものにしておきましょう。BATファイルを編集するにはテキストエディタで開きます。

@ECHO OFF
"C:\Program Files\Java\jre1.8.0_71\bin\java.exe" -Xms4G -Xmx4G -jar minecraft_server.(バージョン番号).jar nogui
PAUSE

BATファイルの説明はインターネット等で書き方の説明がたくさんあるので、そちらを参考にしてください。上記の記述について簡単に説明します。

●1行目

「@ECHO OFF」は後に続くコマンドの実行文そのものや、その実行結果の出力を抑止するコマンドです。誰かにログを見てもらう場合には、起動オプションを含め記述しないほうが良いかもしれません。

●2行目

ダブルクォーテーションで括られた部分にはjava.exeの実行プログラムまでのパスを指定します。大抵の場合はProgram FilesにJavaがインストールされているため、ダブルクォーテーションで括って「スペースもパスの一部である」と明示する必要があります。また、途中の「jre(バージョン番号)」は各環境で異なるので、インストールしているJavaのバージョンに合わせるようにしてください。環境変数が適切に設定されている場合はProgram Filesを示す環境変数を用いたりjava.exeだけを記載すれば良かったりしますが、意味が分からずに記載する方も多いため今回はフルパスで記載しています。

「-Xms4G -Xmx4G」の記載はヒープ領域に使用するメモリサイズの下限・上限値です。Xmsの下限値を小さくすれば最初は小さいメモリ使用量で起動しますが、実行中にメモリの確保や開放処理が行われることになるため、できれば両方同じ値にするのが理想です。

「-jar minecraft_server.(バージョン番号).jar」の部分はダウンロードしたjarファイルを指定します。これ以外にもパフォーマンスに影響するJavaのオプションが多数存在しますが、Javaのバージョンごとにトレンドが異なるため、各々が必要になった際に調べてみてください。機会があれば本連載でも紹介したいと思います。

「nogui」はMinecraftサーバーへのパラメータで、これを付けると管理ウインドウが表示されないモードになります。

●3行目

「PAUSE」は実行終了後に一旦BATファイルの実行を一時停止するコマンドです。これがない場合は実行終了時にすぐウインドウが閉じてしまい実行結果が分かりづらくなるため、記載しておくことが無難です。なお、記載しない場合でもMinecraftサーバーの実行ログはlogsディレクトリに出力されるため、そちらから参照することも可能です。ただのJavaプログラムなので、Linux等においても2行目のようなコマンド形式で実行可能です。

BATファイルで起動する

BATファイルをダブルクリック等で実行してEULAファイルを出力し、同意後に再度起動します。EULAファイルについての説明は前回の記事を参考にしてください。

終了するには、BATファイルが開かれたサーバーコンソール上(図5)でstopコマンドを実行します。ウインドウの閉じるボタンを使用すると、データが保存されずに終了するので注意が必要です。なお、コンソールではstop以外にも管理ウインドウで使用可能なコマンドも同様に使用できます。

起動時はサーバーコンソールに「Done ((秒数)s)! For help, type "help" or "?"」と表示されるまでに警告(WARN)や異常(ERROR)ログがないことに注視して確認してください。ただし、初回に限り「[(日時)] [Server thread/WARN]: Failed to load (ファイル名):」といった警告ログが表示されますが、これは構成ファイルがまだ作成されていないためで正常な出力です。何度か再起動して確認すると良いと思います。

公式サーバーの管理コマンド

Minecraftで使用可能なコマンドの一覧は、公式WIKIに記載されています。

上記のコマンド一覧のうち、「オペレータ限定コマンド」および、その記述中の「マルチプレイ限定コマンド」については非常に重要で、どのようなコマンドがあるかだけでも頭に入れた状態でサーバー運営を始めることが望まれます。ここでは細かく触れませんが、まずは各自で公式Wikiの一覧に目を通してみてください。

MODサーバーとは

Minecraftのサーバーに非公式で作成されたMODを適用すると、様々な機能追加が可能です。特にメジャーなのが「Bukkit」と呼ばれるMODです。現在ではBukkitに軽量化パッチなどを適用した「Spigot」と呼ばれるMODが主流になっています。他にも簡単にMinecraftのクライアント/サーバー両方にModを導入できる環境を提供する「Minecraft Forge」サーバーや、BukkitおよびForgeに対応した「Sponge」と呼ばれるサーバーも比較的多く利用されています。

本連載ではSpigotによるサーバー運営を前提として、その導入方法や機能追加の仕方について紹介していきます。

Spigotサーバーの立て方

Spigotは自分でモジュールをビルドする必要がありますが、殆どの操作が自動化されているため簡単な操作でビルドできます。以下に手順を説明します。

(1)Gitのインストール

まず、Gitをインストールします。Windowsの場合はGitのURLからダウンロードおよびインストールしてください(図6)。

Linuxの場合は使用している環境に合わせてapt-getやyumなどでダウンロードとインストールを行います。

(2)BuildToolsのダウンロード

次に、Spigotのビルドを一括で行う「BuildTools」をインストールします。BuildToolsのWebサイトからダウンロードしてください。例によって専用のディレクトリを用意してダウンロードすると後で面倒がなくなります(図7)。

Linuxの場合は、次のようにwget等でダウンロードリンクを指定してファイルをダウンロードできます。

mkdir ~/spigot ; cd ~/spigot ; wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar

(3)BuildToolsの実行

続いて、BuildTools を実行します。Windowsの場合はGitBashから実行する必要があります。スタートメニュー等から「Git Bash」を開いてください。後はダウンロードしたディレクトリに移動してBuildToolsを起動します。下記のようにcdコマンドでダウンロードディレクトリへ移動し、javaでBuildToolsを起動します。

$ cd c:minecraft_spigot
$ java -jar BuildTools.jar

これで自動的にビルドが始まります。図8のように表示されるとビルドは完了です。

(4)Spigotサーバーの配置

Spigotサーバーのファイルを探して、新しくサーバー用のディレクトリを作成して配置します。大よそ以下のような位置にサーバーのファイルが生成されています。バージョン番号はその時々で読み替えてください。

C:\(BuildToolsディレクトリ)\Spigot\Spigot-Server\target\spigot-1.8.8-R0.1-SNAPSHOT.jar

サーバーのファイルが見つかったら、任意の位置にディレクトリを作成してコピーまたは移動します。

(5)BATファイルを作成して起動する

前述「別の方法でサーバーを立ち上げる」の項で紹介したBATファイルを用いる方法でサーバーを起動します。様々な機能を追加しているため、公式サーバーの起動時よりも多くのログが出力されます(図9)。

@ECHO OFF
"C:\Program Files\Java\jre1.8.0_71\bin\java.exe" -Xms4G -Xmx4G -jar spigot-1.8.8-R0.1-SNAPSHOT.jar
PAUSE

Spigotサーバーには管理ウインドウが存在しないためnoguiオプションは不要です。また、コマンド実行は全てゲーム内かコンソール上から行うようにします。なお、起動する際には公式のMinecraftサーバー同様にEULAに同意する必要がありますのでご留意ください。EULAではMODを適用したサーバーについても触れられていますので、理解した上で同意するようにしてください。

以上でSpigotサーバーの起動は完了です。SpigotサーバーでもMinecraft公式サーバーのコマンドはそのまま使用できます。サーバーを終了する場合は、必ずstopコマンドで停止することを忘れないでください。

任意のバージョンのビルド方法

上記の方法では常に最新のSpigotがビルドされます。必須の操作ではありませんが、ここで任意のバージョンをビルドする方法も紹介しておきます。下記のようにBuildTools.jarを実行する際に--revオプションでバージョン番号を渡すとそのバージョン用のSpigotサーバーをビルドできます。ただし、BuildToolsは1.8以降向けに作られているため1.8以降のバージョン番号しか指定できません。

$ java -jar BuildTools.jar --rev 1.8.3

Spigotサーバーにプラグインを導入する

Spigotは「プラグイン」と呼ばれるファイルをpluginsディレクトリに配置する事で様々な機能が追加できます。プラグインは殆どのものがSpigotの元となったBukkit向けに作成されたものが配布されていますが、Bukkit向けのプラグインでもSpigotに機能を追加できます。プラグインはSpigotの公式サイトBukkitの公式サイトから入手できます。

なお、プラグインはMOD同様に赤の他人が作成したプログラムを追加することになるため、場合によりコンピュータへ危害を及ぼすコードが含まれる場合があります。プラグインの評判などを参考に、各々の自己責任において導入してください。

以下に、プラグイン導入の一例を示します。

目的のプラグインを探す

上記のBukkit公式サイトからプラグイン一覧ページを参照し、「Top 100 Bukkit Plugins」の人気プラグインを見てみます(図10)。

試しにメジャーなプラグインを導入してみる

図10の人気プラグインの中から、試しに「WorldEdit」プラグインを導入してみましょう(図11)。WorldEditは文字通りMinecraftの世界を編集するツールです。一番メジャーな部類のプラグインであり、特に領域選択の機能は他のプラグインからも連携して機能できる事が多く、サーバーを管理するうえで必須のプラグインの1つと言えます。コマンドの殆どはスラッシュ2つから始めるコマンド形式で、様々な編集機能が使用できます。

WorldEditをダウンロードするには図11でWorldEditをクリックするか、該当ページを参照してください。ダウンロードページが表示されるので「Download Now」をクリックしてファイルをダウンロードしましょう(図12)。クリック後しばらくするとダウンロードダイアログが表示されます。

ダウンロードしたファイルはSpigotサーバーディレクトリに生成されたpluginsディレクトリ下に配置します(図13)。殆どのプラグインはjarファイルで提供されるので、もしダウンロードした際にZIPなどで圧縮されている場合は解凍した後にjarファイルを探してください。厳密に言えば各プラグインの配布ページでインストール方法が説明されているはずなので、それぞれのプラグインの導入手順に従ってください。pluginsディレクトリにjarファイルを置けばインストール完了です。

BATファイルでサーバーを起動します。導入したプラグインの起動ログが表示されていること、ERRORやWARNで異常や警告が表示されていないことを確認します(図14)。プラグインによっては初回のみWARN警告が出る場合や、古いプラグインを使用している場合は新しいバージョンが出ている旨の警告が出る場合があります。都度メッセージ内容から判断し、再起動して警告が出続けるか確認したり、新しいバージョンのプラグインを探したりなど対応してください。

殆どのプラグインで「Enable」を含むログはプラグインが起動、またはプラグイン内の特定の機能が有効化されたことを意味します。逆に「Disable」を含むログはプラグインの一部の機能か、プラグインそのものが無効化されたことを意味します。終了時にDisableが表示されるのは正常ですが、起動時に表示される場合は何らかの問題で機能が無効化されたことを意味しますので、そのような場合には設定を見直す必要があるかもしれません。

なお、図14で「Default Configuration~」は初期化処理としてデフォルトの設定ファイルを出力したログ、「Using ~」は内部処理として記載にある処理を使用するという旨のログと考えられます。これらのログは各プラグインが独自に出力しているので、都度メッセージ内容から現象を予測する必要があります。こればかりは経験や英語力の勝負になりますので、翻訳サイトなども活用しつつ内容を把握できるよう努めてください。

WorldEditプラグインの動作確認をする

サーバーが起動したら、WorldEditプラグインの動作を確認してみましょう。プラグインがロードされているかどうかの確認と、試しにワールドの一部を指定したブロックに置き換える操作を実行してみます。具体的には、次の順序で操作します。

(1)ゲームにログインする
(2)プレイヤーにOP権限が付与されていることを確認。されていない場合はコンソールからopコマンドで付与する
(3)コンソールで/pluginsコマンドを実行する(図15)

実行結果として、画面に緑字でプラグイン名が表示されることを確認してください(図16)。このとき、赤字で表示された場合は設定など何らかの理由でプラグイン導入が失敗していることを意味します。

(4)ゲーム内で//wandコマンドを実行し、ブロック選択用のアイテムを取り出す(図17)。スラッシュが2つあることに注意

(5)木の斧が取り出せたことを確認する(図18)

(6)木の斧で適当なブロック1点を左クリックし、もう1点を右クリックする。この操作はWorldEditの機能でブロックを範囲選択したことを意味する(図19)。この操作は//hpos1や//hpos2、//pos1、//pos2コマンドでも代用できる。

(7)ブロックを設置する//set stoneコマンドを実行する(図20)

コマンドを実行すると、図21のようにブロックが石に置き換わることを確認してください。これがWorldEditのブロック設置コマンドです。これでプラグインが動作していることを確認できました。

WorldEditで使用できるコマンドリストについては、プラグイン配布元Webサイトを参照してください。

基本的にはWorldEdit以外のプラグインも配布元で機能やコマンドを調べ、実際に動かして動作を確認します。Pluginsコマンドでは導入できたかどうかは確認できますが、実際に動作するかどうかは動かしてみないと分からないため、特に重要な機能は実際に動かして確認する必要があります。プラグインはpluginsディレクトリ配下に個別のプラグイン名称のディレクトリを持ち、殆どの場合はconfig.ymlとして設定ファイルが出力されます。このconfig.ymlを編集すれば個々のプラグインの設定を変更できますが、各プラグインの配布元が公開している説明をじっくりと理解する必要があります。

今回は、Spigotサーバーの起動方法や機能を追加する方法などの基本を紹介しました。次回は様々なプラグインやマルチサーバー公開に欠かせない権限設定などについて紹介したいと思います。

本連載について

Minecraftの公式記事ではありません。本連載の内容はMojangから承認されているわけではなく、Mojangとは関係ありません。

Minecraftの非公式日本ユーザーフォーラム管理人

同フォーラムに付帯する生活系マルチサーバーもMinecraft製品版発売以降個人運営を続けている。ご相談などありましたらフォーラム(http://forum.minecraftuser.jp/)やTwitter@ecolightまで。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています