import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.* class BootstrapPlugin : Plugin { override fun apply(project: Project): Unit = with(project) { val clientJar by configurations.creating { isCanBeConsumed = false isCanBeResolved = true isTransitive = false } val bootstrapDependencies by configurations.creating { extendsFrom(clientJar) isCanBeConsumed = false isCanBeResolved = true isTransitive = false } dependencies { clientJar(tasks["jar"].outputs.files) bootstrapDependencies(project(":runelite-api")) bootstrapDependencies(project(":runescape-api")) bootstrapDependencies(project(":http-api")) bootstrapDependencies(project(":injected-client")) } tasks.register("bootstrapStaging", "staging") tasks.register("bootstrapNightly", "nightly") tasks.register("bootstrapStable", "stable") tasks.withType { dependsOn(bootstrapDependencies) this.clientJar = clientJar.singleFile doLast { copy { from(bootstrapDependencies) into("${buildDir}/bootstrap/${type}/") } } } } }