初投稿です。おねがいします。
Paper-APIのバージョンは1.18.xです。(ほかのバージョンでもちょっと変えればできると思います)
Kotlin DSLを使ってビルドしているSpigot/Paperプラグインの例が少なかったので。
Spigot-APIを使う場合は逐次読み替えてください。
新規プロジェクト作成
新規プロジェクト作成の画面を開いて、Gradleを選択します。Kotlin DSLのGradleのテンプレートがないので、Minecraft Devプラグインは使いません。(Issueによると対応しようとしてるものの遅れている?らしい)
上の図のようにJava
とKotlin DSL ビルドスクリプト
にチェックを入れてください。プラグインをKotlinで書きたい人はKotlin/JVM
にもチェックを入れてください。プロジェクトSDK
は使いたいAPIに合ったJDKを選択しましょう。
ここらへんは普通にやってください。なんでもいいです。
完了を押すとプロジェクトが出来上がってビルドが始まります。最初はGradleのデーモンを起動するまで長いので待ちましょう。
ビルド周りを書き換える
ビルドが終わるとシンタックスハイライトされたビルドスクリプトが表示されます。このビルドスクリプト(build.gradle.kts)をいじってAPIが使えるようにしていきましょう。
plugins {
java
}
group = "com.github.jin-ini" // ここは指定したgroup id
version = "1.0-SNAPSHOT" // ここは指定したversion
repositories {
mavenCentral()
}
// 以降のテスト関連のところ(junit系)は使わなければ消してしまっていいです。
dependencies {
testImplementation("org.junit.jupiter:junit-jupiter-api:5.6.0")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
}
tasks.getByName<Test>("test") {
useJUnitPlatform()
}
このままではFat Jarをビルドすることができないのでプラグインを入れていきます。また、同時にPaper-APIも使えるようにしていき、ついでにtoolchainで指定してビルドするようにします。
plugins {
java
+ id("com.github.johnrengelman.shadow") version "7.1.2"
}
group = "com.github.jin-ini"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
+ maven { url = uri("https://papermc.io/repo/repository/maven-public/") } // PaperのMavenリポジトリ
}
dependencies {
+ compileOnly("io.papermc.paper:paper-api:1.18.1-R0.1-SNAPSHOT") // Paper-API
testImplementation("org.junit.jupiter:junit-jupiter-api:5.6.0")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
}
+ java {
+ toolchain.languageVersion.set(JavaLanguageVersion.of(17))
+ }
tasks.getByName<Test>("test") {
useJUnitPlatform()
}
Gradleのバージョンが古いものになっていることがあるので最新を指定しましょう。最新リリースは公式サイトから確認してください。
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
- distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
+ distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Gradleをデーモン化していちいち起動を待たなくていいようにします。プロジェクト直下に以下のファイルを作成してください。
org.gradle.daemon=true
ここまででPaperのプラグインをKotlin DSLでビルドする準備が完了しました。あとは実行構成からgradle shadowJar
を実行するとbuild/libs/
にプロジェクト名-all.jar
ができます。
おわり
正直まだまだ初心者なのでこれがベストプラクティスではないと思います。いろいろ試行錯誤してみてください。あとよい方法があったらぜひ教えてください。