Forge 50+ (#48)

* Detect 1.20.5 Minecraft and disable fix mixins for Forge 50+

* Bump to 5.2.87
This commit is contained in:
shedaniel
2024-08-12 23:19:50 +08:00
committed by GitHub
parent 2f42cfe308
commit ab888121d3
6 changed files with 14 additions and 5 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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
}

View File

@@ -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()

View File

@@ -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

View File

@@ -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<String>()
output.handle { path, bytes ->