Add unpick constant field remapping (#2236)

* Add unpick constant field remapping

* Update unpick

Co-authored-by: modmuss50 <modmuss50@gmail.com>
This commit is contained in:
Juuxel 2021-04-02 15:56:57 +03:00 committed by GitHub
parent 2fb24b985f
commit f44bbdd185
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 2 deletions

View File

@ -633,6 +633,7 @@ task mapNamedJar(dependsOn: ["mergeV2", "unpickIntermediaryJar"]) {
import daomephsta.unpick.constantmappers.datadriven.parser.v2.UnpickV2Reader import daomephsta.unpick.constantmappers.datadriven.parser.v2.UnpickV2Reader
import daomephsta.unpick.constantmappers.datadriven.parser.v2.UnpickV2Writer import daomephsta.unpick.constantmappers.datadriven.parser.v2.UnpickV2Writer
import daomephsta.unpick.constantmappers.datadriven.parser.v2.UnpickV2Remapper import daomephsta.unpick.constantmappers.datadriven.parser.v2.UnpickV2Remapper
import daomephsta.unpick.constantmappers.datadriven.parser.FieldKey
import daomephsta.unpick.constantmappers.datadriven.parser.MethodKey import daomephsta.unpick.constantmappers.datadriven.parser.MethodKey
import net.fabricmc.mapping.tree.TinyMappingFactory import net.fabricmc.mapping.tree.TinyMappingFactory
@ -680,6 +681,7 @@ task remapUnpickDefinitionsIntermediary(type : FileOutputInput, dependsOn: [comb
doLast { doLast {
def classMappings = [:] def classMappings = [:]
def methodMappings = [:] def methodMappings = [:]
def fieldMappings = [:]
mappingsInput.withReader {reader -> mappingsInput.withReader {reader ->
def tinyTree = TinyMappingFactory.loadWithDetection(reader) def tinyTree = TinyMappingFactory.loadWithDetection(reader)
@ -700,13 +702,23 @@ task remapUnpickDefinitionsIntermediary(type : FileOutputInput, dependsOn: [comb
methodDef.getName("intermediary") methodDef.getName("intermediary")
) )
} }
classDef.fields.forEach { fieldDef ->
fieldMappings.put(
new FieldKey(
classDef.getName("named"),
fieldDef.getName("named")
),
fieldDef.getName("intermediary")
)
}
} }
} }
input.withInputStream { input.withInputStream {
new UnpickV2Reader(it).withCloseable {reader -> new UnpickV2Reader(it).withCloseable {reader ->
def writer = new UnpickV2Writer() def writer = new UnpickV2Writer()
reader.accept(new UnpickV2Remapper(classMappings, methodMappings, writer)) reader.accept(new UnpickV2Remapper(classMappings, methodMappings, fieldMappings, writer))
output.text = writer.output output.text = writer.output
} }
} }

View File

@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G
enigma_version=0.26.0 enigma_version=0.26.0
stitch_version=0.5.1+build.77 stitch_version=0.5.1+build.77
unpick_version=2.1.1 unpick_version=2.2.0
# Loader is only used by javadoc generation/linking # Loader is only used by javadoc generation/linking
fabric_loader_version=0.11.1 fabric_loader_version=0.11.1
jetbrains_annotations_version=20.1.0 jetbrains_annotations_version=20.1.0