aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/fabricmc/loom/configuration/mods
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-09-19 21:04:49 +0800
committershedaniel <daniel@shedaniel.me>2021-09-19 21:04:49 +0800
commit1c8554a94775851c984d681a16372ba6fa2009e8 (patch)
tree0c42e390b40c0714cb7726bce2492c198f56d072 /src/main/java/net/fabricmc/loom/configuration/mods
parent770597a5886c29784728c34122c2c0c1ae84ab81 (diff)
downloadarchitectury-loom-1c8554a94775851c984d681a16372ba6fa2009e8.tar.gz
architectury-loom-1c8554a94775851c984d681a16372ba6fa2009e8.tar.bz2
architectury-loom-1c8554a94775851c984d681a16372ba6fa2009e8.zip
Close #12
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'src/main/java/net/fabricmc/loom/configuration/mods')
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/mods/forge/ForgeLocalMod.java41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/main/java/net/fabricmc/loom/configuration/mods/forge/ForgeLocalMod.java b/src/main/java/net/fabricmc/loom/configuration/mods/forge/ForgeLocalMod.java
new file mode 100644
index 00000000..ce5ff0e1
--- /dev/null
+++ b/src/main/java/net/fabricmc/loom/configuration/mods/forge/ForgeLocalMod.java
@@ -0,0 +1,41 @@
+package net.fabricmc.loom.configuration.mods.forge;
+
+import java.util.List;
+import java.util.function.Supplier;
+import java.util.stream.Stream;
+
+import org.gradle.api.Named;
+import org.gradle.api.Project;
+import org.gradle.api.plugins.JavaPluginConvention;
+import org.gradle.api.tasks.SourceSet;
+
+public class ForgeLocalMod implements Named {
+ private final Project project;
+ private final String name;
+ private final List<Supplier<SourceSet>> sourceSets;
+
+ public ForgeLocalMod(Project project, String name, List<Supplier<SourceSet>> sourceSets) {
+ this.project = project;
+ this.name = name;
+ this.sourceSets = sourceSets;
+ }
+
+ public void add(Object... sourceSets) {
+ for (Object sourceSet : sourceSets) {
+ if (sourceSet instanceof SourceSet) {
+ this.sourceSets.add(() -> (SourceSet) sourceSet);
+ } else {
+ this.sourceSets.add(() -> project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets().findByName(String.valueOf(sourceSet)));
+ }
+ }
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ public Stream<SourceSet> getSourceSets() {
+ return sourceSets.stream().map(Supplier::get);
+ }
+} \ No newline at end of file