Skip to content

🗺️ Versionskompatibilität & Lebenszyklus-Matrix

📌 Hinweis zum Quellcode des Repositorys: Die Dokumentation in diesem Wiki spiegelt den aktuellen Quellcode-Zustand im Repository wider, der neuere, unveröffentlichte Commits oder Entwicklungsfunktionen vor den öffentlichen Release-Builds auf CurseForge und Modrinth enthalten kann.


🏛️ Betriebsstandard «1 Jar 1 Version» (Ein JAR pro Version)

True Sleep setzt die Richtlinie «1 Jar 1 Version» strikt durch: Jede unterstützte Minecraft-Zielversion erhält eine eigene, dedizierte JAR-Datei, die nativ gegen die Loom-Toolchain und den Bytecode dieser Version gebaut wird.

Im Rahmen des verpflichtenden Multi-Versions-Lebenszyklus-Mandats wird keine unterstützte Version ohne ausdrückliche Ankündigung eingestellt oder verworfen.


📊 Umfassende Minecraft-Versionsmatrix

Minecraft-AnkerRelease-ÄraJava-ToolchainBuild-ToolsMod-Versions-TagStatus
MC 26.3Modern LeadJava 25+ (release = 25)Loom 1.15+, Gradle 9.3+1.3.23+26.3🟢 Aktive Produktion
MC 26.2Modern PredecessorJava 25+ (release = 25)Loom 1.15+, Gradle 9.3+1.3.22+26.2🟢 Aktive Produktion
MC 26.1 / 26.1.2Modern AnchorJava 25+ (release = 25)Loom 1.15+, Gradle 9.3+1.3.22+26.1.2🟢 Aktive Produktion
MC 1.21.11Winter DropJava 21 (release = 21)Loom 1.15-SNAPSHOT1.1.2+1.21.11🟡 Gewartetes Archiv
MC 1.21.1Transitional EarlyJava 21 (release = 21)Loom 1.10+1.1.2+1.21.1🟡 Gewartetes Archiv
MC 1.20.1Legacy AnchorJava 17 (release = 17)Loom 1.4+, Gradle 8.x1.0.3+1.20.1🟡 Gewartetes Archiv

🛡️ ModVersionGuard-Sicherheitsüberprüfung

Um persistente Spielstände und Spieler-Datenanhänge vor Inkompatibilitäten des Classloaders oder beschädigten API-Zuständen zu schützen, führt True Sleep während onInitialize() eine abhängigkeitsfreie Bytecode-Verifikation durch:

java
public class TrueSleep implements ModInitializer {
    @Override
    public void onInitialize() {
        net.vanillaoutsider.truesleep.util.ModVersionGuard.checkClass(
            "True Sleep", 
            "net.minecraft.world.entity.player.Player"
        );
        LOGGER.info("Initializing True Sleep (Time Warp)...");
        TrueSleepRules.init();
        CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> 
            TrueSleepCommand.register(dispatcher)
        );
    }
}

Auflösung über den Knot-Classloader

Die Verifikation nutzt Thread.currentThread().getContextClassLoader(), um native Klassen über Fabrics Knot-Classloader aufzulösen. Wird eine inkompatible Spielumgebung erkannt, bricht der Start sofort mit einer aussagekräftigen Diagnosemeldung ab, bevor Welt- oder Entitätsdaten verändert werden können.


📦 Abhängigkeitsmatrix

AbhängigkeitMindestversionErforderlich / OptionalZweck
Fabric Loader>=0.16.10ErforderlichLaden von Mods und Mixin-Transformationen.
Java Runtime>=25 (26.x) / >=21 (1.21) / >=17 (1.20)ErforderlichKern-JVM-Laufzeitumgebung.
Fabric API* (Open Lower Bound)ErforderlichBefehlsregistrierung und Lifecycle-Hooks.
Dasik Library>=1.8.0ErforderlichDynamische GameRule-Engine und Systemdrosselung.
Cloth Config*OptionalGrafische In-Game-Konfigurationsoberfläche.
ModMenu*OptionalMod-Listen-Integration und Einstellungsbutton.

Official documentation & web portal for Dasik Igaijinn mods.