From 63fa38ba142ae6b4e116f8a224a69ec64827dcc8 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.21.3 --- .../net/minecraftforge/fml/loading/RuntimeDistCleaner.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 4c79863057..1380fc9d44 100644 --- a/fmlloader/src/main/java/net/minecraftforge/fml/loading/RuntimeDistCleaner.java +++ b/fmlloader/src/main/java/net/minecraftforge/fml/loading/RuntimeDistCleaner.java @@ -27,7 +27,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; @@ -210,6 +210,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; }