diff options
author | Jonas Herzig <jonas@spark-squared.com> | 2022-05-10 11:22:45 +0200 |
---|---|---|
committer | Jonas Herzig <jonas@spark-squared.com> | 2022-05-10 11:25:16 +0200 |
commit | bd1eb92b49b30e16b707c82ebccb01584069c693 (patch) | |
tree | acc87631331f4b90ccadc0c1b15d848c89d64832 /src/main/java/net/fabricmc | |
parent | f7b49161eae439908e8beae44344c04c7949ede9 (diff) | |
download | architectury-loom-bd1eb92b49b30e16b707c82ebccb01584069c693.tar.gz architectury-loom-bd1eb92b49b30e16b707c82ebccb01584069c693.tar.bz2 architectury-loom-bd1eb92b49b30e16b707c82ebccb01584069c693.zip |
Fix missing legacy forge sources
Forge has not published regular source artifacts for old versions, instead the
sources zip is bundled within the userdev jar.
Co-authored-by: DJtheRedstoner <52044242+DJtheRedstoner@users.noreply.github.com>
Diffstat (limited to 'src/main/java/net/fabricmc')
-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 5b523153..c393f997 100644 --- a/src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java +++ b/src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java @@ -105,11 +105,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 { |