Skip to content

ModVersionGuard & Start-Sicherheit

Klassenet.dasik.social.util.ModVersionGuard
ClassLoader-RichtlinieExplizite Übergabe von Thread.currentThread().getContextClassLoader()
Verbotenes MusterStandard Class.forName(name) ohne Angabe des ClassLoaders
AufrufpunktDasikLibraryMod.onInitialize()

🛡️ Klassenauflösung unter Knot ClassLoader

In Fabric-Mods nutzt der Standardaufruf Class.forName(String className) den System-ClassLoader. Dies schlägt unter dem Knot ClassLoader in frühen Initialisierungsphasen fehl und wirft fälschlicherweise eine ClassNotFoundException, obwohl die Klassen existieren.

ModVersionGuard übergibt explizit Thread.currentThread().getContextClassLoader():

java
public final class ModVersionGuard {
    public static void checkClass(String modName, String requiredClassName) {
        try {
            Class.forName(requiredClassName, true, Thread.currentThread().getContextClassLoader());
        } catch (ClassNotFoundException e) {
            throw new RuntimeException("\n" +
                "=====================================================================\n" +
                " [" + modName + "] Minecraft API Mismatch!\n" +
                " A required Minecraft class or API was not found in your game version.\n" +
                " Try updating your Minecraft version or download a matching build.\n" +
                "=====================================================================");
        }
    }
}

🔗 Verwandte Seiten

Official documentation & web portal for Dasik Igaijinn mods.