diff options
| author | shedaniel <daniel@shedaniel.me> | 2020-12-30 15:58:41 +0800 | 
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2020-12-30 15:58:41 +0800 | 
| commit | 7a1bf321345e2084d89397189534ffb9dd0759b7 (patch) | |
| tree | 2771c2845d1b73de2898d1956b4605795658f4b9 /src | |
| parent | e507000686724469cf8473133dd61178924bd016 (diff) | |
| download | architectury-loom-7a1bf321345e2084d89397189534ffb9dd0759b7.tar.gz architectury-loom-7a1bf321345e2084d89397189534ffb9dd0759b7.tar.bz2 architectury-loom-7a1bf321345e2084d89397189534ffb9dd0759b7.zip | |
Allow specifying multiple mixin configs for forge
Diffstat (limited to 'src')
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 | 
