From b5ae80e892afe7a826a7477a86d38eb713bc73ed Mon Sep 17 00:00:00 2001 From: Jab125 <67534807+Jab125@users.noreply.github.com> Date: Tue, 23 Apr 2024 17:22:56 +1000 Subject: [PATCH] Fix mapping issues --- .../providers/forge/MinecraftPatchedProvider.java | 10 +++++++--- .../providers/minecraft/MergedMinecraftProvider.java | 1 + .../providers/minecraft/SplitMinecraftProvider.java | 1 + .../mapped/AbstractMappedMinecraftProvider.java | 1 + .../mapped/IntermediaryMinecraftProvider.java | 1 + .../net/fabricmc/loom/util/TinyRemapperHelper.java | 2 +- 6 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java index a058d3197..e90c7469a 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java @@ -232,8 +232,8 @@ private TinyRemapper buildRemapper(SharedServiceManager serviceManager, Path inp MemoryMappingTree mappings = mappingsService.getMappingTree(); TinyRemapper remapper = TinyRemapper.newRemapper() - .withMappings(TinyRemapperHelper.create(mappings, sourceNamespace, "official", true)) - .withMappings(InnerClassRemapper.of(InnerClassRemapper.readClassNames(input), mappings, sourceNamespace, "official")) + .withMappings(TinyRemapperHelper.create(mappings, sourceNamespace, hasIntermediary() ? "official" : sourceNamespace, true)) + .withMappings(InnerClassRemapper.of(InnerClassRemapper.readClassNames(input), mappings, sourceNamespace, hasIntermediary() ? "official" : sourceNamespace)) .renameInvalidLocals(true) .rebuildSourceFilenames(true) .build(); @@ -403,7 +403,7 @@ public static void accessTransform(Project project, Path input, Path target) thr } private void remapPatchedJar(SharedServiceManager serviceManager) throws Exception { - logger.lifecycle(":remapping minecraft (TinyRemapper, srg -> official)"); + logger.lifecycle(":remapping minecraft (TinyRemapper," + (getExtension().isNeoForge() ? "mojang -> mojang)" : " srg -> official)")); Path mcInput = minecraftPatchedIntermediateAtJar; Path mcOutput = minecraftPatchedJar; Path forgeJar = getForgeJar().toPath(); @@ -572,6 +572,10 @@ public void applyLoomPatchVersion(Path target) throws IOException { } } + public boolean hasIntermediary() { + return !getExtension().isNeoForge(); + } + public McpExecutor createMcpExecutor(Path cache) { McpConfigProvider provider = getExtension().getMcpConfigProvider(); return new McpExecutor(project, minecraftProvider, cache, provider, type.mcpId); diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MergedMinecraftProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MergedMinecraftProvider.java index bb67fe6e4..d23f083be 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MergedMinecraftProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MergedMinecraftProvider.java @@ -62,6 +62,7 @@ public List getMinecraftJars() { @Override public MappingsNamespace getOfficialNamespace() { + if (getExtension().isNeoForge()) return MappingsNamespace.MOJANG; return MappingsNamespace.OFFICIAL; } diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/SplitMinecraftProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/SplitMinecraftProvider.java index d2190142d..5adce7ea4 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/SplitMinecraftProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/SplitMinecraftProvider.java @@ -55,6 +55,7 @@ public List getMinecraftJars() { @Override public MappingsNamespace getOfficialNamespace() { + if (getExtension().isNeoForge()) return MappingsNamespace.MOJANG; return MappingsNamespace.OFFICIAL; } diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/AbstractMappedMinecraftProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/AbstractMappedMinecraftProvider.java index d860fb3c5..c5e9d1495 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/AbstractMappedMinecraftProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/AbstractMappedMinecraftProvider.java @@ -226,6 +226,7 @@ private void remapJar(RemappedJars remappedJars, ConfigContext configContext) th } catch (Exception e) { throw new RuntimeException("Failed to remap JAR " + remappedJars.inputJar() + " with mappings from " + mappingConfiguration.tinyMappings, e); } finally { + project.getLogger().lifecycle(":remapping minecraft (TinyRemapper, " + fromM + " -> " + toM + ")"); remapper.finish(); } diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/IntermediaryMinecraftProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/IntermediaryMinecraftProvider.java index 70a1424ea..e54b4d88c 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/IntermediaryMinecraftProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/IntermediaryMinecraftProvider.java @@ -45,6 +45,7 @@ public IntermediaryMinecraftProvider(Project project, M minecraftProvider) { @Override public final MappingsNamespace getTargetNamespace() { + if (extension.isNeoForge()) return MappingsNamespace.MOJANG; return MappingsNamespace.INTERMEDIARY; } diff --git a/src/main/java/net/fabricmc/loom/util/TinyRemapperHelper.java b/src/main/java/net/fabricmc/loom/util/TinyRemapperHelper.java index f182b46b2..3be3993df 100644 --- a/src/main/java/net/fabricmc/loom/util/TinyRemapperHelper.java +++ b/src/main/java/net/fabricmc/loom/util/TinyRemapperHelper.java @@ -74,7 +74,7 @@ public static TinyRemapper getTinyRemapper(Project project, SharedServiceManager MemoryMappingTree mappingTree = extension.getMappingConfiguration().getMappingsService(serviceManager, mappingOption).getMappingTree(); if (fixRecords && !mappingTree.getSrcNamespace().equals(fromM)) { - throw new IllegalStateException("Mappings src namespace must match remap src namespace, expected " + fromM + " but got " + mappingTree.getSrcNamespace()); + project.getLogger().warn("Mappings src namespace must match remap src namespace, expected " + fromM + " but got " + mappingTree.getSrcNamespace()); } int intermediaryNsId = mappingTree.getNamespaceId(MappingsNamespace.INTERMEDIARY.toString());