oblak/examples/example-bukkit/build.gradle.kts
2023-09-09 00:17:56 -07:00

66 lines
1.9 KiB
Kotlin

import xyz.jpenilla.runpaper.task.RunServer
plugins {
id("cloud.example-conventions")
id("com.github.johnrengelman.shadow")
id("xyz.jpenilla.run-paper")
}
dependencies {
/* Cloud */
implementation(project(":cloud-paper"))
implementation(project(":cloud-annotations"))
implementation(project(":cloud-minecraft-extras"))
/* Extras */
implementation(libs.adventurePlatformBukkit)
/* Bukkit */
compileOnly(libs.bukkit)
/* Annotation processing */
annotationProcessor(project(":cloud-annotations"))
}
tasks {
shadowJar {
relocate("net.kyori", "cloud.commandframework.example.kyori")
relocate("io.leangen.geantyref", "cloud.commandframework.example.geantyref")
}
assemble {
dependsOn(shadowJar)
}
runServer {
minecraftVersion("1.19.4")
runDirectory(file("run/latest"))
javaLauncher.set(
project.javaToolchains.launcherFor {
languageVersion.set(JavaLanguageVersion.of(17))
}
)
}
// Set up a run task for each supported version
mapOf(
8 to setOf("1.8.8"),
11 to setOf("1.9.4", "1.10.2", "1.11.2"),
17 to setOf("1.12.2", "1.13.2", "1.14.4", "1.15.2", "1.16.5", "1.17.1", "1.18.2", "1.19.4")
).forEach { (javaVersion, minecraftVersions) ->
for (version in minecraftVersions) {
createVersionedRun(version, javaVersion)
}
}
}
fun TaskContainerScope.createVersionedRun(
version: String,
javaVersion: Int
) = register<RunServer>("runServer${version.replace(".", "_")}") {
group = "cloud"
pluginJars.from(shadowJar.flatMap { it.archiveFile })
minecraftVersion(version)
runDirectory(file("run/$version"))
systemProperty("Paper.IgnoreJavaVersion", true)
javaLauncher.set(
project.javaToolchains.launcherFor {
languageVersion.set(JavaLanguageVersion.of(javaVersion))
}
)
}