diff --git a/src/main/java/net/fabricmc/loom/build/IntermediaryNamespaces.java b/src/main/java/net/fabricmc/loom/build/IntermediaryNamespaces.java index bd2a92fa..0861fcf2 100644 --- a/src/main/java/net/fabricmc/loom/build/IntermediaryNamespaces.java +++ b/src/main/java/net/fabricmc/loom/build/IntermediaryNamespaces.java @@ -34,11 +34,18 @@ public final class IntermediaryNamespaces { * Returns the intermediary namespace of the project. */ public static String intermediary(Project project) { + return intermediaryNamespace(project).toString(); + } + + /** + * Returns the intermediary namespace of the project. + */ + public static MappingsNamespace intermediaryNamespace(Project project) { LoomGradleExtension extension = LoomGradleExtension.get(project); return switch (extension.getPlatform().get()) { - case FABRIC, QUILT -> MappingsNamespace.INTERMEDIARY.toString(); - case FORGE -> MappingsNamespace.SRG.toString(); - case NEOFORGE -> MappingsNamespace.MOJANG.toString(); + case FABRIC, QUILT -> MappingsNamespace.INTERMEDIARY; + case FORGE -> MappingsNamespace.SRG; + case NEOFORGE -> MappingsNamespace.MOJANG; }; } diff --git a/src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java b/src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java index 5ea705e9..e0ebf1f3 100644 --- a/src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java +++ b/src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java @@ -200,7 +200,7 @@ public class ModProcessor { final TinyRemapper remapper = builder.build(); - for (Path minecraftJar : extension.getMinecraftJars(extension.isForgeLike() ? MappingsNamespace.SRG : MappingsNamespace.INTERMEDIARY)) { + for (Path minecraftJar : extension.getMinecraftJars(IntermediaryNamespaces.intermediaryNamespace(project))) { remapper.readClassPathAsync(minecraftJar); } diff --git a/src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java b/src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java index 853320ae..2715a635 100644 --- a/src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java +++ b/src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java @@ -221,8 +221,9 @@ public class ForgeSourcesRemapper { mercury.getClassPath().add(file.toPath()); } - // Distinct and add the srg jar at the top, so it gets prioritized - mercury.getClassPath().addAll(0, extension.getMinecraftJars(MappingsNamespace.SRG)); + // Distinct and add the srg/mojang jar at the top, so it gets prioritized + MappingsNamespace sourceNs = extension.isNeoForge() ? MappingsNamespace.MOJANG : MappingsNamespace.SRG; + mercury.getClassPath().addAll(0, extension.getMinecraftJars(sourceNs)); List newClassPath = mercury.getClassPath().stream() .distinct() diff --git a/src/main/java/net/fabricmc/loom/task/MigrateMappingsTask.java b/src/main/java/net/fabricmc/loom/task/MigrateMappingsTask.java index a94b1a04..488b6d73 100644 --- a/src/main/java/net/fabricmc/loom/task/MigrateMappingsTask.java +++ b/src/main/java/net/fabricmc/loom/task/MigrateMappingsTask.java @@ -192,10 +192,14 @@ public abstract class MigrateMappingsTask extends AbstractLoomTask { mercury.getClassPath().add(intermediaryJar); } - if (extension.isForgeLike()) { + if (extension.isForge()) { for (Path srgJar : extension.getMinecraftJars(MappingsNamespace.SRG)) { mercury.getClassPath().add(srgJar); } + } else if (extension.isNeoForge()) { + for (Path mojangJar : extension.getMinecraftJars(MappingsNamespace.MOJANG)) { + mercury.getClassPath().add(mojangJar); + } } mercury.getProcessors().add(MercuryRemapper.create(mappingSet)); diff --git a/src/main/java/net/fabricmc/loom/util/SourceRemapper.java b/src/main/java/net/fabricmc/loom/util/SourceRemapper.java index 001516da..53ad034e 100644 --- a/src/main/java/net/fabricmc/loom/util/SourceRemapper.java +++ b/src/main/java/net/fabricmc/loom/util/SourceRemapper.java @@ -199,10 +199,14 @@ public class SourceRemapper { mercury.getClassPath().add(intermediaryJar); } - if (extension.isForgeLike()) { + if (extension.isForge()) { for (Path srgJar : extension.getMinecraftJars(MappingsNamespace.SRG)) { mercury.getClassPath().add(srgJar); } + } else if (extension.isNeoForge()) { + for (Path mojangJar : extension.getMinecraftJars(MappingsNamespace.MOJANG)) { + mercury.getClassPath().add(mojangJar); + } } Set files = project.getConfigurations()