⛏️
Spigotでnet.minecraft.server(NMS)を使う方法
Spigotのプラグイン開発に使う spigot-api
ですが、残念ながらそれだけではエンティティを操作するなどの特殊なことができません。そこで、 net.minecraft.server
(通称、NMS) を使ってその特殊なことができるようになります。詳しい使い方とかはSpigot NMS
とかで検索したら出てくると思います。
ただ、このNMSをSpigotで使うのにはちょっと準備が必要で手こずったので、ここに手順を残しておきます。
環境
以下の環境でやっています。
- OS: macOS Big Sur
- Spigot: v1.18.2
- Java: Adoptium JDK 17
- IDE: IntelliJ IDEA
- Build Tools: Gradle (Kotlin DSL)
手順
BuildToolsでSpigotをビルドします。ビルドしたjarファイルを使ったりするわけではありません。ビルドすることが重要なのです。BuildToolsの使い方は https://www.spigotmc.org/wiki/buildtools/ を参照してください。
ビルドが完了後、~/.m2/repository/org/spigotmc
を見てください。spigot-api
などとともにspigot
というディレクトリが生成されていると思います。
プラグインの build.gradle
(もしくはbuild.gradle.kts
) を編集します。
ここでは build.gradle.kts
を使っています。
repositories
に以下を追加してください。
repositories {
mavenLocal()
maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/")
maven("https://oss.sonatype.org/content/repositories/snapshots")
maven("https://oss.sonatype.org/content/repositories/central")
}
spigot-api
を spigot
に置き換えてください。
dependencies {
- compileOnly("org.spigotmc:spigot-api:1.18.2-R0.1-SNAPSHOT")
+ compileOnly("org.spigotmc:spigot:1.18.2-R0.1-SNAPSHOT")
}
そしてビルドしてエラーが発生しなければ成功です。
Discussion