Minecraftプラグイン packetevents

packetevents と確認されたサーバーの情報

🔌 PacketEventsについて

PacketEvents は Minecraft Java Edition 向けのプロトコルライブラリで、低レベルのプロトコルパケットを傍受・解析・キャンセル・送信するための API を提供します。サーバー/プロキシ上で単体プラグインとして使用することも、他のプラグインや MOD のライブラリ依存として組み込むこともできます。

🎯 目的

プラグイン開発者や MOD 開発者向けに、安定したマルチプラットフォームのパケット層を提供し、Netty の低レベルコードを書いたり、バージョンごとのプロトコル実装を自前で多数管理したりすることなく、Minecraft のプロトコルパケット(login、play、status、handshake など)に反応し、操作できるようにすること。

⚙️ 特徴

  • 受信/送信パケットに対するイベント駆動の傍受(receive/send イベントおよびプロトコルレベルのイベント)。
  • サーバー/クライアントが処理する前にパケットをキャンセルまたは変更できる。
  • パケットの送信やシミュレーションをプログラムから行うための API。
  • クリーンなライフサイクル: PacketEvents インスタンスを作成/読み込み/初期化/終了して、適切にリソース管理できる。
  • マルチモジュール対応: 一般的なプラットフォーム向けに個別のビルド/モジュールがあり、同じ API をさまざまなサーバー/プロキシ/MOD 環境で使える。
  • 公開済みの Javadocs と、Maven/Gradle 利用のための開発者向けセットアップドキュメント。

🧩 対象

  • プロトコルレベルのアクセス(パケットの送信、シミュレーション、変更)が必要なプラグイン/ MOD 開発者。
  • パケット傍受が必要なプラグインの依存関係として PacketEvents を導入するサーバー運営者。

🏗️ 使用例

  • プラグインが packet listener を登録し、特定の受信パケットをキャンセルしてデフォルト処理を防ぐ。
  • MOD がクライアントへ合成パケットを送信し、サーバー側のエンティティ変更なしでカスタムな視覚効果や UI を作る。
  • プロキシプラグインがカスタム認証フローのために login/handshake パケットを処理する。

⚙️ インストール

📥 セットアップ(サーバー運営者)

  • 公式プラグイン JAR をダウンロードし、サーバー/プロキシの plugins/ ディレクトリ(または同等の場所)に配置します。
  • サーバー/プロキシを再起動し、ログを確認して PacketEvents が正しく読み込まれたことを確認します。

🛠️ 開発者向け(ビルド設定)

PacketEvents はプラットフォーム別モジュールとして配布されています。ドキュメントには Maven/Gradle の例が示されています。ライブラリは provided/compileOnly スコープで追加する想定です。ドキュメントではモジュール名にプレースホルダーが使われているため、依存関係を追加する際は対象プラットフォームのモジュール(例: spigot, velocity, bungeecord, fabric, sponge)に置き換えてください。

例(公式ドキュメントにある Gradle のスニペット):

// INSERT_MODULE_HERE を対応モジュール名(spigot, velocity, bungeecord, fabric, sponge)に置き換えてください
compileOnly("com.github.retrooper:packetevents-~~INSERT_MODULE_HERE~~:2.12.1")

プラグイン/MOD からライブラリのライフサイクルメソッド(load -> init)を呼び出し、プラグイン無効化時に終了してください。

🧠 技術メモ

  • 公式提供モジュールには Spigot、Velocity、BungeeCord、Fabric、Sponge が含まれます。
  • プロジェクトの記載では、Spigot モジュールは Paper、Purpur、Folia のような広く使われている fork 上で動作するよう設計されており、BungeeCord モジュールは Waterfall で動作する想定です。
  • プロジェクトはソース、リリース、Javadocs とともに公開されており、GPL-3.0 ライセンスです。
  • バンドルしない場合、プラグインのビルドには provided/compileOnly スコープで追加する想定です。プラグインが PacketEvents を配布物に含める場合のバンドル手順もドキュメント化されています。

🤝 このプラグインが役立つ場面

カスタム認証、パケットベースの演出、プロキシ処理、低レベル統合など、Minecraft プロトコルを直接制御する必要がある場合、PacketEvents はマルチプラットフォーム API とライフサイクル管理を提供し、サーバーやプロキシ実装ごとにプロトコル処理を再実装せずに機能を構築できるようにします。

プラグイン packetevents のサーバー

プラグイン packetevents のページには、モニタリングがこのプラグインを確認したサーバー、使用されているプラットフォームとバージョンが表示されます。

プラグインはコマンド、経済、保護、アクセス権、ミニゲーム、連携、その他のメカニクスを追加できます。packetevents の実際の役割はサーバーごとの設定によります。

データはサーバーの技術応答から自動生成されます。サーバーがプラグイン一覧を非公開にしている場合、packetevents を使用していてもこのセクションに表示されないことがあります。

packetevents を使用するサーバーの一覧を使って、プロジェクトを比較したり、対応バージョンを確認したり、公開サーバーでのプラグイン使用例を見つけたりできます。