File tree Expand file tree Collapse file tree 2 files changed +28
-0
lines changed
forge/src/main/java/org/embeddedt/modernfix/forge Expand file tree Collapse file tree 2 files changed +28
-0
lines changed Original file line number Diff line number Diff line change 1+ package org .embeddedt .modernfix .forge .classloading ;
2+
3+ /**
4+ * Sometimes mods have classes that circularly reference each other. If each of these classes ends up being loaded
5+ * from two mods, a deadlock occurs.
6+ *
7+ * To avoid this problem we maintain a list of classes that should be loaded early and do it via Class.forName.
8+ */
9+ public class ClassLoadHack {
10+ private static final String [] classesToLoadEarly = new String [] {
11+ "team.creative.creativecore.common.config.ConfigTypeConveration" ,
12+ "team.creative.creativecore.common.util.ingredient.CreativeIngredient"
13+ };
14+
15+ public static void loadModClasses () {
16+ for (String clzName : classesToLoadEarly ) {
17+ try {
18+ Class .forName (clzName );
19+ } catch (Throwable e ) {
20+ if (!(e instanceof ClassNotFoundException )) {
21+ e .printStackTrace ();
22+ }
23+ }
24+ }
25+ }
26+ }
Original file line number Diff line number Diff line change 2020import net .minecraftforge .registries .ForgeRegistries ;
2121import net .minecraftforge .server .ServerLifecycleHooks ;
2222import org .embeddedt .modernfix .ModernFix ;
23+ import org .embeddedt .modernfix .forge .classloading .ClassLoadHack ;
2324import org .embeddedt .modernfix .forge .classloading .ModFileScanDataDeduplicator ;
2425import org .embeddedt .modernfix .forge .ModernFixConfig ;
2526import org .embeddedt .modernfix .entity .EntityDataIDSyncHandler ;
@@ -42,6 +43,7 @@ public ModernFixForge() {
4243 ModLoadingContext .get ().registerConfig (ModConfig .Type .COMMON , ModernFixConfig .COMMON_CONFIG );
4344 PacketHandler .register ();
4445 ModFileScanDataDeduplicator .deduplicate ();
46+ ClassLoadHack .loadModClasses ();
4547 }
4648
4749 @ SubscribeEvent
You can’t perform that action at this time.
0 commit comments