aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-01-20 20:00:06 +0800
committershedaniel <daniel@shedaniel.me>2021-01-20 20:00:06 +0800
commitba3735c68e1681ad1164daf926f8104b912d6aba (patch)
treeb164d5e0549cef6a5b68734bb619e408e61b01e5 /src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java
parentc57b28e5b6034f2cfcb2c06e5e067ad91056e582 (diff)
downloadarchitectury-loom-ba3735c68e1681ad1164daf926f8104b912d6aba.tar.gz
architectury-loom-ba3735c68e1681ad1164daf926f8104b912d6aba.tar.bz2
architectury-loom-ba3735c68e1681ad1164daf926f8104b912d6aba.zip
Allow configuring additional local sourceSets.
Diffstat (limited to 'src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java')
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java b/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java
index 8553b18a..4b60be99 100644
--- a/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java
+++ b/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java
@@ -33,6 +33,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import java.util.UUID;
+import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
@@ -45,7 +47,6 @@ import com.google.gson.JsonObject;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.gradle.api.Project;
-import org.gradle.api.plugins.JavaPluginConvention;
import org.gradle.api.tasks.SourceSet;
import org.gradle.plugins.ide.eclipse.model.EclipseModel;
import org.w3c.dom.Document;
@@ -156,16 +157,20 @@ public class RunConfig {
}
if (extension.isForge()) {
- SourceSet main = project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets().getByName("main");
+ List<String> modClasses = new ArrayList<>();
- String modClasses = Stream.concat(
- Stream.of(main.getOutput().getResourcesDir().getAbsolutePath()),
- StreamSupport.stream(main.getOutput().getClassesDirs().spliterator(), false)
- .map(File::getAbsolutePath)
- ).map(s -> "loom%%" + s)
- .collect(Collectors.joining(File.pathSeparator));
+ for (Supplier<SourceSet> sourceSetSupplier : extension.forgeLocalMods) {
+ SourceSet sourceSet = sourceSetSupplier.get();
+ String sourceSetName = sourceSet.getName() + "_" + UUID.randomUUID().toString().replace("-", "").substring(0, 7);
- runConfig.envVariables.put("MOD_CLASSES", modClasses);
+ Stream.concat(
+ Stream.of(sourceSet.getOutput().getResourcesDir().getAbsolutePath()),
+ StreamSupport.stream(sourceSet.getOutput().getClassesDirs().spliterator(), false)
+ .map(File::getAbsolutePath)
+ ).map(s -> sourceSetName + "%%" + s).collect(Collectors.toCollection(() -> modClasses));
+ }
+
+ runConfig.envVariables.put("MOD_CLASSES", String.join(File.pathSeparator, modClasses));
}
if (extension.getLoaderLaunchMethod().equals("launchwrapper")) {