aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/com/replaymod/gradle/remap
diff options
context:
space:
mode:
authorSychic <47618543+Sychic@users.noreply.github.com>2024-05-06 10:13:52 -0400
committerGitHub <noreply@github.com>2024-05-06 16:13:52 +0200
commit5134612493d43da328a2567e8425981094d67c50 (patch)
tree08270a7c1504f6a951bd515bcae7d3d65e594571 /src/main/kotlin/com/replaymod/gradle/remap
parent78d264552f201c388ab833617d4d3ff7ed67eee8 (diff)
downloadRemap-5134612493d43da328a2567e8425981094d67c50.tar.gz
Remap-5134612493d43da328a2567e8425981094d67c50.tar.bz2
Remap-5134612493d43da328a2567e8425981094d67c50.zip
Override `createInnerClassMapping` for `LegacyMappingSetModelFactory` (#22)
Co-authored-by: DJtheRedstoner <52044242+DJtheRedstoner@users.noreply.github.com>
Diffstat (limited to 'src/main/kotlin/com/replaymod/gradle/remap')
-rw-r--r--src/main/kotlin/com/replaymod/gradle/remap/legacy/LegacyMappingSetModelFactory.kt28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/main/kotlin/com/replaymod/gradle/remap/legacy/LegacyMappingSetModelFactory.kt b/src/main/kotlin/com/replaymod/gradle/remap/legacy/LegacyMappingSetModelFactory.kt
index ec21546..6d463f0 100644
--- a/src/main/kotlin/com/replaymod/gradle/remap/legacy/LegacyMappingSetModelFactory.kt
+++ b/src/main/kotlin/com/replaymod/gradle/remap/legacy/LegacyMappingSetModelFactory.kt
@@ -3,7 +3,10 @@ package com.replaymod.gradle.remap.legacy
import org.cadixdev.bombe.type.signature.MethodSignature
import org.cadixdev.lorenz.MappingSet
import org.cadixdev.lorenz.impl.MappingSetModelFactoryImpl
+import org.cadixdev.lorenz.impl.model.InnerClassMappingImpl
import org.cadixdev.lorenz.impl.model.TopLevelClassMappingImpl
+import org.cadixdev.lorenz.model.ClassMapping
+import org.cadixdev.lorenz.model.InnerClassMapping
import org.cadixdev.lorenz.model.MethodMapping
import org.cadixdev.lorenz.model.TopLevelClassMapping
import java.util.*
@@ -29,4 +32,29 @@ class LegacyMappingSetModelFactory : MappingSetModelFactoryImpl() {
}
}
}
+
+ override fun createInnerClassMapping(
+ parent: ClassMapping<out ClassMapping<*, *>, *>?,
+ obfuscatedName: String?,
+ deobfuscatedName: String?
+ ): InnerClassMapping {
+ return object : InnerClassMappingImpl(parent, obfuscatedName, deobfuscatedName) {
+ private fun stripDesc(signature: MethodSignature): MethodSignature {
+ // actual descriptor isn't included in legacy format
+ return MethodSignature.of(signature.name, "()V")
+ }
+
+ override fun hasMethodMapping(signature: MethodSignature): Boolean {
+ return super.hasMethodMapping(signature) || super.hasMethodMapping(stripDesc(signature))
+ }
+
+ override fun getMethodMapping(signature: MethodSignature): Optional<MethodMapping> {
+ var maybeMapping = super.getMethodMapping(signature)
+ if (!maybeMapping.isPresent || maybeMapping.get().let { it.signature == it.deobfuscatedSignature }) {
+ maybeMapping = super.getMethodMapping(stripDesc(signature))
+ }
+ return maybeMapping
+ }
+ }
+ }
}