From cd1d19afa7857bc95bdeab474ab6357c312b55c0 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Sun, 4 Apr 2021 21:54:07 +0800 Subject: [PATCH 1/5] Update tiny remapper --- build.gradle | 5 +++-- .../providers/minecraft/MinecraftMappedProvider.java | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 418c738e..279d7332 100644 --- a/build.gradle +++ b/build.gradle @@ -72,8 +72,8 @@ dependencies { } // tinyfile management - compileOnly ('net.fabricmc:tiny-remapper:0.3.2-architectury.6') - shadowArchitectury ('net.fabricmc:tiny-remapper:0.3.2-architectury.6') { + compileOnly ('net.fabricmc:tiny-remapper:0.3.2-architectury.7') + shadowArchitectury ('net.fabricmc:tiny-remapper:0.3.2-architectury.7') { transitive = false } implementation ('net.fabricmc:tiny-mappings-parser:0.3.0+build.17') @@ -139,6 +139,7 @@ jar { shadowJar { relocate "net.fabricmc.tinyremapper", "me.shedaniel.architectury.loom.shadowed.impl.net.fabricmc.tinyremapper" relocate "me.shedaniel.architectury.refmapremapper", "me.shedaniel.architectury.loom.shadowed.impl.me.shedaniel.architectury.refmapremapper" + relocate "org.objectweb.asm", "me.shedaniel.architectury.loom.shadowed.impl.org.objectweb.asm" configurations = [project.configurations.shadowArchitectury] classifier "shadow" } diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftMappedProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftMappedProvider.java index 3b2e9391..b3d46b7f 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftMappedProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftMappedProvider.java @@ -117,6 +117,7 @@ public class MinecraftMappedProvider extends DependencyProvider { if (getExtension().isForge()) { minecraftSrgJar.delete(); } + getExtension().getMappingsProvider().cleanFiles(); throw new RuntimeException("Failed to remap minecraft", t); } From f45f47b1b07435f1d8c151bcc5f368e7eaf13f08 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Sun, 4 Apr 2021 21:54:47 +0800 Subject: [PATCH 2/5] Remove relocate --- build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/build.gradle b/build.gradle index 279d7332..1d29b95d 100644 --- a/build.gradle +++ b/build.gradle @@ -139,7 +139,6 @@ jar { shadowJar { relocate "net.fabricmc.tinyremapper", "me.shedaniel.architectury.loom.shadowed.impl.net.fabricmc.tinyremapper" relocate "me.shedaniel.architectury.refmapremapper", "me.shedaniel.architectury.loom.shadowed.impl.me.shedaniel.architectury.refmapremapper" - relocate "org.objectweb.asm", "me.shedaniel.architectury.loom.shadowed.impl.org.objectweb.asm" configurations = [project.configurations.shadowArchitectury] classifier "shadow" } From d333ad16d2747b18418551eb5b371476f4ded0dd Mon Sep 17 00:00:00 2001 From: Devan-Kerman Date: Thu, 8 Apr 2021 17:07:30 -0500 Subject: [PATCH 3/5] fix maybe --- .../net/fabricmc/loom/util/srg/MCPReader.java | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/util/srg/MCPReader.java b/src/main/java/net/fabricmc/loom/util/srg/MCPReader.java index d45fea9d..7639eb00 100644 --- a/src/main/java/net/fabricmc/loom/util/srg/MCPReader.java +++ b/src/main/java/net/fabricmc/loom/util/srg/MCPReader.java @@ -245,23 +245,24 @@ public class MCPReader { } } - try (CSVReader reader = new CSVReader(Files.newBufferedReader(params, StandardCharsets.UTF_8))) { - reader.readNext(); - String[] line; + if (Files.exists(params)) { + try (CSVReader reader = new CSVReader(Files.newBufferedReader(params, StandardCharsets.UTF_8))) { + reader.readNext(); + String[] line; - while ((line = reader.readNext()) != null) { - Matcher param = paramsPattern.matcher(line[0]); + while ((line = reader.readNext()) != null) { + Matcher param = paramsPattern.matcher(line[0]); - if (param.matches()) { - String named = line[1]; - String srgMethodStartWith = "func_" + param.group(1); - int lvIndex = Integer.parseInt(param.group(2)); - List intermediaryMethod = simpleSrgToIntermediary.get(srgMethodStartWith); + if (param.matches()) { + String named = line[1]; + String srgMethodStartWith = "func_" + param.group(1); + int lvIndex = Integer.parseInt(param.group(2)); + List intermediaryMethod = simpleSrgToIntermediary.get(srgMethodStartWith); - if (intermediaryMethod != null) { - for (String s : intermediaryMethod) { - intermediaryToParamsMap.computeIfAbsent(s, s1 -> new HashMap<>()) - .put(lvIndex, named); + if (intermediaryMethod != null) { + for (String s : intermediaryMethod) { + intermediaryToParamsMap.computeIfAbsent(s, s1 -> new HashMap<>()).put(lvIndex, named); + } } } } From 635fd8a55df7d39ca2cfc3730cf6dc4cbcbd784c Mon Sep 17 00:00:00 2001 From: shedaniel Date: Tue, 13 Apr 2021 10:07:26 +0800 Subject: [PATCH 4/5] Allow remapping to other namespaces --- .../fabricmc/loom/LoomGradleExtension.java | 3 +- .../configuration/CompileConfiguration.java | 6 +- .../net/fabricmc/loom/task/RemapJarTask.java | 77 ++++++++++--------- .../loom/task/RemapSourcesJarTask.java | 18 ++++- .../fabricmc/loom/util/SourceRemapper.java | 47 +++++++---- 5 files changed, 95 insertions(+), 56 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java index 654f96c0..bf1c3476 100644 --- a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java +++ b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java @@ -136,11 +136,12 @@ public class LoomGradleExtension { } public MappingSet getOrCreateSrcMappingCache(int id, Supplier factory) { + if (id < 0 || id >= srcMappingCache.length) return factory.get(); return srcMappingCache[id] != null ? srcMappingCache[id] : (srcMappingCache[id] = factory.get()); } public Mercury getOrCreateSrcMercuryCache(int id, Supplier factory) { - if (id == -1) return factory.get(); + if (id < 0 || id >= srcMercuryCache.length) return factory.get(); return srcMercuryCache[id] != null ? srcMercuryCache[id] : (srcMercuryCache[id] = factory.get()); } diff --git a/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java b/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java index 01310e6d..1fa48c45 100644 --- a/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java +++ b/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java @@ -268,7 +268,6 @@ public final class CompileConfiguration { } if (extension.isForge()) { - remapJarTask.getToM().set("srg"); ((Jar) jarTask).manifest(manifest -> { List configs = new ArrayList<>(); @@ -342,10 +341,11 @@ public final class CompileConfiguration { AbstractArchiveTask sourcesTask = (AbstractArchiveTask) project1.getTasks().getByName("sourcesJar"); RemapSourcesJarTask remapSourcesJarTask = (RemapSourcesJarTask) project1.getTasks().findByName("remapSourcesJar"); - remapSourcesJarTask.setInput(sourcesTask.getArchivePath()); remapSourcesJarTask.setOutput(sourcesTask.getArchivePath()); + sourcesTask.setClassifier(sourcesTask.getClassifier() == null ? "dev" : sourcesTask.getClassifier() + "-dev"); + remapSourcesJarTask.setInput(sourcesTask.getArchivePath()); remapSourcesJarTask.doLast(task -> project1.getArtifacts().add("archives", remapSourcesJarTask.getOutput())); - remapSourcesJarTask.dependsOn(project1.getTasks().getByName("sourcesJar")); + remapSourcesJarTask.dependsOn(sourcesTask); if (extension.isShareCaches()) { remapSourcesJarTask.setSourceRemapper(remapper); diff --git a/src/main/java/net/fabricmc/loom/task/RemapJarTask.java b/src/main/java/net/fabricmc/loom/task/RemapJarTask.java index 25165098..bf7ed726 100644 --- a/src/main/java/net/fabricmc/loom/task/RemapJarTask.java +++ b/src/main/java/net/fabricmc/loom/task/RemapJarTask.java @@ -70,6 +70,7 @@ import net.fabricmc.loom.build.NestedJars; import net.fabricmc.loom.configuration.accesswidener.AccessWidenerJarProcessor; import net.fabricmc.loom.configuration.providers.mappings.MappingsProvider; import net.fabricmc.loom.util.LoggerFilter; +import net.fabricmc.loom.util.SourceRemapper; import net.fabricmc.loom.util.TinyRemapperMappingsHelper; import net.fabricmc.loom.util.ZipReprocessorUtil; import net.fabricmc.loom.util.gradle.GradleSupport; @@ -101,7 +102,7 @@ public class RemapJarTask extends Jar { fromM = getProject().getObjects().property(String.class); toM = getProject().getObjects().property(String.class); fromM.set("named"); - toM.set("intermediary"); + toM.set(SourceRemapper.intermediary(getProject())); // false by default, I have no idea why I have to do it for this property and not the other one remapAccessWidener.set(false); } @@ -135,12 +136,12 @@ public class RemapJarTask extends Jar { LoggerFilter.replaceSystemOut(); TinyRemapper.Builder remapperBuilder = TinyRemapper.newRemapper(); remapperBuilder.logger(getProject().getLogger()::lifecycle); - remapperBuilder = remapperBuilder.withMappings(TinyRemapperMappingsHelper.create(extension.isForge() ? mappingsProvider.getMappingsWithSrg() : mappingsProvider.getMappings(), fromM, toM, false)); + remapperBuilder = remapperBuilder.withMappings(TinyRemapperMappingsHelper.create(extension.shouldGenerateSrgTiny() ? mappingsProvider.getMappingsWithSrg() : mappingsProvider.getMappings(), fromM, toM, false)); for (File mixinMapFile : extension.getAllMixinMappings()) { if (mixinMapFile.exists()) { IMappingProvider provider = TinyUtils.createTinyMappingProvider(mixinMapFile.toPath(), fromM, "intermediary"); - remapperBuilder = remapperBuilder.withMappings(extension.isForge() ? remapToSrg(extension, provider) : provider); + remapperBuilder = remapperBuilder.withMappings(!toM.equals("intermediary") ? remapToSrg(extension, provider, fromM, toM) : provider); } } @@ -149,7 +150,7 @@ public class RemapJarTask extends Jar { remapOption.execute(remapperBuilder); } - project.getLogger().info(":remapping " + input.getFileName()); + project.getLogger().info(":remapping " + input.getFileName() + " from " + fromM + " to " + toM); StringBuilder rc = new StringBuilder("Remap classpath: "); @@ -194,7 +195,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); + ReferenceRemapper remapper = createReferenceRemapper(extension, fromM, toM); @Override @Nullable @@ -230,17 +231,17 @@ public class RemapJarTask extends Jar { } } - private ReferenceRemapper createReferenceRemapper(LoomGradleExtension extension) throws IOException { - TinyTree srg = extension.getMappingsProvider().getMappingsWithSrg(); + private ReferenceRemapper createReferenceRemapper(LoomGradleExtension extension, String fromM, String toM) throws IOException { + TinyTree mappings = extension.shouldGenerateSrgTiny() ? extension.getMappingsProvider().getMappingsWithSrg() : extension.getMappingsProvider().getMappings(); return new SimpleReferenceRemapper(new SimpleReferenceRemapper.Remapper() { @Override @Nullable public String mapClass(String value) { - return srg.getClasses().stream() - .filter(classDef -> Objects.equals(classDef.getName("intermediary"), value)) + return mappings.getClasses().stream() + .filter(classDef -> Objects.equals(classDef.getName(fromM), value)) .findFirst() - .map(classDef -> classDef.getName("srg")) + .map(classDef -> classDef.getName(toM)) .orElse(null); } @@ -248,24 +249,24 @@ public class RemapJarTask extends Jar { @Nullable public String mapMethod(@Nullable String className, String methodName, String methodDescriptor) { if (className != null) { - Optional classDef = srg.getClasses().stream() - .filter(c -> Objects.equals(c.getName("intermediary"), className)) + Optional classDef = mappings.getClasses().stream() + .filter(c -> Objects.equals(c.getName(fromM), className)) .findFirst(); if (classDef.isPresent()) { for (MethodDef methodDef : classDef.get().getMethods()) { - if (Objects.equals(methodDef.getName("intermediary"), methodName) && Objects.equals(methodDef.getDescriptor("intermediary"), methodDescriptor)) { - return methodDef.getName("srg"); + if (Objects.equals(methodDef.getName(fromM), methodName) && Objects.equals(methodDef.getDescriptor(fromM), methodDescriptor)) { + return methodDef.getName(toM); } } } } - return srg.getClasses().stream() + return mappings.getClasses().stream() .flatMap(classDef -> classDef.getMethods().stream()) - .filter(methodDef -> Objects.equals(methodDef.getName("intermediary"), methodName) && Objects.equals(methodDef.getDescriptor("intermediary"), methodDescriptor)) + .filter(methodDef -> Objects.equals(methodDef.getName(fromM), methodName) && Objects.equals(methodDef.getDescriptor(fromM), methodDescriptor)) .findFirst() - .map(methodDef -> methodDef.getName("srg")) + .map(methodDef -> methodDef.getName(toM)) .orElse(null); } @@ -273,24 +274,24 @@ public class RemapJarTask extends Jar { @Nullable public String mapField(@Nullable String className, String fieldName, String fieldDescriptor) { if (className != null) { - Optional classDef = srg.getClasses().stream() - .filter(c -> Objects.equals(c.getName("intermediary"), className)) + Optional classDef = mappings.getClasses().stream() + .filter(c -> Objects.equals(c.getName(fromM), className)) .findFirst(); if (classDef.isPresent()) { for (FieldDef fieldDef : classDef.get().getFields()) { - if (Objects.equals(fieldDef.getName("intermediary"), fieldName) && Objects.equals(fieldDef.getDescriptor("intermediary"), fieldDescriptor)) { - return fieldDef.getName("srg"); + if (Objects.equals(fieldDef.getName(fromM), fieldName) && Objects.equals(fieldDef.getDescriptor(fromM), fieldDescriptor)) { + return fieldDef.getName(toM); } } } } - return srg.getClasses().stream() + return mappings.getClasses().stream() .flatMap(classDef -> classDef.getFields().stream()) - .filter(fieldDef -> Objects.equals(fieldDef.getName("intermediary"), fieldName) && Objects.equals(fieldDef.getDescriptor("intermediary"), fieldDescriptor)) + .filter(fieldDef -> Objects.equals(fieldDef.getName(fromM), fieldName) && Objects.equals(fieldDef.getDescriptor(fromM), fieldDescriptor)) .findFirst() - .map(fieldDef -> fieldDef.getName("srg")) + .map(fieldDef -> fieldDef.getName(toM)) .orElse(null); } }); @@ -314,19 +315,21 @@ public class RemapJarTask extends Jar { if (extension.isRootProject()) { jarRemapper.addToClasspath(getRemapClasspath()); - jarRemapper.addMappings(TinyRemapperMappingsHelper.create(extension.isForge() ? mappingsProvider.getMappingsWithSrg() : mappingsProvider.getMappings(), fromM, toM, false)); + jarRemapper.addMappings(TinyRemapperMappingsHelper.create(extension.shouldGenerateSrgTiny() ? mappingsProvider.getMappingsWithSrg() : mappingsProvider.getMappings(), fromM, toM, false)); } for (File mixinMapFile : extension.getAllMixinMappings()) { if (mixinMapFile.exists()) { IMappingProvider provider = TinyUtils.createTinyMappingProvider(mixinMapFile.toPath(), fromM, "intermediary"); - jarRemapper.addMappings(extension.isForge() ? remapToSrg(extension, provider) : provider); + jarRemapper.addMappings(!toM.equals("intermediary") ? remapToSrg(extension, provider, fromM, toM) : provider); } } // Add remap options to the jar remapper jarRemapper.addOptions(this.remapOptions); + project.getLogger().info(":scheduling remap " + input.getFileName() + " from " + fromM + " to " + toM); + jarRemapper.scheduleRemap(input, output) .supplyAccessWidener((remapData, remapper) -> { if (getRemapAccessWidener().getOrElse(false) && extension.accessWidener != null) { @@ -369,42 +372,42 @@ public class RemapJarTask extends Jar { }); } - private IMappingProvider remapToSrg(LoomGradleExtension extension, IMappingProvider parent) throws IOException { - TinyTree srg = extension.getMappingsProvider().getMappingsWithSrg(); + private IMappingProvider remapToSrg(LoomGradleExtension extension, IMappingProvider parent, String fromM, String toM) throws IOException { + TinyTree mappings = extension.shouldGenerateSrgTiny() ? extension.getMappingsProvider().getMappingsWithSrg() : extension.getMappingsProvider().getMappings(); return sink -> { parent.load(new IMappingProvider.MappingAcceptor() { @Override public void acceptClass(String srcName, String dstName) { - String srgName = srg.getClasses() + String srgName = mappings.getClasses() .stream() - .filter(it -> Objects.equals(it.getName("intermediary"), dstName)) + .filter(it -> Objects.equals(it.getName(fromM), dstName)) .findFirst() - .map(it -> it.getName("srg")) + .map(it -> it.getName(toM)) .orElse(dstName); sink.acceptClass(srcName, srgName); } @Override public void acceptMethod(IMappingProvider.Member method, String dstName) { - String srgName = srg.getClasses() + String srgName = mappings.getClasses() .stream() .flatMap(it -> it.getMethods().stream()) - .filter(it -> Objects.equals(it.getName("intermediary"), dstName)) + .filter(it -> Objects.equals(it.getName(fromM), dstName)) .findFirst() - .map(it -> it.getName("srg")) + .map(it -> it.getName(toM)) .orElse(dstName); sink.acceptMethod(method, srgName); } @Override public void acceptField(IMappingProvider.Member field, String dstName) { - String srgName = srg.getClasses() + String srgName = mappings.getClasses() .stream() .flatMap(it -> it.getFields().stream()) - .filter(it -> Objects.equals(it.getName("intermediary"), dstName)) + .filter(it -> Objects.equals(it.getName(fromM), dstName)) .findFirst() - .map(it -> it.getName("srg")) + .map(it -> it.getName(toM)) .orElse(dstName); sink.acceptField(field, srgName); } diff --git a/src/main/java/net/fabricmc/loom/task/RemapSourcesJarTask.java b/src/main/java/net/fabricmc/loom/task/RemapSourcesJarTask.java index 2d388fba..3844472e 100644 --- a/src/main/java/net/fabricmc/loom/task/RemapSourcesJarTask.java +++ b/src/main/java/net/fabricmc/loom/task/RemapSourcesJarTask.java @@ -40,6 +40,7 @@ import net.fabricmc.loom.util.ZipReprocessorUtil; public class RemapSourcesJarTask extends AbstractLoomTask { private Object input; private Object output; + private String from = "named"; private String direction = "intermediary"; private SourceRemapper sourceRemapper = null; private final Property archivePreserveFileTimestamps; @@ -54,7 +55,13 @@ public class RemapSourcesJarTask extends AbstractLoomTask { @TaskAction public void remap() throws Exception { if (sourceRemapper == null) { - SourceRemapper.remapSources(getProject(), getInput(), getOutput(), direction.equals("named")); + if (from.equals(direction)) { + SourceRemapper.remapSources(getProject(), getInput(), getOutput(), + direction.equals("named") ? SourceRemapper.intermediary(getProject()) : "named", direction); + } else { + SourceRemapper.remapSources(getProject(), getInput(), getOutput(), from, direction); + } + ZipReprocessorUtil.reprocessZip(getOutput(), archivePreserveFileTimestamps.getOrElse(true), archiveReproducibleFileOrder.getOrElse(false)); } else { sourceRemapper.scheduleRemapSources(getInput(), getOutput(), archivePreserveFileTimestamps.getOrElse(true), archiveReproducibleFileOrder.getOrElse(false)); @@ -81,6 +88,11 @@ public class RemapSourcesJarTask extends AbstractLoomTask { return getProject().file(output == null ? input : output); } + @Input + public String getSourceNamespace() { + return from; + } + @Input public String getTargetNamespace() { return direction; @@ -94,6 +106,10 @@ public class RemapSourcesJarTask extends AbstractLoomTask { this.output = output; } + public void setSourceNamespace(String value) { + this.from = value; + } + public void setTargetNamespace(String value) { this.direction = value; } diff --git a/src/main/java/net/fabricmc/loom/util/SourceRemapper.java b/src/main/java/net/fabricmc/loom/util/SourceRemapper.java index 0acc4693..c7217f12 100644 --- a/src/main/java/net/fabricmc/loom/util/SourceRemapper.java +++ b/src/main/java/net/fabricmc/loom/util/SourceRemapper.java @@ -52,18 +52,29 @@ import net.fabricmc.stitch.util.StitchUtil; public class SourceRemapper { private final Project project; - private final boolean toNamed; + private String from; + private String to; private final List> remapTasks = new ArrayList<>(); private Mercury mercury; - public SourceRemapper(Project project, boolean toNamed) { - this.project = project; - this.toNamed = toNamed; + public SourceRemapper(Project project, boolean named) { + this(project, named ? intermediary(project) : "named", !named ? intermediary(project) : "named"); } - public static void remapSources(Project project, File input, File output, boolean named) throws Exception { - SourceRemapper sourceRemapper = new SourceRemapper(project, named); + public static String intermediary(Project project) { + LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class); + return extension.isForge() ? "srg" : "intermediary"; + } + + public SourceRemapper(Project project, String from, String to) { + this.project = project; + this.from = from; + this.to = to; + } + + public static void remapSources(Project project, File input, File output, String from, String to) throws Exception { + SourceRemapper sourceRemapper = new SourceRemapper(project, from, to); sourceRemapper.scheduleRemapSources(input, output, false, true); sourceRemapper.remapAll(); } @@ -109,7 +120,7 @@ public class SourceRemapper { } private void remapSourcesInner(File source, File destination) throws Exception { - project.getLogger().info(":remapping source jar"); + project.getLogger().info(":remapping source jar " + source.getName() + " from " + from + " to " + to); Mercury mercury = getMercuryInstance(); if (source.equals(destination)) { @@ -170,19 +181,27 @@ public class SourceRemapper { LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class); MappingsProvider mappingsProvider = extension.getMappingsProvider(); - MappingSet mappings = extension.getOrCreateSrcMappingCache(toNamed ? 1 : 0, () -> { + String intermediary = extension.isForge() ? "srg" : "intermediary"; + int id = -1; + + if (from.equals(intermediary) && to.equals("named")) { + id = 1; + } else if (to.equals(intermediary) && from.equals("named")) { + id = 0; + } + + MappingSet mappings = extension.getOrCreateSrcMappingCache(id, () -> { try { - String intermediary = extension.isForge() ? "srg" : "intermediary"; - TinyTree m = extension.isForge() ? mappingsProvider.getMappingsWithSrg() : mappingsProvider.getMappings(); - project.getLogger().info(":loading " + (toNamed ? intermediary + " -> named" : "named -> " + intermediary) + " source mappings"); - return new TinyMappingsReader(m, toNamed ? intermediary : "named", toNamed ? "named" : intermediary).read(); + TinyTree m = extension.shouldGenerateSrgTiny() ? mappingsProvider.getMappingsWithSrg() : mappingsProvider.getMappings(); + project.getLogger().info(":loading " + from + " -> " + to + " source mappings"); + return new TinyMappingsReader(m, from, to).read(); } catch (Exception e) { throw new RuntimeException(e); } }); - Mercury mercury = extension.getOrCreateSrcMercuryCache(toNamed ? 1 : 0, () -> { - Mercury m = createMercuryWithClassPath(project, toNamed); + Mercury mercury = extension.getOrCreateSrcMercuryCache(id, () -> { + Mercury m = createMercuryWithClassPath(project, to.equals("named")); for (File file : extension.getUnmappedModCollection()) { Path path = file.toPath(); From 61f724c76ee9ed53d610eeab72b570c946f2668b Mon Sep 17 00:00:00 2001 From: shedaniel Date: Tue, 13 Apr 2021 16:12:02 +0800 Subject: [PATCH 5/5] Fix RemapSourcesJarTask defaulting to intermediary --- src/main/java/net/fabricmc/loom/task/RemapSourcesJarTask.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/fabricmc/loom/task/RemapSourcesJarTask.java b/src/main/java/net/fabricmc/loom/task/RemapSourcesJarTask.java index 3844472e..a126bb30 100644 --- a/src/main/java/net/fabricmc/loom/task/RemapSourcesJarTask.java +++ b/src/main/java/net/fabricmc/loom/task/RemapSourcesJarTask.java @@ -41,7 +41,7 @@ public class RemapSourcesJarTask extends AbstractLoomTask { private Object input; private Object output; private String from = "named"; - private String direction = "intermediary"; + private String direction; private SourceRemapper sourceRemapper = null; private final Property archivePreserveFileTimestamps; private final Property archiveReproducibleFileOrder; @@ -50,6 +50,7 @@ public class RemapSourcesJarTask extends AbstractLoomTask { ObjectFactory objectFactory = getProject().getObjects(); archivePreserveFileTimestamps = objectFactory.property(Boolean.class); archiveReproducibleFileOrder = objectFactory.property(Boolean.class); + this.direction = SourceRemapper.intermediary(getProject()); } @TaskAction