🗺️ 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 Minecraft | Era de Lançamento | Toolchain Java | Ferramentas de Build | Tag da Versão | Status |
|---|---|---|---|---|---|
| MC 26.3 | Modern Lead | Java 25+ (release = 25) | Loom 1.15+, Gradle 9.3+ | 1.3.23+26.3 | 🟢 Produção Ativa |
| MC 26.2 | Modern Predecessor | Java 25+ (release = 25) | Loom 1.15+, Gradle 9.3+ | 1.3.22+26.2 | 🟢 Produção Ativa |
| MC 26.1 / 26.1.2 | Modern Anchor | Java 25+ (release = 25) | Loom 1.15+, Gradle 9.3+ | 1.3.22+26.1.2 | 🟢 Produção Ativa |
| MC 1.21.11 | Winter Drop | Java 21 (release = 21) | Loom 1.15-SNAPSHOT | 1.1.2+1.21.11 | 🟡 Arquivo Mantido |
| MC 1.21.1 | Transitional Early | Java 21 (release = 21) | Loom 1.10+ | 1.1.2+1.21.1 | 🟡 Arquivo Mantido |
| MC 1.20.1 | Legacy Anchor | Java 17 (release = 17) | Loom 1.4+, Gradle 8.x | 1.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():
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ência | Versão Mínima | Obrigatório / Opcional | Finalidade |
|---|---|---|---|
| Fabric Loader | >=0.16.10 | Obrigatório | Carregamento de mods e transformação de Mixins. |
| Java Runtime | >=25 (26.x) / >=21 (1.21) / >=17 (1.20) | Obrigatório | Ambiente de execução JVM principal. |
| Fabric API | * (Open Lower Bound) | Obrigatório | Registro de comandos e ganchos de ciclo de vida. |
| Dasik Library | >=1.8.0 | Obrigatório | Motor de GameRules dinâmicas e regulação. |
| Cloth Config | * | Opcional | Interface gráfica de configuração no jogo. |
| ModMenu | * | Opcional | Integração com a lista de mods e botão de configurações. |
