aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2020-12-30 15:58:41 +0800
committershedaniel <daniel@shedaniel.me>2020-12-30 15:58:41 +0800
commit7a1bf321345e2084d89397189534ffb9dd0759b7 (patch)
tree2771c2845d1b73de2898d1956b4605795658f4b9 /src
parente507000686724469cf8473133dd61178924bd016 (diff)
downloadarchitectury-loom-7a1bf321345e2084d89397189534ffb9dd0759b7.tar.gz
architectury-loom-7a1bf321345e2084d89397189534ffb9dd0759b7.tar.bz2
architectury-loom-7a1bf321345e2084d89397189534ffb9dd0759b7.zip
Allow specifying multiple mixin configs for forge
Diffstat (limited to 'src')
-rw-r--r--src/main/java/net/fabricmc/loom/AbstractPlugin.java50
-rw-r--r--src/main/java/net/fabricmc/loom/LoomGradleExtension.java1
-rw-r--r--src/main/java/net/fabricmc/loom/providers/LaunchProvider.java7
3 files changed, 25 insertions, 33 deletions
diff --git a/src/main/java/net/fabricmc/loom/AbstractPlugin.java b/src/main/java/net/fabricmc/loom/AbstractPlugin.java
index 5a76c6d5..e4410dfb 100644
--- a/src/main/java/net/fabricmc/loom/AbstractPlugin.java
+++ b/src/main/java/net/fabricmc/loom/AbstractPlugin.java
@@ -24,14 +24,17 @@
package net.fabricmc.loom;
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
-
import com.google.common.collect.ImmutableMap;
import groovy.util.Node;
+import net.fabricmc.loom.providers.*;
+import net.fabricmc.loom.task.AbstractLoomTask;
+import net.fabricmc.loom.task.RemapAllSourcesTask;
+import net.fabricmc.loom.task.RemapJarTask;
+import net.fabricmc.loom.task.RemapSourcesJarTask;
+import net.fabricmc.loom.util.*;
+import net.fabricmc.loom.util.mixin.JavaApInvoker;
+import net.fabricmc.loom.util.mixin.KaptApInvoker;
+import net.fabricmc.loom.util.mixin.ScalaApInvoker;
import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.api.Task;
@@ -52,32 +55,8 @@ import org.gradle.api.tasks.bundling.Jar;
import org.gradle.api.tasks.javadoc.Javadoc;
import org.gradle.plugins.ide.idea.model.IdeaModel;
-import net.fabricmc.loom.providers.ForgeProvider;
-import net.fabricmc.loom.providers.ForgeUniversalProvider;
-import net.fabricmc.loom.providers.ForgeUserdevProvider;
-import net.fabricmc.loom.providers.LaunchProvider;
-import net.fabricmc.loom.providers.MappingsCache;
-import net.fabricmc.loom.providers.MappingsProvider;
-import net.fabricmc.loom.providers.McpConfigProvider;
-import net.fabricmc.loom.providers.MinecraftProvider;
-import net.fabricmc.loom.providers.PatchProvider;
-import net.fabricmc.loom.task.AbstractLoomTask;
-import net.fabricmc.loom.task.RemapAllSourcesTask;
-import net.fabricmc.loom.task.RemapJarTask;
-import net.fabricmc.loom.task.RemapSourcesJarTask;
-import net.fabricmc.loom.util.Constants;
-import net.fabricmc.loom.util.DownloadUtil;
-import net.fabricmc.loom.util.FabricApiExtension;
-import net.fabricmc.loom.util.GroovyXmlUtil;
-import net.fabricmc.loom.util.JarRemapper;
-import net.fabricmc.loom.util.LoomDependencyManager;
-import net.fabricmc.loom.util.NestedJars;
-import net.fabricmc.loom.util.RemappedConfigurationEntry;
-import net.fabricmc.loom.util.SetupIntelijRunConfigs;
-import net.fabricmc.loom.util.SourceRemapper;
-import net.fabricmc.loom.util.mixin.JavaApInvoker;
-import net.fabricmc.loom.util.mixin.KaptApInvoker;
-import net.fabricmc.loom.util.mixin.ScalaApInvoker;
+import java.io.IOException;
+import java.util.*;
public class AbstractPlugin implements Plugin<Project> {
protected Project project;
@@ -295,9 +274,14 @@ public class AbstractPlugin implements Plugin<Project> {
if (extension.isForge()) {
remapJarTask.getToM().set("srg");
((Jar) jarTask).manifest(manifest -> {
+ List<String> configs = new ArrayList<>();
if (extension.mixinConfig != null) {
- manifest.attributes(ImmutableMap.of("MixinConfigs", extension.mixinConfig));
+ configs.add(extension.mixinConfig);
+ }
+ if (extension.mixinConfigs != null) {
+ configs.addAll(extension.mixinConfigs);
}
+ manifest.attributes(ImmutableMap.of("MixinConfigs", String.join(",", configs)));
});
}
diff --git a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java
index 0ea0dd8d..8aaa180b 100644
--- a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java
+++ b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java
@@ -77,6 +77,7 @@ public class LoomGradleExtension {
public Function<String, Object> intermediaryUrl = mcVer -> "https://maven.fabricmc.net/net/fabricmc/intermediary/" + mcVer + "/intermediary-" + mcVer + "-v2.jar";
public boolean shareCaches = false;
public String mixinConfig = null; // FORGE: Passed to Minecraft
+ public List<String> mixinConfigs = null; // FORGE: Passed to Minecraft
private final ConfigurableFileCollection unmappedMods;
diff --git a/src/main/java/net/fabricmc/loom/providers/LaunchProvider.java b/src/main/java/net/fabricmc/loom/providers/LaunchProvider.java
index 48fe2e50..855cc507 100644
--- a/src/main/java/net/fabricmc/loom/providers/LaunchProvider.java
+++ b/src/main/java/net/fabricmc/loom/providers/LaunchProvider.java
@@ -87,11 +87,18 @@ public class LaunchProvider extends DependencyProvider {
.property("net.minecraftforge.gradle.GradleStart.srg.srg-mcp", getExtension().getMappingsProvider().srgToNamedSrg.getAbsolutePath());
String mixinConfig = getExtension().mixinConfig;
+ List<String> mixinConfigs = getExtension().mixinConfigs;
if (mixinConfig != null) {
launchConfig.argument("-mixin.config");
launchConfig.argument(mixinConfig);
}
+ if (mixinConfigs != null) {
+ for (String config : mixinConfigs) {
+ launchConfig.argument("-mixin.config");
+ launchConfig.argument(config);
+ }
+ }
}
//Enable ansi by default for idea and vscode