From 8d96bc0b6f1dd3cd6696fd1afb82f23712a4466e Mon Sep 17 00:00:00 2001 From: shedaniel Date: Wed, 5 May 2021 02:34:03 +0800 Subject: Use "loom.platform" instead of "loom.forge" Signed-off-by: shedaniel --- .../net/fabricmc/loom/LoomGradleExtension.java | 32 +++++++++++++++++++--- .../java/net/fabricmc/loom/util/ModPlatform.java | 6 ++++ 2 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 src/main/java/net/fabricmc/loom/util/ModPlatform.java (limited to 'src/main/java/net/fabricmc') diff --git a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java index 967921f1..0fcdec86 100644 --- a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java +++ b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java @@ -31,6 +31,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Objects; import java.util.Set; import java.util.function.Consumer; @@ -68,10 +69,12 @@ import net.fabricmc.loom.configuration.providers.forge.SrgProvider; import net.fabricmc.loom.configuration.providers.mappings.MappingsProvider; import net.fabricmc.loom.configuration.providers.mappings.MojangMappingsDependency; import net.fabricmc.loom.configuration.providers.minecraft.MinecraftMappedProvider; +import net.fabricmc.loom.util.ModPlatform; import net.fabricmc.loom.util.function.LazyBool; public class LoomGradleExtension { private static final String FORGE_PROPERTY = "loom.forge"; + private static final String PLATFORM_PROPERTY = "loom.platform"; private static final String INCLUDE_PROPERTY = "loom.forge.include"; public String refmapName; @@ -100,11 +103,11 @@ public class LoomGradleExtension { private JsonObject installerJson; private MappingSet[] srcMappingCache = new MappingSet[2]; private Mercury[] srcMercuryCache = new Mercury[2]; - private final LazyBool forge; + private ModPlatform platform; private final LazyBool supportsInclude; private Set mixinMappings = Collections.synchronizedSet(new HashSet<>()); private final List tasksBeforeRun = Collections.synchronizedList(new ArrayList<>()); - public final List> forgeLocalMods = Collections.synchronizedList(new ArrayList<>(Arrays.asList(new Supplier() { + public final List> forgeLocalMods = Collections.synchronizedList(new ArrayList<>(Collections.singletonList(new Supplier() { @Override public SourceSet get() { return project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets().getByName("main"); @@ -218,7 +221,6 @@ public class LoomGradleExtension { public LoomGradleExtension(Project project) { this.project = project; this.unmappedMods = project.files(); - this.forge = new LazyBool(() -> Boolean.parseBoolean(Objects.toString(project.findProperty(FORGE_PROPERTY)))); this.supportsInclude = new LazyBool(() -> Boolean.parseBoolean(Objects.toString(project.findProperty(INCLUDE_PROPERTY)))); this.runConfigs = project.container(RunConfigSettings.class, baseName -> new RunConfigSettings(project, baseName)); @@ -471,8 +473,30 @@ public class LoomGradleExtension { return shareCaches; } + @ApiStatus.Experimental + public ModPlatform getPlatform() { + if (platform == null) { + Object platformProperty = project.findProperty(PLATFORM_PROPERTY); + + if (platformProperty != null) { + return platform = ModPlatform.valueOf(Objects.toString(platformProperty).toUpperCase(Locale.ROOT)); + } + + Object forgeProperty = project.findProperty(FORGE_PROPERTY); + + if (forgeProperty != null) { + project.getLogger().warn("Project " + project.getPath() + " is using property " + FORGE_PROPERTY + " to enable forge mode. Please use '" + PLATFORM_PROPERTY + " = forge' instead!"); + return platform = Boolean.parseBoolean(Objects.toString(forgeProperty)) ? ModPlatform.FORGE : ModPlatform.FABRIC; + } + + platform = ModPlatform.FABRIC; + } + + return platform; + } + public boolean isForge() { - return forge.getAsBoolean(); + return getPlatform() == ModPlatform.FORGE; } public boolean supportsInclude() { diff --git a/src/main/java/net/fabricmc/loom/util/ModPlatform.java b/src/main/java/net/fabricmc/loom/util/ModPlatform.java new file mode 100644 index 00000000..cd751cb7 --- /dev/null +++ b/src/main/java/net/fabricmc/loom/util/ModPlatform.java @@ -0,0 +1,6 @@ +package net.fabricmc.loom.util; + +public enum ModPlatform { + FABRIC, + FORGE, +} -- cgit