From 364b67ea6abcd5ce3fbbedfa799c963e1467b21c Mon Sep 17 00:00:00 2001 From: Juuz <6596629+Juuxel@users.noreply.github.com> Date: Tue, 6 Sep 2022 22:59:34 +0300 Subject: [PATCH] Fix #97, use userdev source jar coordinates in ForgeSourcesRemapper --- .../configuration/sources/ForgeSourcesRemapper.java | 13 +++++-------- .../net/fabricmc/loom/task/GenerateSourcesTask.java | 6 ++++++ 2 files changed, 11 insertions(+), 8 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 f6346716..1c44d2e1 100644 --- a/src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java +++ b/src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java @@ -45,14 +45,13 @@ import org.cadixdev.lorenz.MappingSet; import org.cadixdev.mercury.Mercury; import org.cadixdev.mercury.remapper.MercuryRemapper; import org.gradle.api.Project; -import org.gradle.api.artifacts.ResolvedArtifact; import net.fabricmc.loom.LoomGradleExtension; import net.fabricmc.loom.api.mappings.layered.MappingsNamespace; -import net.fabricmc.loom.configuration.mods.ModConfigurationRemapper; import net.fabricmc.loom.task.GenerateSourcesTask; import net.fabricmc.loom.util.Constants; import net.fabricmc.loom.util.DeletingFileVisitor; +import net.fabricmc.loom.util.DependencyDownloader; import net.fabricmc.loom.util.FileSystemUtil; import net.fabricmc.loom.util.ForgeToolExecutor; import net.fabricmc.loom.util.SourceRemapper; @@ -108,14 +107,12 @@ public class ForgeSourcesRemapper { } public static void provideForgeSources(Project project, BiConsumer consumer) throws IOException { + LoomGradleExtension extension = LoomGradleExtension.get(project); + String sourceDependency = extension.getForgeUserdevProvider().getJson().getAsJsonPrimitive("sources").getAsString(); List forgeInstallerSources = new ArrayList<>(); - for (ResolvedArtifact artifact : project.getConfigurations().getByName(Constants.Configurations.FORGE_INSTALLER).getResolvedConfiguration().getResolvedArtifacts()) { - Path forgeInstallerSource = ModConfigurationRemapper.findSources(project, artifact); - - if (forgeInstallerSource != null) { - forgeInstallerSources.add(forgeInstallerSource); - } + for (File file : DependencyDownloader.download(project, sourceDependency)) { + forgeInstallerSources.add(file.toPath()); } project.getLogger().lifecycle(":found {} forge source jars", forgeInstallerSources.size()); diff --git a/src/main/java/net/fabricmc/loom/task/GenerateSourcesTask.java b/src/main/java/net/fabricmc/loom/task/GenerateSourcesTask.java index 50bd7a0a..385821b4 100644 --- a/src/main/java/net/fabricmc/loom/task/GenerateSourcesTask.java +++ b/src/main/java/net/fabricmc/loom/task/GenerateSourcesTask.java @@ -68,6 +68,7 @@ import net.fabricmc.loom.api.mappings.layered.MappingsNamespace; import net.fabricmc.loom.configuration.accesswidener.TransitiveAccessWidenerMappingsProcessor; import net.fabricmc.loom.configuration.ifaceinject.InterfaceInjectionProcessor; import net.fabricmc.loom.configuration.processors.ModJavadocProcessor; +import net.fabricmc.loom.configuration.sources.ForgeSourcesRemapper; import net.fabricmc.loom.decompilers.LineNumberRemapper; import net.fabricmc.loom.util.Constants; import net.fabricmc.loom.util.FileSystemUtil; @@ -147,6 +148,11 @@ public abstract class GenerateSourcesTask extends AbstractLoomTask { } finally { Files.deleteIfExists(ipcPath); } + + // Inject Forge's own sources + if (getExtension().isForge()) { + ForgeSourcesRemapper.addForgeSources(getProject(), getOutputJar().get().getAsFile().toPath()); + } } private void doWork(@Nullable IPCServer ipcServer) {