diff options
author | shedaniel <daniel@shedaniel.me> | 2021-04-14 08:38:39 +0800 |
---|---|---|
committer | shedaniel <daniel@shedaniel.me> | 2021-04-14 08:38:39 +0800 |
commit | 003574b9e8670e00b0e8ddb9698b0175932d55f0 (patch) | |
tree | d5fed32915d5c2bb9389eabf21e1ec2549d039b1 /src/main/java/net/fabricmc | |
parent | 361c84cf00a08336ba62ef490f9a3c360e46edab (diff) | |
download | architectury-loom-003574b9e8670e00b0e8ddb9698b0175932d55f0.tar.gz architectury-loom-003574b9e8670e00b0e8ddb9698b0175932d55f0.tar.bz2 architectury-loom-003574b9e8670e00b0e8ddb9698b0175932d55f0.zip |
Fix refmap remapping
Diffstat (limited to 'src/main/java/net/fabricmc')
-rw-r--r-- | src/main/java/net/fabricmc/loom/task/RemapJarTask.java | 58 |
1 files changed, 29 insertions, 29 deletions
diff --git a/src/main/java/net/fabricmc/loom/task/RemapJarTask.java b/src/main/java/net/fabricmc/loom/task/RemapJarTask.java index f08ac303..5edc43c4 100644 --- a/src/main/java/net/fabricmc/loom/task/RemapJarTask.java +++ b/src/main/java/net/fabricmc/loom/task/RemapJarTask.java @@ -141,7 +141,7 @@ public class RemapJarTask extends Jar { for (File mixinMapFile : extension.getAllMixinMappings()) { if (mixinMapFile.exists()) { IMappingProvider provider = TinyUtils.createTinyMappingProvider(mixinMapFile.toPath(), fromM, "intermediary"); - remapperBuilder = remapperBuilder.withMappings(!toM.equals("intermediary") ? remapToSrg(extension, provider, fromM, toM) : provider); + remapperBuilder = remapperBuilder.withMappings(!toM.equals("intermediary") ? remapToSrg(extension, provider, "intermediary", toM) : provider); } } @@ -186,9 +186,9 @@ public class RemapJarTask extends Jar { project.getLogger().debug("Transformed mixin reference maps in output JAR!"); } - if (extension.isForge()) { + if (!toM.equals("intermediary")) { try { - remapRefmap(extension, output); + remapRefmap(extension, output, "intermediary", toM); } catch (IOException e) { throw new RuntimeException("Failed to remap refmap jar", e); } @@ -205,7 +205,7 @@ public class RemapJarTask extends Jar { } } - private ReferenceRemapper createReferenceRemapper(LoomGradleExtension extension, String fromM, String toM) throws IOException { + private ReferenceRemapper createReferenceRemapper(LoomGradleExtension extension, String from, String to) throws IOException { TinyTree mappings = extension.shouldGenerateSrgTiny() ? extension.getMappingsProvider().getMappingsWithSrg() : extension.getMappingsProvider().getMappings(); return new SimpleReferenceRemapper(new SimpleReferenceRemapper.Remapper() { @@ -213,9 +213,9 @@ public class RemapJarTask extends Jar { @Nullable public String mapClass(String value) { return mappings.getClasses().stream() - .filter(classDef -> Objects.equals(classDef.getName(fromM), value)) + .filter(classDef -> Objects.equals(classDef.getName(from), value)) .findFirst() - .map(classDef -> classDef.getName(toM)) + .map(classDef -> classDef.getName(to)) .orElse(null); } @@ -224,13 +224,13 @@ public class RemapJarTask extends Jar { public String mapMethod(@Nullable String className, String methodName, String methodDescriptor) { if (className != null) { Optional<ClassDef> classDef = mappings.getClasses().stream() - .filter(c -> Objects.equals(c.getName(fromM), className)) + .filter(c -> Objects.equals(c.getName(from), className)) .findFirst(); if (classDef.isPresent()) { for (MethodDef methodDef : classDef.get().getMethods()) { - if (Objects.equals(methodDef.getName(fromM), methodName) && Objects.equals(methodDef.getDescriptor(fromM), methodDescriptor)) { - return methodDef.getName(toM); + if (Objects.equals(methodDef.getName(from), methodName) && Objects.equals(methodDef.getDescriptor(from), methodDescriptor)) { + return methodDef.getName(to); } } } @@ -238,9 +238,9 @@ public class RemapJarTask extends Jar { return mappings.getClasses().stream() .flatMap(classDef -> classDef.getMethods().stream()) - .filter(methodDef -> Objects.equals(methodDef.getName(fromM), methodName) && Objects.equals(methodDef.getDescriptor(fromM), methodDescriptor)) + .filter(methodDef -> Objects.equals(methodDef.getName(from), methodName) && Objects.equals(methodDef.getDescriptor(from), methodDescriptor)) .findFirst() - .map(methodDef -> methodDef.getName(toM)) + .map(methodDef -> methodDef.getName(to)) .orElse(null); } @@ -249,13 +249,13 @@ public class RemapJarTask extends Jar { public String mapField(@Nullable String className, String fieldName, String fieldDescriptor) { if (className != null) { Optional<ClassDef> classDef = mappings.getClasses().stream() - .filter(c -> Objects.equals(c.getName(fromM), className)) + .filter(c -> Objects.equals(c.getName(from), className)) .findFirst(); if (classDef.isPresent()) { for (FieldDef fieldDef : classDef.get().getFields()) { - if (Objects.equals(fieldDef.getName(fromM), fieldName) && Objects.equals(fieldDef.getDescriptor(fromM), fieldDescriptor)) { - return fieldDef.getName(toM); + if (Objects.equals(fieldDef.getName(from), fieldName) && Objects.equals(fieldDef.getDescriptor(from), fieldDescriptor)) { + return fieldDef.getName(to); } } } @@ -263,9 +263,9 @@ public class RemapJarTask extends Jar { return mappings.getClasses().stream() .flatMap(classDef -> classDef.getFields().stream()) - .filter(fieldDef -> Objects.equals(fieldDef.getName(fromM), fieldName) && Objects.equals(fieldDef.getDescriptor(fromM), fieldDescriptor)) + .filter(fieldDef -> Objects.equals(fieldDef.getName(from), fieldName) && Objects.equals(fieldDef.getDescriptor(from), fieldDescriptor)) .findFirst() - .map(fieldDef -> fieldDef.getName(toM)) + .map(fieldDef -> fieldDef.getName(to)) .orElse(null); } }); @@ -295,7 +295,7 @@ public class RemapJarTask extends Jar { for (File mixinMapFile : extension.getAllMixinMappings()) { if (mixinMapFile.exists()) { IMappingProvider provider = TinyUtils.createTinyMappingProvider(mixinMapFile.toPath(), fromM, "intermediary"); - jarRemapper.addMappings(!toM.equals("intermediary") ? remapToSrg(extension, provider, fromM, toM) : provider); + jarRemapper.addMappings(!toM.equals("intermediary") ? remapToSrg(extension, provider, "intermediary", toM) : provider); } } @@ -333,9 +333,9 @@ public class RemapJarTask extends Jar { project.getLogger().debug("Transformed mixin reference maps in output JAR!"); } - if (extension.isForge()) { + if (!toM.equals("intermediary")) { try { - remapRefmap(extension, output); + remapRefmap(extension, output, "intermediary", toM); } catch (IOException e) { throw new RuntimeException("Failed to remap refmap jar", e); } @@ -354,7 +354,7 @@ public class RemapJarTask extends Jar { }); } - private void remapRefmap(LoomGradleExtension extension, Path output) throws IOException { + private void remapRefmap(LoomGradleExtension extension, Path output, String from, String to) throws IOException { try (FileSystem fs = FileSystems.newFileSystem(URI.create("jar:" + output.toUri()), ImmutableMap.of("create", false))) { Path refmapPath = fs.getPath(extension.getRefmapName()); @@ -363,7 +363,7 @@ public class RemapJarTask extends Jar { Gson gson = new GsonBuilder().disableHtmlEscaping().setPrettyPrinting().create(); JsonObject refmapElement = gson.fromJson(refmapReader, JsonObject.class); refmapElement = RefmapRemapper.remap(new Remapper() { - ReferenceRemapper remapper = createReferenceRemapper(extension, fromM.get(), toM.get()); + ReferenceRemapper remapper = createReferenceRemapper(extension, from, to); @Override @Nullable @@ -375,7 +375,7 @@ public class RemapJarTask extends Jar { @Nullable public Map.Entry<String, @Nullable MappingsRemapper> remapMappingsData(String data) { if (Objects.equals(data, "named:intermediary")) { - return new AbstractMap.SimpleEntry<>("searge", remapMappings()); + return new AbstractMap.SimpleEntry<>(Objects.equals(to, "srg") ? "searge" : data, remapMappings()); } return null; @@ -388,7 +388,7 @@ public class RemapJarTask extends Jar { } } - private IMappingProvider remapToSrg(LoomGradleExtension extension, IMappingProvider parent, String fromM, String toM) throws IOException { + private IMappingProvider remapToSrg(LoomGradleExtension extension, IMappingProvider parent, String from, String to) throws IOException { TinyTree mappings = extension.shouldGenerateSrgTiny() ? extension.getMappingsProvider().getMappingsWithSrg() : extension.getMappingsProvider().getMappings(); return sink -> { @@ -397,9 +397,9 @@ public class RemapJarTask extends Jar { public void acceptClass(String srcName, String dstName) { String srgName = mappings.getClasses() .stream() - .filter(it -> Objects.equals(it.getName(fromM), dstName)) + .filter(it -> Objects.equals(it.getName(from), dstName)) .findFirst() - .map(it -> it.getName(toM)) + .map(it -> it.getName(to)) .orElse(dstName); sink.acceptClass(srcName, srgName); } @@ -409,9 +409,9 @@ public class RemapJarTask extends Jar { String srgName = mappings.getClasses() .stream() .flatMap(it -> it.getMethods().stream()) - .filter(it -> Objects.equals(it.getName(fromM), dstName)) + .filter(it -> Objects.equals(it.getName(from), dstName)) .findFirst() - .map(it -> it.getName(toM)) + .map(it -> it.getName(to)) .orElse(dstName); sink.acceptMethod(method, srgName); } @@ -421,9 +421,9 @@ public class RemapJarTask extends Jar { String srgName = mappings.getClasses() .stream() .flatMap(it -> it.getFields().stream()) - .filter(it -> Objects.equals(it.getName(fromM), dstName)) + .filter(it -> Objects.equals(it.getName(from), dstName)) .findFirst() - .map(it -> it.getName(toM)) + .map(it -> it.getName(to)) .orElse(dstName); sink.acceptField(field, srgName); } |