diff --git a/gradle.properties b/gradle.properties index 148c213..adbcd0f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,5 +5,5 @@ loom_version_010Legacy=0.10.0.171 loom_version_010=0.10.0.188 loom_version_011=0.11.0.217 loom_version_11=1.1.313 -transformer_version=5.2.83 +transformer_version=5.2.87 base_version=3.4 \ No newline at end of file diff --git a/src/loom11/kotlin/dev/architectury/plugin/loom/LoomInterface11.kt b/src/loom11/kotlin/dev/architectury/plugin/loom/LoomInterface11.kt index d95c152..a9d5103 100644 --- a/src/loom11/kotlin/dev/architectury/plugin/loom/LoomInterface11.kt +++ b/src/loom11/kotlin/dev/architectury/plugin/loom/LoomInterface11.kt @@ -52,6 +52,11 @@ class LoomInterface11(private val project: Project) : LoomInterface { override val legacyMixinApEnabled: Boolean get() = extension.mixin.useLegacyMixinAp.get() + + + override val addRefmapForForge: Boolean + // Awful hack to check if the version >= 1.20.5, we don't get any info of forge version in common + get() = !extension.minecraftProvider.versionInfo.isVersionOrNewer("2024-04-23T00:00:00+00:00") override val generateTransformerPropertiesInTask = true diff --git a/src/main/kotlin/dev/architectury/plugin/ArchitecturyPluginExtension.kt b/src/main/kotlin/dev/architectury/plugin/ArchitecturyPluginExtension.kt index 04f4a6a..fe433f3 100644 --- a/src/main/kotlin/dev/architectury/plugin/ArchitecturyPluginExtension.kt +++ b/src/main/kotlin/dev/architectury/plugin/ArchitecturyPluginExtension.kt @@ -31,7 +31,7 @@ import java.util.jar.JarOutputStream import java.util.jar.Manifest open class ArchitectPluginExtension(val project: Project) { - var transformerVersion = "5.2.83" + var transformerVersion = "5.2.87" var injectablesVersion = "1.0.10" var minecraft = "" private var compileOnly = false @@ -109,7 +109,9 @@ open class ArchitectPluginExtension(val project: Project) { ) if (platform != "neoforge") { - if (loom.legacyMixinApEnabled) { + if (platform == "forge" && !loom.addRefmapForForge) { + map[BuiltinProperties.FORGE_FIX_MIXINS] = "false" + } else if (loom.legacyMixinApEnabled) { map[BuiltinProperties.REFMAP_NAME] = loom.refmapName } diff --git a/src/main/kotlin/dev/architectury/plugin/ModLoader.kt b/src/main/kotlin/dev/architectury/plugin/ModLoader.kt index acab21b..f1bf5cf 100644 --- a/src/main/kotlin/dev/architectury/plugin/ModLoader.kt +++ b/src/main/kotlin/dev/architectury/plugin/ModLoader.kt @@ -88,7 +88,7 @@ open class ModLoader( add(RemapInjectables()) { file -> this[BuiltinProperties.UNIQUE_IDENTIFIER] = projectGeneratedPackage(project, file) } - this += AddRefmapName() + this += AddRefmapName { loom.addRefmapForForge } this += TransformPlatformOnly() this += TransformForgeAnnotations() diff --git a/src/main/kotlin/dev/architectury/plugin/loom/LoomInterface.kt b/src/main/kotlin/dev/architectury/plugin/loom/LoomInterface.kt index 01e7310..e620259 100644 --- a/src/main/kotlin/dev/architectury/plugin/loom/LoomInterface.kt +++ b/src/main/kotlin/dev/architectury/plugin/loom/LoomInterface.kt @@ -49,6 +49,7 @@ interface LoomInterface { val refmapName: String var generateSrgTiny: Boolean val legacyMixinApEnabled: Boolean get() = false + val addRefmapForForge: Boolean get() = true /** * Loom 0.11+ has to generate the runtime transformer properties file diff --git a/src/main/kotlin/dev/architectury/plugin/transformers/AddRefmapName.kt b/src/main/kotlin/dev/architectury/plugin/transformers/AddRefmapName.kt index c2e5788..64103b3 100644 --- a/src/main/kotlin/dev/architectury/plugin/transformers/AddRefmapName.kt +++ b/src/main/kotlin/dev/architectury/plugin/transformers/AddRefmapName.kt @@ -10,9 +10,10 @@ import dev.architectury.transformer.transformers.base.edit.TransformerContext import dev.architectury.transformer.util.Logger import java.io.ByteArrayInputStream -class AddRefmapName : AssetEditTransformer { +data class AddRefmapName(val enabled: () -> Boolean = { true }) : AssetEditTransformer { val gson = GsonBuilder().setPrettyPrinting().create() override fun doEdit(context: TransformerContext, output: FileAccess) { + if (!enabled()) return val refmap = System.getProperty(BuiltinProperties.REFMAP_NAME) ?: return val mixins = mutableSetOf() output.handle { path, bytes ->