Skip to content

Commit

Permalink
Fix SRG being used on NeoForge
Browse files Browse the repository at this point in the history
  • Loading branch information
Juuxel committed Nov 1, 2023
1 parent 7aa190e commit f621913
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 8 deletions.
13 changes: 10 additions & 3 deletions src/main/java/net/fabricmc/loom/build/IntermediaryNamespaces.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ private void remapJars(List<ModDependency> remapList) throws IOException {

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);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -221,8 +221,9 @@ private static void remapForgeSourcesInner(Project project, SharedServiceManager
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<Path> newClassPath = mercury.getClassPath().stream()
.distinct()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,10 +192,14 @@ private static void migrateMappings(Project project, LoomGradleExtension extensi
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));
Expand Down
6 changes: 5 additions & 1 deletion src/main/java/net/fabricmc/loom/util/SourceRemapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -199,10 +199,14 @@ private Mercury getMercuryInstance() {
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<File> files = project.getConfigurations()
Expand Down

0 comments on commit f621913

Please sign in to comment.