はじめに
今回はプラグインに対応するサーバーの建て方について紹介したいと思います。
最近ホロライブにハマりまして、マイクラの動画に「資源サーバー」という単語が度々登場してたから気になってました。
それで「資源サーバー」について調べてみたらプラグインという存在を知りました。
プラグインはMODと違って、新しいブロックなどの追加はできないけど、コマンドを利用して広範囲のブロックを置き換えたり、新しいワールドを作成したりすることができます。
また、プラグインはサーバーにしか対応してないため、プラグインを使うためにはサーバーを建てる必要があります。
プラグインとMODの違い
MOD
MODとはゲームの拡張データのことで、新しいアイテムの追加やグラフィックの改善、ゲームシステムの変更など、様々なMODがあります。
シングルプレイとマルチプレイ両方に対応していて、マルチプレイの場合はサーバー側と参加する側両方に同じMODと設定を揃える必要があります。
また、MODを導入する際に、マイクラのバージョンに対応したMODを導入してください。
例えばマイクラのバージョンが「1.16.3」の場合、MODがこのバージョンに対応してない場合は動かない可能性が大きいです。
- 新しい要素(ブロック、アイテムなど)の追加
- シングルプレイ、マルチプレイ両方対応
- サーバー側と参加側でMODを揃える必要がある
- マイクラのバージョンにシビア
プラグイン
プラグインはMODとは違って、新しいブロックやアイテムなどを作り出すことはできません。
マイクラにある既存の要素をもとに、新しい機能を与えているイメージです。
例えば、「StorageSign」というプラグインは1つの看板に20億くらいのアイテムを格納することができます。

プラグインはこのようにマイクラにある既存の要素しか使わないため、参加する側は特に何かをする必要はありません。
また、プラグインはサーバー側にしか導入できないため、シングルプレイに対応していません。
MODの場合と同じように、マイクラのバージョンに対応したプラグインを導入してください。
ただし、MODと比べたらそこまでシビアではないイメージです。
プラグインがマイクラのバージョンに対応してなくても、普通に動く場合が多いです。
- 既存の要素に新しい機能を追加
- マルチプレイのみ
- サーバー側にプラグインを入れればOK
- マイクラのバージョンに未対応でも動く場合が多い
プラグインサーバーの種類
プラグインサーバーにはいろいろ種類がありまして、ここではメジャーなものについていくつか紹介します。
Spigot
Spigotは現在最も使われているサーバーです。
かつては「CraftBukkit」というサーバーが最も使われてて、プラグインもたくさん作られていました。
しかしDMCA(米国デジタルミレニアム著作権法)に抵触したことによって公開が停止されて、使われることは少なくなりました。
SpigotはCraftBukkitを改良したもので、パフォーマンスの改善などCraftBukkitからいろいろ改良されています。
CraftBukkitのプラグインを使用できるのが特徴です。
また、DMCAの問題を回避するため、サーバーを直接ダウンロードしてはいけません。
ビルドツールによってビルドすることでしか入手できません。
Paper
PaperはSpigotをさらに改良したサーバーです。
パフォーマンスの向上を中心にさまざまな改善や最適化が行われています。
SpigotとBukkit用に作成されたプラグインも使用できます。
ビルドを行う必要はなく、公式サイトから直接ダウンロードがすることができます。
今回はPaperサーバーの建て方について紹介します。
サーバーの建て方【Paper】
私の環境では以下の作業を実施してサーバーを建てました。
- Java(64ビット版)を導入
- Paperをダウンロード
- サーバー起動用batファイル作成
- サーバー起動用batファイル実行
- 「eula.txt」ファイル修正
- 再度サーバー起動用batファイル実行
- プラグイン導入
- ポート開放
以下の公式ホームページから64ビット版Javaを導入してください。
Paperは以下の公式サイトからダウンロードしてください。

ページの上部にマイクラのバージョンに対応しているものを選べます。
数字が一番大きいものが最新なので、赤枠で囲まれているボタンをクリックするとダウンロードできます。
Paperのインストール先となるフォルダを新規作成してください。フォルダの作成場所と名前は自由です。
ここではデスクトップに「server_paper」というフォルダにしました。

STEP2でダウンロードしたサーバーファイルをフォルダに格納してください。

