Skip to content

🗺️ Compatibilité des versions et Matrice du cycle de vie

📌 Avertissement concernant le code source du dépôt : La documentation de ce Wiki reflète l'état actuel du code source dans le dépôt, qui peut inclure des commits récents non publiés ou des fonctionnalités en cours de développement avant les versions publiques sur CurseForge et Modrinth.


🏛️ Norme d'Exploitation « 1 Jar 1 Version » (Un JAR par Version)

True Sleep applique rigoureusement la politique « 1 Jar 1 Version » : chaque version ciblée de Minecraft dispose de son propre fichier JAR dédié, compilé nativement pour la chaîne d'outils Loom et le bytecode de cette version.

Conformément au Mandat Obligatoire de Cycle de Vie Multi-Versions, aucune version prise en charge n'est jamais délaissée, abandonnée ou rendue obsolète sans avertissement explicite.


📊 Matrice Complète des Versions de Minecraft

Version Ancre MinecraftÈre de SortieChaîne d'Outils JavaOutils de BuildBalise de VersionStatut
MC 26.3Modern LeadJava 25+ (release = 25)Loom 1.15+, Gradle 9.3+1.3.23+26.3🟢 Production Active
MC 26.2Modern PredecessorJava 25+ (release = 25)Loom 1.15+, Gradle 9.3+1.3.22+26.2🟢 Production Active
MC 26.1 / 26.1.2Modern AnchorJava 25+ (release = 25)Loom 1.15+, Gradle 9.3+1.3.22+26.1.2🟢 Production Active
MC 1.21.11Winter DropJava 21 (release = 21)Loom 1.15-SNAPSHOT1.1.2+1.21.11🟡 Archive Maintenue
MC 1.21.1Transitional EarlyJava 21 (release = 21)Loom 1.10+1.1.2+1.21.1🟡 Archive Maintenue
MC 1.20.1Legacy AnchorJava 17 (release = 17)Loom 1.4+, Gradle 8.x1.0.3+1.20.1🟡 Archive Maintenue

🛡️ Vérification de Sécurité ModVersionGuard

Afin de protéger les sauvegardes et données des joueurs contre les incompatibilités de chargeur de classes ou les API corrompues, True Sleep effectue une vérification du bytecode sans dépendance lors de 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)
        );
    }
}

Résolution via le ClassLoader Knot

La vérification fait appel à Thread.currentThread().getContextClassLoader() pour résoudre les classes vanille via le chargeur Knot de Fabric. Si un environnement incompatible est détecté, le chargement s'interrompt immédiatement avec un message clair avant toute altération de données.


📦 Matrice des Dépendances

DépendanceVersion MinimaleRequis / OptionnelRôle
Fabric Loader>=0.16.10RequisChargement des mods et transformation Mixin.
Java Runtime>=25 (26.x) / >=21 (1.21) / >=17 (1.20)RequisEnvironnement d'exécution JVM principal.
Fabric API* (Open Lower Bound)RequisEnregistrement des commandes et hooks de cycle de vie.
Dasik Library>=1.8.0RequisMoteur de GameRules dynamiques et régulation.
Cloth Config*OptionnelInterface graphique de configuration en jeu.
ModMenu*OptionnelIntégration dans la liste des mods et bouton de configuration.

Official documentation & web portal for Dasik Igaijinn mods.