マインクラフトver1.21.4のPaperプラグインを作る方法を解説します。

第1回は、マインクラフトのプラグインとは何か説明します。
プラグインサーバーとは
バニラの動作
バニラ(英語:Vanilla)とは、コンピュータソフトウェア、まれにコンピュータのハードウェアまたはアルゴリズムなどで、改変・改修・カスタマイズなどが一切行われていない、提供された状態のまま(原型を留めたままの状態)を指す。
バニラ (ソフトウェア) | Wikipedia
本記事ではバニラとは無改造のマインクラフトそのもののことを指します。
バニラのマインクラフトをシングルプレイで実行すると、内部でサーバーとクライアントが立ち上がります。ここで、各用語を超簡単に説明すると、
サーバー:ワールドやチャットなどの情報を受け取り、提供するプログラム
クライアント:プレイヤーを操作し、プレイ画面を表示するプログラム
また、バニラのマインクラフトをマルチプレイで実行するには、自分のPCでサーバーを建てる方法と、リモートでサーバーを建てる方法があります。
プラグインサーバーの動作
一方、プラグインサーバーは改造済みのマインクラフトのサーバーです。無改造のクライアントが接続して遊ぶことができます。
特筆すべき点は、クライアントはサーバーが改造されていることを関知しないということです。通常とはゲームの動作が異なる一方、送られてくるパケットはバニラのものと同じなので、クライアントは普段通りパケットを処理することができます。
ここで注意するべき点として、シングルプレイでは、無改造のクライアントと同時に無改造サーバーが立ち上がります。つまり、
”シングルプレイでプラグインを導入することはできない”
ということです。それゆえ、プラグインを導入するならば必然的に自分でプラグインサーバーを建てる必要があります。
Paperプラグインとは
Paperプラグインの動作
Paperプラグインとは、Paperプラグインサーバーに導入することでサーバーの機能を拡張するものです。
実態はjarファイル(Java Archive)で、サーバーが配置されているディレクトリに作成されるpluginsフォルダに配置することでサーバーにロードされます。
server_directory/
├── cache/
├── config/
├── libraries/
├── logs/
├── plugins/
├── versions/
├── world/
├── world_nether/
├── world_the_end/
└── ...
配置されたPaperプラグインは、Paperサーバーによってロードされ、基本的にPaper APIを通じてサーバーに関する機能が提供されます。Paperプラグインはこの機能を駆使して、サーバーに様々な拡張を施します。
アプリケーションプログラミングインタフェース(API、英: application programming interface)とは、広義ではソフトウェアコンポーネント同士が情報をやりとりするインタフェースの仕様である。
アプリケーションプログラミングインタフェース | Wikipedia
Bukkit、Spigot、Paper
Bukkitを改良したものがSpigotで、Spigotを改良したものがPaperです。Paper APIはSpigot API、Bukkit APIを包含するので、PaperサーバーではBukkitプラグインやSpigotプラグインが動作します。
おわり
この回では、プラグインサーバーの動作と、Paperプラグインの動作について説明しました。次回は、Paperサーバーを建てる方法を説明します。
コメント