次にサーバーを起動するためのbatファイルを作成していきます。
まずはテキストファイルを作成します。

テキストファイルに以下のテキストを貼り付けて、保存してください。
@echo off
java -Xms4G -Xmx4G -jar paper-208.jar nogui
pause
赤文字はSTEP2でダウンロードしたサーバーファイルの名前となります。
今後サーバーのアップデート作業などで新しいサーバーファイルをダウンロードした場合、
赤文字の部分をダウンロードしたサーバーファイルの名前に修正する必要があります。

「-Xms」はJavaに割り当てる最小メモリ、「-Xmx」はJavaに割り当てる最大メモリを表しています。ここではどちらも4Gを割り当てるように設定しています。
Javaに割り当てるメモリを変更する場合は「4G」の部分を変更してください。
次は作成したテキストファイルをbatファイルに変更します。変更する方法はとして、拡張子「txt」を「bat」に変えていきます。

ここでは名前を「Server_Start.bat」にしました。
batファイルに変更すると、以下の確認画面が表示されますが、「はい」を押してください。

テキストファイルのアイコンが変わり、batファイルとなります。

作成したbatファイルをダブルクリックして、実行してください。
コマンドプロンプト画面が立ち上がりますので、「続行するには何かキーを押してください」が表示されることを確認し、適当なキーを押すと画面が消えます。

上の画面では最後に「You need to agree to the EULA~」という内容を確認できます。
マインクラフトのサーバーを建てるためには、マインクラフトのエンドユーザーライセンス条項に同意しなければいけません。
この段階ではまだライセンス条項に同意していないため、処理が自動で止まります。
batファイルの実行が完了すると、フォルダーでは以下のようなファイルが追加されます。

ライセンス条項は「eula.txt」に入っているため、次のステップでこのファイルに対して修正を行います。
マインクラフトのエンドユーザーライセンス条項は以下から確認できます。
内容を確認し、問題がなければ「eula.txt」を開いて、
「eula=false」の「false」を「true」に変更し、保存してください。

もう一度batファイル「Server_Start.bat」を実行してください。
「eula.txt」ファイルを修正したことによって、サーバーが立ち上がります。
以下のようなコマンドプロンプト画面が立ち上がり、しばらく待つと、「Done(〇〇s)!~」という文章が表示されます。これでサーバー側の設定が完了です。

プラグインを導入するには、「plugins」フォルダにダウンロードしたプラグインを入れて、
もう一度サーバー起動用batファイル実行してください。

ここまでのステップでサーバーを建てることができました。
しかし外部からアクセスができなければ、マルチプレイができません。
外部からアクセスできるようにするためには、「ポート開放」という作業を実施しなければなりません。
私の環境で行ったポート開放の手順を以下の記事にまとめました。
「MOD対応サーバーの建て方」にある「STEP8 ポート開放」を確認してください。

パソコン周りの環境は人によってそれぞれ異なるので、ポート開放できない可能性もあるのでご注意ください。
以上でプラグインサーバーの建て方についての紹介でした。
マイクラを起動して、マルチプレイからサーバーを追加し、表示していることを確認してください。

サーバーアップデートについて
今回導入したPaperは頻繁にアップデートされています。
ここでは備忘録も兼ねて、アップデートするときの手順を残します。
アップデートするときの手順として、
- 「STEP2 Paperをダウンロード」から「STEP6 再度サーバー起動用batファイル実行」を実施
- 「world」「world_nether」「world_nether」「plugins」のフォルダを丸ごと新しいサーバーフォルダに上書き
- サーバー再起動
(もし「server.properties」などの設定を変更した場合はこちらも上書きしたほうが良いと思います)

まとめ
プラグインサーバーの建て方について紹介しました。
これまでMODに対応したサーバーでプレイしていましたが、
コマンドの便利さと複数のワールドを管理できる点から、今ではプラグインサーバーに移行しています。
MODと比べて不便な部分も多くありますが、マップや一括破壊など、最低限必要な機能はプラグインでも代用できますので、今後はプラグインサーバーをメインにプレイしていきます。
(追記)
マップMODのように、クライアント側にだけ導入すればプラグインサーバーでも動作することを確認できました。