star-code.net

チャットを禁止する Minecraft サーバー(PaperMC)のプラグインを作った

はじめに

Minecraft サーバーを建てましたPaperMC を用いて,プラグインを導入できる運用にしています.

誰でもアクセスできる運用にしていますので,サーバーの秩序が気になります.そこで,チャットやコマンドを全て禁止するプラグインを自作しました.

プラグインはこちらからダウンロードできます..jar ファイルを plugins/ に置くと機能します.

作り方

PaperMC 公式ドキュメントを参考にします.

IDE として,JetBrains 社の IntelliJ IDEA が推奨されているので,これを用います.Community 版は無料で利用することができます.

プラグインとして,Minecraft Development を入れます.すると,「新規プロジェクト」のテンプレートに Minecraft が追加されます.

  • GruopsPlugin を選択
  • TemplatesPaper を選択
  • Group ID はドメインの逆順で設定します(例:your.domain.jpjp.domain.your).持っていない場合は GitHub アカウントに結びつけて io.github.username のようにします.

プロジェクトのルート直下に gradlew あるいは gradlew.bat というファイルが生成されます. 以下のコマンドでビルドが行えます(Window は未確認).

  • Linux / macOS: ./gradlew build
  • Windows(コマンドプロンプト): gradlew.bat build
  • Windows(PowerShell):.\gradlew build

ビルド後に build/libs/.jar ファイルが生成されます.これをサーバーの plugins/ に置くことでサーバーにプラグインを反映させることができます.

src/main/... 以下にある .java ファイルを書き換えてプラグインを実装します. 詳しくは PaperMC 公式ドキュメントを参照してください.

実装を見てもらう方が早いですが,AsyncChatEvent でチャットのイベントを,PlayerCommandPreprocessEvent でコマンドのイベントを取得しています.

おわりに

実際にこのプラグインを導入した Minecraft のサーバーを動かしています. 詳しくはこちら

その他関連記事は以下.