From 02bbab1f90abb76a1c658416f2de22ac6a5bd996 Mon Sep 17 00:00:00 2001 From: Paint_Ninja Date: Tue, 17 Mar 2026 20:43:17 +0000 Subject: [PATCH] Skip processing vanilla classes in RuntimeDistCleaner when running on a client Backport of #10682 to 1.20.4 --- .../net/minecraftforge/fml/loading/RuntimeDistCleaner.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/fmlloader/src/main/java/net/minecraftforge/fml/loading/RuntimeDistCleaner.java b/fmlloader/src/main/java/net/minecraftforge/fml/loading/RuntimeDistCleaner.java index 37a477b39b..81723174af 100644 --- a/fmlloader/src/main/java/net/minecraftforge/fml/loading/RuntimeDistCleaner.java +++ b/fmlloader/src/main/java/net/minecraftforge/fml/loading/RuntimeDistCleaner.java @@ -34,8 +34,7 @@ import org.slf4j.Logger; import org.slf4j.Marker; import org.slf4j.MarkerFactory; -public class RuntimeDistCleaner implements ILaunchPluginService -{ +public final class RuntimeDistCleaner implements ILaunchPluginService { private static final Logger LOGGER = LogUtils.getLogger(); private static final Marker DISTXFORM = MarkerFactory.getMarker("DISTXFORM"); private static String DIST; @@ -177,6 +176,10 @@ public class RuntimeDistCleaner implements ILaunchPluginService if (internalName.startsWith("net/minecraftforge/")) return NAY; + // No Vanilla classes use @OnlyIn(Dist.SERVER), so we can skip them entirely when we're running on a client + if (FMLEnvironment.dist.isClient() && (internalName.startsWith("net/minecraft/") || internalName.startsWith("com/mojang/"))) + return NAY; + return YAY; }