From 64a77ee3cd5912e99d881d4a41c1bb049a267426 Mon Sep 17 00:00:00 2001 From: Juuxel <6596629+Juuxel@users.noreply.github.com> Date: Fri, 27 May 2022 14:01:44 +0300 Subject: [PATCH] Support ModSettings on Forge for MOD_CLASSES (untested) --- .../providers/forge/ForgeUserdevProvider.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/forge/ForgeUserdevProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/forge/ForgeUserdevProvider.java index 63def709..7adeaf2a 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/forge/ForgeUserdevProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/forge/ForgeUserdevProvider.java @@ -60,6 +60,7 @@ import org.gradle.api.provider.Provider; import net.fabricmc.loom.LoomGradlePlugin; import net.fabricmc.loom.api.ForgeLocalMod; +import net.fabricmc.loom.api.ModSettings; import net.fabricmc.loom.configuration.DependencyInfo; import net.fabricmc.loom.configuration.ide.RunConfigSettings; import net.fabricmc.loom.configuration.launch.LaunchProviderSettings; @@ -68,6 +69,7 @@ import net.fabricmc.loom.util.DependencyDownloader; import net.fabricmc.loom.util.FileSystemUtil; import net.fabricmc.loom.util.PropertyUtil; import net.fabricmc.loom.util.ZipUtils; +import net.fabricmc.loom.util.gradle.SourceSetHelper; public class ForgeUserdevProvider extends DependencyProvider { private File userdevJar; @@ -260,6 +262,15 @@ public class ForgeUserdevProvider extends DependencyProvider { } else if (key.equals("source_roots")) { List modClasses = new ArrayList<>(); + for (ModSettings mod : getExtension().getMods()) { + String name = mod.getName(); + SourceSetHelper.getClasspath(mod, getProject()).stream() + .map(File::getAbsolutePath) + .distinct() + .map(s -> name + "%%" + s) + .forEach(modClasses::add); + } + for (ForgeLocalMod localMod : getExtension().getForge().getLocalMods()) { String sourceSetName = localMod.getName();