build: Replace custom runVelocity task with run-velocity plugin, use run-waterfall in bungee example, update run-paper

also attach example build tasks to `assemble` instead of `build`
This commit is contained in:
Jason Penilla 2022-11-15 12:07:03 -07:00 committed by Jason
parent c36cf6b937
commit 3fc62ce358
6 changed files with 24 additions and 60 deletions

View file

@ -1,9 +1,9 @@
import xyz.jpenilla.runpaper.task.RunServerTask
import xyz.jpenilla.runpaper.task.RunServer
plugins {
id("cloud.example-conventions")
id("com.github.johnrengelman.shadow")
id("xyz.jpenilla.run-paper") version "1.0.6"
id("xyz.jpenilla.run-paper")
}
dependencies {
@ -28,7 +28,7 @@ tasks {
relocate("me.lucko", "cloud.commandframework.example.lucko")
relocate("io.leangen.geantyref", "cloud.commandframework.example.geantyref")
}
build {
assemble {
dependsOn(shadowJar)
}
runServer {
@ -41,9 +41,10 @@ tasks {
// Set up a run task for each supported version
mapOf(
setOf("1.8.8", "1.9.4", "1.10.2", "1.11.2") to 11,
setOf("1.12.2", "1.13.2", "1.14.4", "1.15.2", "1.16.5", "1.17.1", "1.18.2", "1.19.2") to 17,
).forEach { (minecraftVersions, javaVersion) ->
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.2"),
).forEach { (javaVersion, minecraftVersions) ->
for (version in minecraftVersions) {
createVersionedRun(version, javaVersion)
}
@ -53,7 +54,7 @@ tasks {
fun TaskContainerScope.createVersionedRun(
version: String,
javaVersion: Int
) = register<RunServerTask>("runServer${version.replace(".", "_")}") {
) = register<RunServer>("runServer${version.replace(".", "_")}") {
group = "cloud"
pluginJars.from(shadowJar.flatMap { it.archiveFile })
minecraftVersion(version)

View file

@ -1,6 +1,7 @@
plugins {
id("cloud.example-conventions")
id("com.github.johnrengelman.shadow")
id("xyz.jpenilla.run-waterfall")
}
tasks {
@ -9,9 +10,12 @@ tasks {
exclude(dependency("net.md-5:bungeecord-api:1.8-SNAPSHOT"))
}
}
build {
assemble {
dependsOn(shadowJar)
}
runWaterfall {
waterfallVersion("1.19")
}
}
dependencies {

View file

@ -9,7 +9,7 @@ application {
mainClassName = "cloud.commandframework.examples.javacord.ExampleBot"
}
build.dependsOn(shadowJar)
assemble.dependsOn(shadowJar)
repositories {
maven {

View file

@ -15,7 +15,7 @@ dependencies {
}
tasks {
build {
assemble {
dependsOn(shadowJar)
}
}

View file

@ -1,67 +1,24 @@
plugins {
id("com.github.johnrengelman.shadow")
id("cloud.example-conventions")
id("xyz.jpenilla.run-velocity")
}
indra {
javaVersions().target(11) // Velocity 3 requires Java 11
}
val velocityRunClasspath by configurations.creating {
attributes {
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage::class, Usage.JAVA_RUNTIME))
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category::class, Category.LIBRARY))
attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, objects.named(LibraryElements::class, LibraryElements.JAR))
}
}
repositories {
ivy("https://versions.velocitypowered.com/download/") {
patternLayout { artifact("[revision].[ext]") }
metadataSources { artifact() }
content { includeModule("com.velocitypowered", "velocity-proxy") }
}
}
tasks {
shadowJar {
dependencies {
exclude(dependency("com.velocitypowered:velocity-api"))
}
}
build {
assemble {
dependsOn(shadowJar)
}
val pluginJar = shadowJar.map { it.outputs }
val velocityRunFiles = velocityRunClasspath.asFileTree
register("runVelocity", JavaExec::class) {
group = "cloud"
description = "Spin up a Velocity server environment"
standardInput = System.`in`
if (JavaVersion.current() < JavaVersion.VERSION_11) {
javaLauncher.set(project.javaToolchains.launcherFor { languageVersion.set(JavaLanguageVersion.of(11)) })
}
inputs.files(pluginJar)
classpath(velocityRunFiles)
workingDir = layout.projectDirectory.dir("run").asFile
doFirst {
// Prepare
val modsDir = workingDir.resolve("plugins")
if (!modsDir.isDirectory) {
modsDir.mkdirs()
}
project.copy {
into(modsDir.absolutePath)
from(pluginJar) {
rename { "${rootProject.name}-${project.name}.jar" }
}
}
}
runVelocity {
velocityVersion(libs.versions.velocityApi.get())
}
}
@ -71,5 +28,4 @@ dependencies {
api(project(":cloud-annotations"))
annotationProcessor(libs.velocityApi)
compileOnly(libs.velocityApi)
velocityRunClasspath("com.velocitypowered", "velocity-proxy", libs.versions.velocityApi.get())
}

View file

@ -7,6 +7,9 @@ plugins:
com.github.johnrengelman.shadow: 7.1.2
com.github.ben-manes.versions: 0.42.0
com.diffplug.spotless: &spotless 6.6.1
xyz.jpenilla.run-paper: &run-task 2.0.0
xyz.jpenilla.run-velocity: *run-task
xyz.jpenilla.run-waterfall: *run-task
versions:
checkstyle: 9.0