Skip to content

🗺️ Compatibilidade de Versões e Matriz do Ciclo de Vida

📌 Aviso Legal do Código-Fonte do Repositório: A documentação nesta Wiki reflete o estado atual do código-fonte no repositório, que pode incluir commits recentes não lançados ou recursos em desenvolvimento antes dos lançamentos públicos no CurseForge e Modrinth.


🏛️ Padrão Operacional «1 Jar 1 Version» (Um JAR por Versão)

O True Sleep aplica rigorosamente a política «1 Jar 1 Version»: cada versão suportada do Minecraft possui seu próprio arquivo JAR compilado nativamente contra a toolchain do Loom e o bytecode da respectiva versão.

Sob o Mandato Obrigatório de Ciclo de Vida Multiversão, nenhuma versão com suporte é jamais abandonada ou descontinuada sem aviso prévio explícito.


📊 Matriz Abrangente de Versões do Minecraft

Âncora do MinecraftEra de LançamentoToolchain JavaFerramentas de BuildTag da VersãoStatus
MC 26.3Modern LeadJava 25+ (release = 25)Loom 1.15+, Gradle 9.3+1.3.23+26.3🟢 Produção Ativa
MC 26.2Modern PredecessorJava 25+ (release = 25)Loom 1.15+, Gradle 9.3+1.3.22+26.2🟢 Produção Ativa
MC 26.1 / 26.1.2Modern AnchorJava 25+ (release = 25)Loom 1.15+, Gradle 9.3+1.3.22+26.1.2🟢 Produção Ativa
MC 1.21.11Winter DropJava 21 (release = 21)Loom 1.15-SNAPSHOT1.1.2+1.21.11🟡 Arquivo Mantido
MC 1.21.1Transitional EarlyJava 21 (release = 21)Loom 1.10+1.1.2+1.21.1🟡 Arquivo Mantido
MC 1.20.1Legacy AnchorJava 17 (release = 17)Loom 1.4+, Gradle 8.x1.0.3+1.20.1🟡 Arquivo Mantido

🛡️ Verificação de Segurança ModVersionGuard

Para proteger os saves de mundos e dados dos jogadores contra inconsistências de classloader ou corrupção de APIs, o True Sleep realiza uma verificação de bytecode com zero dependências durante 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)
        );
    }
}

Resolução pelo ClassLoader Knot

A verificação utiliza Thread.currentThread().getContextClassLoader() para resolver classes vanilla através do classloader Knot do Fabric. Caso um ambiente incompatível seja detectado, a inicialização é interrompida imediatamente com uma mensagem detalhada antes que qualquer dado do mundo seja alterado.


📦 Matriz de Dependências

DependênciaVersão MínimaObrigatório / OpcionalFinalidade
Fabric Loader>=0.16.10ObrigatórioCarregamento de mods e transformação de Mixins.
Java Runtime>=25 (26.x) / >=21 (1.21) / >=17 (1.20)ObrigatórioAmbiente de execução JVM principal.
Fabric API* (Open Lower Bound)ObrigatórioRegistro de comandos e ganchos de ciclo de vida.
Dasik Library>=1.8.0ObrigatórioMotor de GameRules dinâmicas e regulação.
Cloth Config*OpcionalInterface gráfica de configuração no jogo.
ModMenu*OpcionalIntegração com a lista de mods e botão de configurações.

Official documentation & web portal for Dasik Igaijinn mods.