diff --git a/examples/example-bukkit/build.gradle.kts b/examples/example-bukkit/build.gradle.kts index b8eb1b22..5c2ebc33 100644 --- a/examples/example-bukkit/build.gradle.kts +++ b/examples/example-bukkit/build.gradle.kts @@ -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 { @@ -39,11 +39,12 @@ tasks { }) } - // Setup a run task for each supported version + // 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("runServer${version.replace(".", "_")}") { +) = register("runServer${version.replace(".", "_")}") { group = "cloud" pluginJars.from(shadowJar.flatMap { it.archiveFile }) minecraftVersion(version) diff --git a/examples/example-bungee/build.gradle.kts b/examples/example-bungee/build.gradle.kts index 4c644f58..a8ea832b 100644 --- a/examples/example-bungee/build.gradle.kts +++ b/examples/example-bungee/build.gradle.kts @@ -1,6 +1,7 @@ plugins { id("cloud.example-conventions") - id ("com.github.johnrengelman.shadow") + 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 { diff --git a/examples/example-javacord/build.gradle b/examples/example-javacord/build.gradle index 0fdea1f7..bc10835d 100644 --- a/examples/example-javacord/build.gradle +++ b/examples/example-javacord/build.gradle @@ -9,7 +9,7 @@ application { mainClassName = "cloud.commandframework.examples.javacord.ExampleBot" } -build.dependsOn(shadowJar) +assemble.dependsOn(shadowJar) repositories { maven { diff --git a/examples/example-jda/build.gradle.kts b/examples/example-jda/build.gradle.kts index d2c0c431..c16c613c 100644 --- a/examples/example-jda/build.gradle.kts +++ b/examples/example-jda/build.gradle.kts @@ -15,7 +15,7 @@ dependencies { } tasks { - build { + assemble { dependsOn(shadowJar) } } diff --git a/examples/example-velocity/build.gradle.kts b/examples/example-velocity/build.gradle.kts index 7162adcf..e8f887b8 100644 --- a/examples/example-velocity/build.gradle.kts +++ b/examples/example-velocity/build.gradle.kts @@ -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()) } diff --git a/gradle/libs.versions.yml b/gradle/libs.versions.yml index a60a8ff9..6215f3ed 100644 --- a/gradle/libs.versions.yml +++ b/gradle/libs.versions.yml @@ -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