Skip to content

🗺️ Version Compatibility & Multi-Era Lifecycle Matrix

📌 Repository Source Disclaimer: The documentation in this Wiki reflects the current source code state in the repository, which may include recent unreleased commits or developmental features ahead of public release builds on CurseForge and Modrinth.


🏛️ 1 Jar 1 Version Operating Standard

True Sleep strictly enforces the 1 Jar 1 Version Policy: every targeted Minecraft version receives its own dedicated compiled JAR built natively against that version's Loom toolchain and bytecode.

Under the Mandatory Multi-Version Lifecycle Mandate, no supported version is ever retired, abandoned, or deprecated without explicit notice.


📊 Comprehensive Minecraft Version Matrix

Minecraft AnchorRelease EraJava ToolchainBuild ToolingMod Version TagRuntime Status
MC 26.3Modern LeadJava 25+ (release = 25)Loom 1.15+, Gradle 9.3+1.3.23+26.3🟢 Active Production
MC 26.2Modern PredecessorJava 25+ (release = 25)Loom 1.15+, Gradle 9.3+1.3.22+26.2🟢 Active Production
MC 26.1 / 26.1.2Modern AnchorJava 25+ (release = 25)Loom 1.15+, Gradle 9.3+1.3.22+26.1.2🟢 Active Production
MC 1.21.11Winter DropJava 21 (release = 21)Loom 1.15-SNAPSHOT1.1.2+1.21.11🟡 Maintained Archive
MC 1.21.1Transitional EarlyJava 21 (release = 21)Loom 1.10+1.1.2+1.21.1🟡 Maintained Archive
MC 1.20.1Legacy AnchorJava 17 (release = 17)Loom 1.4+, Gradle 8.x1.0.3+1.20.1🟡 Maintained Archive

🛡️ ModVersionGuard Safety Verification

To protect persistent world saves and player data attachments from classloader mismatches or corrupted API states, True Sleep executes zero-dependency bytecode verification during onInitialize():

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)
        );
    }
}

Knot ClassLoader Resolution

The verification uses Thread.currentThread().getContextClassLoader() to resolve vanilla runtime classes through Fabric's Knot classloader. If an incompatible game engine is detected, startup halts immediately with an explanatory diagnostic message before any chunk or entity data can be altered.


📦 Dependency Matrix

DependencyMinimum VersionRequired / OptionalPurpose
Fabric Loader>=0.16.10RequiredMod loading and mixin transformation.
Java Runtime>=25 (26.x) / >=21 (1.21) / >=17 (1.20)RequiredCore JVM execution environment.
Fabric API* (Open Lower Bound)RequiredCommand registration and event hooks.
Dasik Library>=1.8.0RequiredDynamic GameRule engine & social system throttling.
Cloth Config*OptionalIn-game configuration graphical interface.
ModMenu*OptionalMod list integration and settings button.

Official documentation & web portal for Dasik Igaijinn mods.