diff options
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java | 17 |
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 { |