From c4240eff16955a1427e6b2e34eed99769798ca72 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Tue, 26 Jul 2022 12:47:00 +0100 Subject: [PATCH] Ensure that deps with injected ifaces are on both the compile and runtime classpath. (#689) --- .../ifaceinject/InterfaceInjectionProcessor.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/configuration/ifaceinject/InterfaceInjectionProcessor.java b/src/main/java/net/fabricmc/loom/configuration/ifaceinject/InterfaceInjectionProcessor.java index b29002fe..f24ce796 100644 --- a/src/main/java/net/fabricmc/loom/configuration/ifaceinject/InterfaceInjectionProcessor.java +++ b/src/main/java/net/fabricmc/loom/configuration/ifaceinject/InterfaceInjectionProcessor.java @@ -183,8 +183,9 @@ public class InterfaceInjectionProcessor implements JarProcessor, GenerateSource List result = new ArrayList<>(); for (RemappedConfigurationEntry entry : Constants.MOD_COMPILE_ENTRIES) { - // Only apply injected interfaces from mods that are part of the compile classpath - if (!entry.compileClasspath()) { + // Only apply injected interfaces from mods that are part of the compile and runtime classpath. + // Runtime is also required to ensure that the interface and it's impl is present when running the mc jar. + if (!(entry.compileClasspath() && entry.runtimeClasspath())) { continue; }