SpigotとPaperのプラグイン
CodexeでBukkit、Spigot、Paperのプラグインを、JavaまたはKotlinで最高の形で作る方法。リクエストに書くこと、バージョン、plugin.yml、依存関係、ビルド、よくある問題。
更新日
Bukkit/Spigot/Paperの種類では、PaperやSpigotとそのフォークで動くサーバープラグインを作ります。Java(Mavenプロジェクト)かKotlin(build.gradle.ktsを使うGradleプロジェクト)を選んでください。
プラグインをゲームで遊ぶには、今すぐ試すで専用のテストサーバーを起動してください。
リクエストを送ると、Codexeはプラグインの対象がどのMinecraftのバージョンかを、1.8.8から26.3の中から尋ねます。コードはそのバージョンのAPIとJavaのレベルに合わせて書かれ、テストサーバーもそのバージョンで動きます。2026年9月30日より前に作成されたプロジェクトは、ビルドファイルに書かれたバージョンのままです。
#リクエストに書くこと
- サーバーソフトとバージョン: 「Paper 1.21.4」や「Spigot 1.20.1」など。PaperのAPIはSpigotより大きいです。Spigot向けに書いたコードはPaperでも動きますが、逆は動かないので、両方で使う必要があるならSpigotを頼んでください。
- 引数、使える人、タブ補完を含めたコマンド。
- デフォルト値(
true、op、false)を含めた権限。 - 編集できるようにしたいconfig.ymlのキー。
- 保存方法: YAML、SQLite、MySQL、またはメモリ。
- 連携: Vault、PlaceholderAPI、LuckPerms、WorldGuardなど。依存関係として追加されるよう、名前をはっきり書いてください。
A Paper 1.21.4 plugin (Java) called Bounties.
- /bounty set <player> <amount>: takes money via Vault, adds it to the player's bounty.
- Killing a player with a bounty pays it to the killer.
- /bounty top shows the 10 highest bounties.
- Bounties stored in SQLite. Minimum bounty 100 (config.yml).
- Permission bounties.set (default true).A Paper 1.21.4 plugin in Kotlin called Bounties, same features as above.
Use Kotlin idioms (data classes, extension functions) but keep the Bukkit API usage standard.#Codexeが生成するもの
- 正しいAPIの依存関係を持つMavenプロジェクト(Java)またはGradleプロジェクト(Kotlin)。
JavaPluginを継承するメインクラスと、コマンド、リスナー、保存用のクラス。- メインクラス、
api-version、コマンド、権限を含むplugin.ymlと、設定がある場合はconfig.yml。
name: Bounties
version: 1.0.0
main: eu.codexe.bounties.Bounties
api-version: '1.21'
depend: [Vault]
commands:
bounty:
description: Manage bounties
permissions:
bounties.set:
default: true#バージョンとJava
CodexeはビルドファイルからMinecraftのバージョンを読み取り、Java 17(1.20.5より前)、Java 21(1.20.5以降)、Java 25(26.x)のいずれかでビルドします。バージョンを書かなかった場合は、Paper/SpigotのAPI 1.20.6が使われます。
#ビルドと検証
Codexeは準備完了にする前にプラグインをコンパイルし、JARにクラスとplugin.yml(またはpaper-plugin.yml)が含まれていることを確認します。プラグインのビルドは、通常1分もかかりません。コンパイルを参照してください。
#インストール
JARをダウンロードしてplugins/に入れ、サーバーを再起動し(/reloadは使わないでください)、起動時にコンソールにエラーが出ていないか確認します。
#よくある問題
| 症状 | 考えられる原因 |
|---|---|
| プラグインが読み込まれない、「main class not found」 | plugin.ymlのmain:がクラスと一致していません。チャットで修正を頼むか、手で名前を変えたあとなら確認してください。 |
| 古いサーバーで「Unsupported API version」 | プラグインがサーバーより新しいAPIを対象にしています。リクエストにサーバーの正確なバージョンを書いてください。 |
| コマンドが何もしない | コマンドがplugin.ymlにないか、プレイヤーに権限がありません。 |
VaultなどのNoClassDefFoundError | 依存するプラグインがサーバーにインストールされていません。 |
| ビルドはできるが、機能がおかしな動きをする | ゲーム内での正確な動きをチャットで説明してください。検証がチェックするのはビルドで、ゲームプレイではありません。 |