aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java17
1 files changed, 17 insertions, 0 deletions
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 6456f882..335c6fba 100644
--- a/src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java
+++ b/src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java
@@ -109,11 +109,28 @@ public class ForgeSourcesRemapper {
}
}
+ LoomGradleExtension extension = LoomGradleExtension.get(project);
+ Path legacySourcesZip = null;
+
+ if (extension.isLegacyForge()) {
+ Path userdevJar = extension.getForgeUserdevProvider().getUserdevJar().toPath();
+ byte[] sourcesZip = ZipUtils.unpack(userdevJar, "sources.zip");
+
+ legacySourcesZip = Files.createTempFile("sources", ".zip");
+ legacySourcesZip.toFile().deleteOnExit();
+ Files.write(legacySourcesZip, sourcesZip, StandardOpenOption.TRUNCATE_EXISTING);
+ forgeInstallerSources.add(legacySourcesZip);
+ }
+
project.getLogger().lifecycle(":found {} forge source jars", forgeInstallerSources.size());
Map<String, byte[]> forgeSources = extractSources(forgeInstallerSources);
project.getLogger().lifecycle(":extracted {} forge source classes", forgeSources.size());
remapSources(project, forgeSources);
forgeSources.forEach(consumer);
+
+ if (legacySourcesZip != null) {
+ Files.delete(legacySourcesZip);
+ }
}
private static void remapSources(Project project, Map<String, byte[]> sources) throws IOException {