From dbbc3457d5630661611e7cf4c42dc3f7b0e75e99 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Fri, 8 Jul 2022 20:28:52 +0100 Subject: [PATCH] Ensure all mercury classpath entries exist. Fixes a migrateMappings crash in some multi-project setups. --- .../net/fabricmc/loom/util/SourceRemapper.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/util/SourceRemapper.java b/src/main/java/net/fabricmc/loom/util/SourceRemapper.java index 3f4f3c51..7ef9e10a 100644 --- a/src/main/java/net/fabricmc/loom/util/SourceRemapper.java +++ b/src/main/java/net/fabricmc/loom/util/SourceRemapper.java @@ -227,22 +227,30 @@ public class SourceRemapper { m.setGracefulClasspathChecks(true); m.setSourceCompatibility(Constants.MERCURY_SOURCE_VERSION); + final List classPath = new ArrayList<>(); + for (File file : project.getConfigurations().getByName(Constants.Configurations.LOADER_DEPENDENCIES).getFiles()) { - m.getClassPath().add(file.toPath()); + classPath.add(file.toPath()); } if (!toNamed) { for (File file : project.getConfigurations().getByName("compileClasspath").getFiles()) { - m.getClassPath().add(file.toPath()); + classPath.add(file.toPath()); } } else { for (RemappedConfigurationEntry entry : Constants.MOD_COMPILE_ENTRIES) { for (File inputFile : project.getConfigurations().getByName(entry.sourceConfiguration()).getFiles()) { - m.getClassPath().add(inputFile.toPath()); + classPath.add(inputFile.toPath()); } } } + for (Path path : classPath) { + if (Files.exists(path)) { + m.getClassPath().add(path); + } + } + return m; }