diff --git a/src/main/java/net/fabricmc/loom/task/launch/GenerateDLIConfigTask.java b/src/main/java/net/fabricmc/loom/task/launch/GenerateDLIConfigTask.java index 0edf757c..895ae27e 100644 --- a/src/main/java/net/fabricmc/loom/task/launch/GenerateDLIConfigTask.java +++ b/src/main/java/net/fabricmc/loom/task/launch/GenerateDLIConfigTask.java @@ -44,6 +44,7 @@ import net.fabricmc.loom.configuration.launch.LaunchProviderSettings; import net.fabricmc.loom.configuration.providers.minecraft.MinecraftVersionMeta; import net.fabricmc.loom.configuration.providers.minecraft.mapped.MappedMinecraftProvider; import net.fabricmc.loom.task.AbstractLoomTask; +import net.fabricmc.loom.util.Constants; import net.fabricmc.loom.util.PropertyUtil; import net.fabricmc.loom.util.gradle.SourceSetHelper; @@ -95,9 +96,19 @@ public abstract class GenerateDLIConfigTask extends AbstractLoomTask { } if (getExtension().isForge()) { + // Find the mapping files for Unprotect to use for figuring out + // which classes are from Minecraft. + String unprotectMappings = getProject().getConfigurations() + .getByName(Constants.Configurations.MAPPINGS_FINAL) + .resolve() + .stream() + .map(File::getAbsolutePath) + .collect(Collectors.joining(File.pathSeparator)); + launchConfig // Should match YarnNamingService.PATH_TO_MAPPINGS in forge-runtime .property("fabric.yarnWithSrg.path", getExtension().getMappingsProvider().tinyMappingsWithSrg.toAbsolutePath().toString()) + .property("unprotect.mappings", unprotectMappings) .argument("data", "--all") .argument("data", "--mod") diff --git a/src/main/java/net/fabricmc/loom/util/Constants.java b/src/main/java/net/fabricmc/loom/util/Constants.java index 37917bb7..7b69784f 100644 --- a/src/main/java/net/fabricmc/loom/util/Constants.java +++ b/src/main/java/net/fabricmc/loom/util/Constants.java @@ -148,7 +148,7 @@ public class Constants { public static final String FORGE_RUNTIME = "1.1.3"; public static final String ACCESS_TRANSFORMERS = "3.0.1"; public static final String ACCESS_TRANSFORMERS_NEW = "8.0.5"; - public static final String UNPROTECT = "1.0.0"; + public static final String UNPROTECT = "1.2.0"; public static final String ASM = "9.3"; private Versions() {