diff --git a/build.gradle.kts b/build.gradle.kts index f2fae287ad..3ae1c411ae 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,4 +1,5 @@ import io.papermc.paperweight.util.* +import io.papermc.paperweight.util.constants.* import org.gradle.api.tasks.testing.logging.TestExceptionFormat import org.gradle.api.tasks.testing.logging.TestLogEvent import java.io.IOException @@ -11,7 +12,7 @@ import java.nio.file.Path import kotlin.random.Random plugins { - id("io.papermc.paperweight.core") version "2.0.0-beta.5" apply false + id("io.papermc.paperweight.core") version "2.0.0-beta.6" apply false } subprojects { @@ -146,19 +147,18 @@ tasks.register("checkWork") { return Path.of(path.replaceFirst("^~".toRegex(), System.getProperty("user.home"))) } - val input = layout.cache.resolve("last-updating-folder").readText().trim() - val patchFolder = layout.projectDirectory.file("paper-server/patches/sources").convertToPath().resolve(input) - val sourceFolder = layout.projectDirectory.file("paper-server/src/vanilla/java/").convertToPath().resolve(input) - val targetFolder = expandUserHome( - providers.gradleProperty("cleanPaperRepo").orNull - ?: error("cleanPaperRepo is required, define it in gradle.properties") - ).resolve(input) + val input = providers.fileContents(layout.projectDirectory.file("$CACHE_PATH/last-updating-folder")).asText.map { it.trim() } + val patchFolder = layout.projectDirectory.dir("paper-server/patches/sources").dir(input) + val sourceFolder = layout.projectDirectory.dir("paper-server/src/vanilla/java").dir(input) + val targetFolder = providers.gradleProperty("cleanPaperRepo").map { + expandUserHome(it).resolve(input.get()) + } fun copy(back: Boolean = false) { - patchFolder.listDirectoryEntries().forEach { - val relative = patchFolder.relativize(it).toString().replace(".patch", "") - val source = sourceFolder.resolve(relative) - val target = targetFolder.resolve(relative) + patchFolder.path.listDirectoryEntries().forEach { + val relative = patchFolder.path.relativize(it).toString().replace(".patch", "") + val source = sourceFolder.path.resolve(relative) + val target = targetFolder.get().resolve(relative) if (target.isDirectory()) { return@forEach } if (back) { target.copyTo(source, overwrite = true) @@ -169,8 +169,11 @@ tasks.register("checkWork") { } doLast { + if (!targetFolder.isPresent) { + error("cleanPaperRepo is required, define it in gradle.properties") + } copy() - val files = patchFolder.listDirectoryEntries().map { it.fileName.toString().replace(".patch", "") } + val files = patchFolder.path.listDirectoryEntries().map { it.fileName.toString().replace(".patch", "") } println("Copied $files from $sourceFolder to $targetFolder") println("Make the files compile, then press enter to copy them back!") System.`in`.read() diff --git a/gradle.properties b/gradle.properties index f39859fbab..27969fea17 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,8 +6,7 @@ mcVersion=1.21.4 updatingMinecraft=false updateTaskListIssue=https://github.com/PaperMC/Paper/issues/11736 -# todo - bundler/paperclip tasks not compatible yet when using libraries -org.gradle.configuration-cache=false +org.gradle.configuration-cache=true org.gradle.caching=true org.gradle.parallel=true org.gradle.vfs.watch=false diff --git a/paper-server/build.gradle.kts b/paper-server/build.gradle.kts index 8a25dc0885..dc2bce7b5a 100644 --- a/paper-server/build.gradle.kts +++ b/paper-server/build.gradle.kts @@ -13,7 +13,6 @@ val paperMavenPublicUrl = "https://repo.papermc.io/repository/maven-public/" dependencies { mache("io.papermc:mache:1.21.4+build.6") paperclip("io.papermc:paperclip:3.0.3") - remapper("net.fabricmc:tiny-remapper:0.10.3:fat") } paperweight { @@ -23,23 +22,24 @@ paperweight { paper { reobfMappingsPatch = layout.projectDirectory.file("../build-data/reobf-mappings-patch.tiny") - reobfPackagesToFix.addAll( - "co.aikar.timings", - "com.destroystokyo.paper", - "com.mojang", - "io.papermc.paper", - "ca.spottedleaf", - "net.kyori.adventure.bossbar", - "net.minecraft", - "org.bukkit.craftbukkit", - "org.spigotmc", - ) } spigot { buildDataRef = "3edaf46ec1eed4115ce1b18d2846cded42577e42" packageVersion = "v1_21_R3" // also needs to be updated in MappingEnvironment } + + reobfPackagesToFix.addAll( + "co.aikar.timings", + "com.destroystokyo.paper", + "com.mojang", + "io.papermc.paper", + "ca.spottedleaf", + "net.kyori.adventure.bossbar", + "net.minecraft", + "org.bukkit.craftbukkit", + "org.spigotmc", + ) } tasks.generateDevelopmentBundle { @@ -58,45 +58,45 @@ abstract class Services { } val services = objects.newInstance() -publishing { - if (project.providers.gradleProperty("publishDevBundle").isPresent) { - val devBundleComponent = services.softwareComponentFactory.adhoc("devBundle") - components.add(devBundleComponent) +if (project.providers.gradleProperty("publishDevBundle").isPresent) { + val devBundleComponent = services.softwareComponentFactory.adhoc("devBundle") + components.add(devBundleComponent) - val devBundle = configurations.consumable("devBundle") { - attributes.attribute(DevBundleOutput.ATTRIBUTE, objects.named(DevBundleOutput.ZIP)) - outgoing.artifact(tasks.generateDevelopmentBundle.flatMap { it.devBundleFile }) - } - devBundleComponent.addVariantsFromConfiguration(devBundle.get()) {} + val devBundle = configurations.consumable("devBundle") { + attributes.attribute(DevBundleOutput.ATTRIBUTE, objects.named(DevBundleOutput.ZIP)) + outgoing.artifact(tasks.generateDevelopmentBundle.flatMap { it.devBundleFile }) + } + devBundleComponent.addVariantsFromConfiguration(devBundle.get()) {} - val runtime = configurations.consumable("serverRuntimeClasspath") { - attributes.attribute(DevBundleOutput.ATTRIBUTE, objects.named(DevBundleOutput.SERVER_DEPENDENCIES)) - attributes.attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME)) - extendsFrom(configurations.runtimeClasspath.get()) - } - devBundleComponent.addVariantsFromConfiguration(runtime.get()) { - mapToMavenScope("runtime") - } + val runtime = configurations.consumable("serverRuntimeClasspath") { + attributes.attribute(DevBundleOutput.ATTRIBUTE, objects.named(DevBundleOutput.SERVER_DEPENDENCIES)) + attributes.attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME)) + extendsFrom(configurations.runtimeClasspath.get()) + } + devBundleComponent.addVariantsFromConfiguration(runtime.get()) { + mapToMavenScope("runtime") + } - val compile = configurations.consumable("serverCompileClasspath") { - attributes.attribute(DevBundleOutput.ATTRIBUTE, objects.named(DevBundleOutput.SERVER_DEPENDENCIES)) - attributes.attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_API)) - extendsFrom(configurations.compileClasspath.get()) - } - devBundleComponent.addVariantsFromConfiguration(compile.get()) { - mapToMavenScope("compile") - } + val compile = configurations.consumable("serverCompileClasspath") { + attributes.attribute(DevBundleOutput.ATTRIBUTE, objects.named(DevBundleOutput.SERVER_DEPENDENCIES)) + attributes.attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_API)) + extendsFrom(configurations.compileClasspath.get()) + } + devBundleComponent.addVariantsFromConfiguration(compile.get()) { + mapToMavenScope("compile") + } - tasks.withType(GenerateMavenPom::class).configureEach { - doLast { - val text = destination.readText() - // Remove dependencies from pom, dev bundle is designed for gradle module metadata consumers - destination.writeText( - text.substringBefore("") + text.substringAfter("") - ) - } + tasks.withType(GenerateMavenPom::class).configureEach { + doLast { + val text = destination.readText() + // Remove dependencies from pom, dev bundle is designed for gradle module metadata consumers + destination.writeText( + text.substringBefore("") + text.substringAfter("") + ) } + } + publishing { publications.create("devBundle") { artifactId = "dev-bundle" from(devBundleComponent) @@ -317,21 +317,21 @@ tasks.registerRunTask("runDevServer") { tasks.registerRunTask("runBundler") { description = "Spin up a test server from the Mojang mapped bundler jar" - classpath(tasks.named("createMojmapBundlerJar").flatMap { it.outputZip }) + classpath(tasks.createMojmapBundlerJar.flatMap { it.outputZip }) mainClass.set(null as String?) } tasks.registerRunTask("runReobfBundler") { description = "Spin up a test server from the reobf bundler jar" - classpath(tasks.named("createReobfBundlerJar").flatMap { it.outputZip }) + classpath(tasks.createReobfBundlerJar.flatMap { it.outputZip }) mainClass.set(null as String?) } tasks.registerRunTask("runPaperclip") { description = "Spin up a test server from the Mojang mapped Paperclip jar" - classpath(tasks.named("createMojmapPaperclipJar").flatMap { it.outputZip }) + classpath(tasks.createMojmapPaperclipJar.flatMap { it.outputZip }) mainClass.set(null as String?) } tasks.registerRunTask("runReobfPaperclip") { description = "Spin up a test server from the reobf Paperclip jar" - classpath(tasks.named("createReobfPaperclipJar").flatMap { it.outputZip }) + classpath(tasks.createReobfPaperclipJar.flatMap { it.outputZip }) mainClass.set(null as String?) }