import org.gradle.api.tasks.testing.logging.TestExceptionFormat import org.gradle.api.tasks.testing.logging.TestLogEvent plugins { java // TODO java launcher tasks id("io.papermc.paperweight.patcher") version "2.0.0-beta.16" } val spigotMavenPublicUrl = "https://hub.spigotmc.org/nexus/content/repositories/snapshots/" paperweight { upstreams.spigot { ref = providers.gradleProperty("spigotCommit") patchFile { path = "spigot-server/build.gradle.kts" outputFile = file("purpur-server/build.gradle.kts") patchFile = file("purpur-server/build.gradle.kts.patch") } patchFile { path = "spigot-api/build.gradle.kts" outputFile = file("purpur-api/build.gradle.kts") patchFile = file("purpur-api/build.gradle.kts.patch") } patchDir("spigotApi") { upstreamPath = "spigot-api" excludes = setOf("build.gradle.kts") patchesDir = file("purpur-api/spigot-patches") outputDir = file("spigot-api") } } } subprojects { apply(plugin = "java-library") apply(plugin = "maven-publish") extensions.configure { toolchain { languageVersion = JavaLanguageVersion.of(21) } } tasks.withType { options.encoding = Charsets.UTF_8.name() options.release = 21 options.isFork = true } tasks.withType { options.encoding = Charsets.UTF_8.name() } tasks.withType { filteringCharset = Charsets.UTF_8.name() } tasks.withType { testLogging { showStackTraces = true exceptionFormat = TestExceptionFormat.FULL events(TestLogEvent.STANDARD_OUT) } } tasks.withType().configureEach { isPreserveFileTimestamps = false isReproducibleFileOrder = true } repositories { mavenCentral() maven(spigotMavenPublicUrl) maven("https://jitpack.io") } extensions.configure { repositories { maven("https://repo.purpurmc.org/snapshots") { name = "purpur" credentials(PasswordCredentials::class) } } } } tasks.register("printMinecraftVersion") { doLast { println(providers.gradleProperty("mcVersion").get().trim()) } } tasks.register("printPurpurVersion") { doLast { println(project.version) } }