Kotlin DSLでSpigot/Paperプラグインをビルドする
这是我初次投稿,请多关照。
Paper-API的版本是1.18.x。(我认为在其他版本也可以稍微修改一下就可以实现)
由于使用Kotlin DSL进行构建,关于Spigot/Paper插件的示例很少。
如果使用Spigot-API,请逐步进行转换。
创建新项目
打开新项目创建界面,选择Gradle。由于Kotlin DSL的Gradle模板不存在,因此不使用Minecraft Dev插件。(据Issue显示,似乎正在努力解决这个问题但进展缓慢?)

请根据上面的图示,在 Java 和 Kotlin DSL 的构建脚本中选择并勾选。如果想要用 Kotlin 编写插件的人,请同时在 Kotlin/JVM 上勾选。选择与所需 API 相匹配的 JDK 作为项目的 SDK。

在这个区域,请随意做任何事情。无论什么都可以。
按下“完成”按钮后,项目将完成并开始构建。在开始之前,首先要启动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
到目前为止,使用Kotlin DSL在Paper插件中构建的准备工作已经完成。接下来,只需从执行配置中运行gradle shadowJar命令,就可以在build/libs/目录下获得项目名-all.jar文件。
结束
由于我还是个初学者,所以我认为这不是最佳实践。请尽量尝试其他方法吧。如果有更好的方法,请务必告诉我。