Support ModSettings on Forge for MOD_CLASSES (untested)

This commit is contained in:
Juuxel
2022-05-27 14:01:44 +03:00
parent f8c2feeede
commit 64a77ee3cd

View File

@@ -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<String> 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();