🗺️ 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-Anker | Release-Ära | Java-Toolchain | Build-Tools | Mod-Versions-Tag | Status |
|---|---|---|---|---|---|
| MC 26.3 | Modern Lead | Java 25+ (release = 25) | Loom 1.15+, Gradle 9.3+ | 1.3.23+26.3 | 🟢 Aktive Produktion |
| MC 26.2 | Modern Predecessor | Java 25+ (release = 25) | Loom 1.15+, Gradle 9.3+ | 1.3.22+26.2 | 🟢 Aktive Produktion |
| MC 26.1 / 26.1.2 | Modern Anchor | Java 25+ (release = 25) | Loom 1.15+, Gradle 9.3+ | 1.3.22+26.1.2 | 🟢 Aktive Produktion |
| MC 1.21.11 | Winter Drop | Java 21 (release = 21) | Loom 1.15-SNAPSHOT | 1.1.2+1.21.11 | 🟡 Gewartetes Archiv |
| MC 1.21.1 | Transitional Early | Java 21 (release = 21) | Loom 1.10+ | 1.1.2+1.21.1 | 🟡 Gewartetes Archiv |
| MC 1.20.1 | Legacy Anchor | Java 17 (release = 17) | Loom 1.4+, Gradle 8.x | 1.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:
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ängigkeit | Mindestversion | Erforderlich / Optional | Zweck |
|---|---|---|---|
| Fabric Loader | >=0.16.10 | Erforderlich | Laden von Mods und Mixin-Transformationen. |
| Java Runtime | >=25 (26.x) / >=21 (1.21) / >=17 (1.20) | Erforderlich | Kern-JVM-Laufzeitumgebung. |
| Fabric API | * (Open Lower Bound) | Erforderlich | Befehlsregistrierung und Lifecycle-Hooks. |
| Dasik Library | >=1.8.0 | Erforderlich | Dynamische GameRule-Engine und Systemdrosselung. |
| Cloth Config | * | Optional | Grafische In-Game-Konfigurationsoberfläche. |
| ModMenu | * | Optional | Mod-Listen-Integration und Einstellungsbutton. |
