From 9d19ab4c2e39f7fa42a6ff697d44c1334053d37b Mon Sep 17 00:00:00 2001 From: shedaniel Date: Sat, 8 May 2021 19:15:21 +0800 Subject: [PATCH] Small cleanup + Use MappingsUtils for reordering Signed-off-by: shedaniel --- build.gradle | 2 +- .../net/fabricmc/loom/LoomGradlePlugin.java | 2 +- .../providers/mappings/MappingsProvider.java | 19 +++++++++++-------- .../net/fabricmc/loom/task/LoomTasks.java | 2 +- .../loom/util/srg/SpecialSourceExecutor.java | 1 - 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/build.gradle b/build.gradle index 8583046a..1e1fcc65 100644 --- a/build.gradle +++ b/build.gradle @@ -77,7 +77,7 @@ dependencies { // tinyfile management implementation ('dev.architectury:tiny-remapper:1.0.0') - implementation ('dev.architectury:mappings-layers-core:1.1.3') + implementation ('dev.architectury:mappings-layers-core:1.1.6') implementation ('net.fabricmc:tiny-mappings-parser:0.3.0+build.17') implementation 'net.fabricmc:access-widener:1.0.0' diff --git a/src/main/java/net/fabricmc/loom/LoomGradlePlugin.java b/src/main/java/net/fabricmc/loom/LoomGradlePlugin.java index 38c619dc..2b9a88c0 100644 --- a/src/main/java/net/fabricmc/loom/LoomGradlePlugin.java +++ b/src/main/java/net/fabricmc/loom/LoomGradlePlugin.java @@ -57,7 +57,7 @@ public class LoomGradlePlugin implements Plugin { project.getLogger().lifecycle("Architectury Loom: " + loomVersion); } - refreshDeps = project.getGradle().getStartParameter().isRefreshDependencies(); + refreshDeps = project.getGradle().getStartParameter().isRefreshDependencies() || "true".equals(System.getProperty("loom.refresh")); if (refreshDeps) { MappingsCache.INSTANCE.invalidate(); diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProvider.java index 632515df..c1fd5f83 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProvider.java @@ -42,8 +42,11 @@ import java.util.List; import java.util.function.Consumer; import com.google.common.base.Preconditions; +import com.google.common.base.Stopwatch; import com.google.common.net.UrlEscapers; import com.google.gson.JsonObject; +import dev.architectury.mappingslayers.api.utils.MappingsModificationUtils; +import dev.architectury.mappingslayers.api.utils.MappingsUtils; import org.apache.commons.io.FileUtils; import org.apache.tools.ant.util.StringUtils; import org.gradle.api.Project; @@ -417,21 +420,21 @@ public class MappingsProvider extends DependencyProvider { extractMappings(unmergedYarnJarFs, unmergedYarn); } + Stopwatch stopwatch = Stopwatch.createStarted(); + project.getLogger().info(":merging mappings"); Path invertedIntermediary = Paths.get(mappingsStepsDir.toString(), "inverted-intermediary.tiny"); reorderMappings(getIntermediaryTiny(), invertedIntermediary, "intermediary", "official"); Path unorderedMergedMappings = Paths.get(mappingsStepsDir.toString(), "unordered-merged.tiny"); - project.getLogger().info(":merging"); mergeMappings(invertedIntermediary, unmergedYarn, unorderedMergedMappings); reorderMappings(unorderedMergedMappings, tinyMappings.toPath(), "official", "intermediary", "named"); + Files.deleteIfExists(invertedIntermediary); + Files.deleteIfExists(unorderedMergedMappings); + project.getLogger().info(":merged mappings in " + stopwatch.stop()); } - private void reorderMappings(Path oldMappings, Path newMappings, String... newOrder) { - Command command = new CommandReorderTinyV2(); - String[] args = new String[2 + newOrder.length]; - args[0] = oldMappings.toAbsolutePath().toString(); - args[1] = newMappings.toAbsolutePath().toString(); - System.arraycopy(newOrder, 0, args, 2, newOrder.length); - runCommand(command, args); + private void reorderMappings(Path oldMappings, Path newMappings, String... newOrder) throws IOException { + MappingsModificationUtils.modify(oldMappings, newMappings, tree -> + MappingsUtils.reorderNamespaces(tree, Arrays.asList(newOrder))); } private void mergeMappings(Path intermediaryMappings, Path yarnMappings, Path newMergedMappings) { diff --git a/src/main/java/net/fabricmc/loom/task/LoomTasks.java b/src/main/java/net/fabricmc/loom/task/LoomTasks.java index 12ebdc56..da7bf898 100644 --- a/src/main/java/net/fabricmc/loom/task/LoomTasks.java +++ b/src/main/java/net/fabricmc/loom/task/LoomTasks.java @@ -112,7 +112,7 @@ public final class LoomTasks { private static void registerLaunchSettings(Project project) { LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class); - Preconditions.checkArgument(extension.getRunConfigs().size() == 0, "Launch configurations must not be registered before loom"); + Preconditions.checkArgument(extension.getLaunchConfigs().size() == 0, "Launch configurations must not be registered before loom"); extension.getLaunchConfigs().create("client"); extension.getLaunchConfigs().create("server"); diff --git a/src/main/java/net/fabricmc/loom/util/srg/SpecialSourceExecutor.java b/src/main/java/net/fabricmc/loom/util/srg/SpecialSourceExecutor.java index 1da2266d..11fae1a0 100644 --- a/src/main/java/net/fabricmc/loom/util/srg/SpecialSourceExecutor.java +++ b/src/main/java/net/fabricmc/loom/util/srg/SpecialSourceExecutor.java @@ -40,7 +40,6 @@ import org.gradle.api.Project; import org.zeroturnaround.zip.ZipUtil; import net.fabricmc.loom.LoomGradleExtension; -import net.fabricmc.loom.configuration.providers.mappings.MappingsProvider; public class SpecialSourceExecutor { public static Path produceSrgJar(Project project, String side, File specialSourceJar, Path officialJar, Path srgPath)