diff --git a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java index d9fe4b8e..d1686574 100644 --- a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java +++ b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java @@ -57,6 +57,7 @@ import net.fabricmc.loom.configuration.providers.minecraft.mapped.NamedMinecraft import net.fabricmc.loom.configuration.providers.minecraft.mapped.SrgMinecraftProvider; import net.fabricmc.loom.extension.LoomFiles; import net.fabricmc.loom.extension.MixinExtension; +import net.fabricmc.loom.util.ModPlatform; public interface LoomGradleExtension extends LoomGradleExtensionAPI { static LoomGradleExtension get(Project project) { @@ -117,7 +118,10 @@ public interface LoomGradleExtension extends LoomGradleExtensionAPI { case NAMED -> getNamedMinecraftProvider().getMinecraftJars(); case INTERMEDIARY -> getIntermediaryMinecraftProvider().getMinecraftJars(); case OFFICIAL -> getMinecraftProvider().getMinecraftJars(); - case SRG -> getSrgMinecraftProvider().getMinecraftJars(); + case SRG -> { + ModPlatform.assertPlatform(this, ModPlatform.FORGE, () -> "SRG jars are only available on Forge."); + yield getSrgMinecraftProvider().getMinecraftJars(); + } }; } diff --git a/src/main/java/net/fabricmc/loom/task/MigrateMappingsTask.java b/src/main/java/net/fabricmc/loom/task/MigrateMappingsTask.java index 1866a83e..53cb545a 100644 --- a/src/main/java/net/fabricmc/loom/task/MigrateMappingsTask.java +++ b/src/main/java/net/fabricmc/loom/task/MigrateMappingsTask.java @@ -181,8 +181,10 @@ public class MigrateMappingsTask extends AbstractLoomTask { mercury.getClassPath().add(intermediaryJar); } - for (Path srgJar : extension.getMinecraftJars(MappingsNamespace.SRG)) { - mercury.getClassPath().add(srgJar); + if (extension.isForge()) { + for (Path srgJar : extension.getMinecraftJars(MappingsNamespace.SRG)) { + mercury.getClassPath().add(srgJar); + } } mercury.getProcessors().add(MercuryRemapper.create(mappingSet)); diff --git a/src/main/java/net/fabricmc/loom/util/ModPlatform.java b/src/main/java/net/fabricmc/loom/util/ModPlatform.java index 0f7ce897..d1112d09 100644 --- a/src/main/java/net/fabricmc/loom/util/ModPlatform.java +++ b/src/main/java/net/fabricmc/loom/util/ModPlatform.java @@ -1,7 +1,7 @@ /* * This file is part of fabric-loom, licensed under the MIT License (MIT). * - * Copyright (c) 2021 FabricMC + * Copyright (c) 2021-2022 FabricMC * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -25,6 +25,7 @@ package net.fabricmc.loom.util; import java.util.Locale; +import java.util.function.Supplier; import org.gradle.api.GradleException; import org.gradle.api.Project; @@ -41,10 +42,16 @@ public enum ModPlatform { } public static void assertPlatform(LoomGradleExtensionAPI extension, ModPlatform platform) { - if (extension.getPlatform().get() != platform) { + assertPlatform(extension, platform, () -> { String msg = "Loom is not running on %s.%nYou can switch to it by adding 'loom.platform = %s' to your gradle.properties"; String name = platform.name().toLowerCase(Locale.ROOT); - throw new GradleException(String.format(msg, name, name)); + return msg.formatted(name, name); + }); + } + + public static void assertPlatform(LoomGradleExtensionAPI extension, ModPlatform platform, Supplier message) { + if (extension.getPlatform().get() != platform) { + throw new GradleException(message.get()); } } }