🗺️ 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 Sortie | Chaîne d'Outils Java | Outils de Build | Balise de Version | Statut |
|---|---|---|---|---|---|
| MC 26.3 | Modern Lead | Java 25+ (release = 25) | Loom 1.15+, Gradle 9.3+ | 1.3.23+26.3 | 🟢 Production Active |
| MC 26.2 | Modern Predecessor | Java 25+ (release = 25) | Loom 1.15+, Gradle 9.3+ | 1.3.22+26.2 | 🟢 Production Active |
| MC 26.1 / 26.1.2 | Modern Anchor | Java 25+ (release = 25) | Loom 1.15+, Gradle 9.3+ | 1.3.22+26.1.2 | 🟢 Production Active |
| MC 1.21.11 | Winter Drop | Java 21 (release = 21) | Loom 1.15-SNAPSHOT | 1.1.2+1.21.11 | 🟡 Archive Maintenue |
| MC 1.21.1 | Transitional Early | Java 21 (release = 21) | Loom 1.10+ | 1.1.2+1.21.1 | 🟡 Archive Maintenue |
| MC 1.20.1 | Legacy Anchor | Java 17 (release = 17) | Loom 1.4+, Gradle 8.x | 1.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() :
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épendance | Version Minimale | Requis / Optionnel | Rôle |
|---|---|---|---|
| Fabric Loader | >=0.16.10 | Requis | Chargement des mods et transformation Mixin. |
| Java Runtime | >=25 (26.x) / >=21 (1.21) / >=17 (1.20) | Requis | Environnement d'exécution JVM principal. |
| Fabric API | * (Open Lower Bound) | Requis | Enregistrement des commandes et hooks de cycle de vie. |
| Dasik Library | >=1.8.0 | Requis | Moteur de GameRules dynamiques et régulation. |
| Cloth Config | * | Optionnel | Interface graphique de configuration en jeu. |
| ModMenu | * | Optionnel | Intégration dans la liste des mods et bouton de configuration. |
