From 23b03eec14c3eb98546cce72e1baf11e9f808d14 Mon Sep 17 00:00:00 2001 From: Wagyourtail Date: Tue, 21 Nov 2023 23:46:07 -0700 Subject: [PATCH] refactor --- .../patchbase/gradle/PatchCreatorPlugin.kt | 53 +-------------- .../patchbase/gradle/PatchExtension.kt | 64 ++++++++++++++++++- 2 files changed, 62 insertions(+), 55 deletions(-) diff --git a/src/main/kotlin/xyz/wagyourtail/patchbase/gradle/PatchCreatorPlugin.kt b/src/main/kotlin/xyz/wagyourtail/patchbase/gradle/PatchCreatorPlugin.kt index de92eb4..8a59a47 100644 --- a/src/main/kotlin/xyz/wagyourtail/patchbase/gradle/PatchCreatorPlugin.kt +++ b/src/main/kotlin/xyz/wagyourtail/patchbase/gradle/PatchCreatorPlugin.kt @@ -2,6 +2,7 @@ package xyz.wagyourtail.patchbase.gradle import org.gradle.api.Plugin import org.gradle.api.Project +import org.gradle.api.tasks.SourceSet import org.gradle.jvm.tasks.Jar import xyz.wagyourtail.patchbase.gradle.tasks.ApplySourcePatchTask import xyz.wagyourtail.patchbase.gradle.tasks.CreateClassPatchTask @@ -24,58 +25,6 @@ class PatchCreatorPlugin : Plugin { target.logger.lifecycle("[PatchbaseCreator] Plugin Version: $pluginVersion") target.extensions.create("patchbase", PatchExtension::class.java) - } -} - -fun MinecraftConfig.patchBaseCreator() { - if (side == EnvType.COMBINED) { - project.logger.warn("[PatchBase/Creator ${this.project.path} ${sourceSet}] Merged may make applying patches more difficult, proceed with caution") - } - if (!defaultRemapJar) { - project.logger.warn("[PatchBase/Creator ${this.project.path} ${sourceSet}] defaultRemapJar is false, this may cause issues with patching") - } - if (mcPatcher !is JarModAgentMinecraftTransformer) { - project.logger.warn("[PatchBase/Creator ${this.project.path} ${sourceSet}] mcPatcher is not a JarModAgentMinecraftTransformer, this may cause issues with dev runs") - } - - project.tasks.register("createSourcePatch".withSourceSet(sourceSet), CreateSourcePatchTask::class.java) { - it.group = "patchbase" - it.sourceDir.set(project.file("src/main/java")) - it.outputDir.set(project.file("patches/main")) - val sourceFile = minecraftFileDev.resolveSibling(minecraftFileDev.nameWithoutExtension + "-sources.jar") - it.sources.set(project.files(sourceFile)) - if (!sourceFile.exists()) { - it.dependsOn("genSources") - } - } - - project.tasks.register("applySourcePatch".withSourceSet(sourceSet), ApplySourcePatchTask::class.java) { - it.group = "patchbase" - it.patchDir.set(project.file("patches/main")) - it.outputDir.set(project.file("src/main/java")) - val sourceFile = minecraftFileDev.resolveSibling(minecraftFileDev.nameWithoutExtension + "-sources.jar") - it.sources.set(project.files(sourceFile)) - if (!sourceFile.exists()) { - it.dependsOn("genSources".withSourceSet(sourceSet)) - } - } - - project.tasks.register("createClassPatch".withSourceSet(sourceSet), CreateClassPatchTask::class.java) { - it.group = "patchbase" - it.inputFile.set((project.tasks.findByName("remapJar".withSourceSet(sourceSet)) as Jar).outputs.files.singleFile) - - when (side) { - EnvType.CLIENT -> it.classpath.set(project.files(minecraftData.minecraftClientFile)) - EnvType.SERVER -> it.classpath.set(project.files(minecraftData.minecraftServerFile)) - EnvType.COMBINED -> { - it.classpath.set(project.files(mergedOfficialMinecraftFile)) - } - else -> throw IllegalStateException("Unknown side: $side") - } - - it.archiveClassifier.set("patch") - it.dependsOn("remapJar".withSourceSet(sourceSet)) - } } \ No newline at end of file diff --git a/src/main/kotlin/xyz/wagyourtail/patchbase/gradle/PatchExtension.kt b/src/main/kotlin/xyz/wagyourtail/patchbase/gradle/PatchExtension.kt index 5be447a..023d543 100644 --- a/src/main/kotlin/xyz/wagyourtail/patchbase/gradle/PatchExtension.kt +++ b/src/main/kotlin/xyz/wagyourtail/patchbase/gradle/PatchExtension.kt @@ -1,11 +1,69 @@ package xyz.wagyourtail.patchbase.gradle +import org.gradle.api.Project +import org.gradle.api.tasks.SourceSet +import org.gradle.jvm.tasks.Jar +import xyz.wagyourtail.patchbase.gradle.tasks.ApplySourcePatchTask +import xyz.wagyourtail.patchbase.gradle.tasks.CreateClassPatchTask +import xyz.wagyourtail.patchbase.gradle.tasks.CreateSourcePatchTask +import xyz.wagyourtail.unimined.api.minecraft.EnvType import xyz.wagyourtail.unimined.api.minecraft.MinecraftConfig +import xyz.wagyourtail.unimined.api.unimined +import xyz.wagyourtail.unimined.internal.minecraft.patch.jarmod.JarModAgentMinecraftTransformer +import xyz.wagyourtail.unimined.util.withSourceSet -abstract class PatchExtension { +abstract class PatchExtension(val project: Project) { - fun patchBaseCreator(minecraftConfig: MinecraftConfig) { - minecraftConfig.patchBaseCreator() + fun patchBaseCreator(sourceSet: SourceSet) { + val mc = project.unimined.minecrafts.map[sourceSet]!! + if (mc.side == EnvType.COMBINED) { + project.logger.warn("[PatchBase/Creator ${this.project.path} ${sourceSet}] Merged may make applying patches more difficult, proceed with caution") + } + if (!mc.defaultRemapJar) { + project.logger.warn("[PatchBase/Creator ${this.project.path} ${sourceSet}] defaultRemapJar is false, this may cause issues with patching") + } + if (mc.mcPatcher !is JarModAgentMinecraftTransformer) { + project.logger.warn("[PatchBase/Creator ${this.project.path} ${sourceSet}] mcPatcher is not a JarModAgentMinecraftTransformer, this may cause issues with dev runs") + } + + project.tasks.register("createSourcePatch".withSourceSet(sourceSet), CreateSourcePatchTask::class.java) { + it.group = "patchbase" + it.sourceDir.set(project.file("src/${sourceSet.name}/java")) + it.outputDir.set(project.file("patches/${sourceSet.name}")) + val sourceFile = mc.minecraftFileDev.resolveSibling(mc.minecraftFileDev.nameWithoutExtension + "-sources.jar") + it.sources.set(project.files(sourceFile)) + if (!sourceFile.exists()) { + it.dependsOn("genSources") + } + } + + project.tasks.register("applySourcePatch".withSourceSet(sourceSet), ApplySourcePatchTask::class.java) { + it.group = "patchbase" + it.patchDir.set(project.file("patches/${sourceSet.name}")) + it.outputDir.set(project.file("src/${sourceSet.name}/java")) + val sourceFile = mc.minecraftFileDev.resolveSibling(mc.minecraftFileDev.nameWithoutExtension + "-sources.jar") + it.sources.set(project.files(sourceFile)) + if (!sourceFile.exists()) { + it.dependsOn("genSources".withSourceSet(sourceSet)) + } + } + + project.tasks.register("createClassPatch".withSourceSet(sourceSet), CreateClassPatchTask::class.java) { + it.group = "patchbase" + it.inputFile.set((project.tasks.findByName("remapJar".withSourceSet(sourceSet)) as Jar).outputs.files.singleFile) + + when (mc.side) { + EnvType.CLIENT -> it.classpath.set(project.files(mc.minecraftData.minecraftClientFile)) + EnvType.SERVER -> it.classpath.set(project.files(mc.minecraftData.minecraftServerFile)) + EnvType.COMBINED -> { + it.classpath.set(project.files(mc.mergedOfficialMinecraftFile)) + } + else -> throw IllegalStateException("Unknown side: ${mc.side}") + } + + it.archiveClassifier.set("patch") + it.dependsOn("remapJar".withSourceSet(sourceSet)) + } } fun patchBase(minecraftConfig: MinecraftConfig) {