Skip to content

🗺️ Совместимость версий и Матрица жизненного цикла

📌 Отказ от ответственности за исходный код: Документация в этой Вики отражает текущее состояние исходного кода в репозитории, которое может включать недавние невыпущенные коммиты или разрабатываемые функции до публичных релизов на CurseForge и Modrinth.


🏛️ Стандарт «1 Jar 1 Version» (Один JAR на версию)

True Sleep строго следует политике «1 Jar 1 Version»: каждая целевая версия Minecraft получает собственный скомпилированный JAR-файл, собранный нативно под цепочку инструментов Loom и байт-код соответствующей версии.

В соответствии с Обязательным мандатом многоверсионного жизненного цикла, ни одна поддерживаемая версия никогда не закрывается и не объявляется устаревшей без предварительного уведомления.


📊 Комплексная матрица версий Minecraft

Версия MinecraftЭпоха релизаИнструменты JavaСборщикТег версии модаСтатус поддержки
MC 26.3Modern LeadJava 25+ (release = 25)Loom 1.15+, Gradle 9.3+1.3.23+26.3🟢 Активная поддержка
MC 26.2Modern PredecessorJava 25+ (release = 25)Loom 1.15+, Gradle 9.3+1.3.22+26.2🟢 Активная поддержка
MC 26.1 / 26.1.2Modern AnchorJava 25+ (release = 25)Loom 1.15+, Gradle 9.3+1.3.22+26.1.2🟢 Активная поддержка
MC 1.21.11Winter DropJava 21 (release = 21)Loom 1.15-SNAPSHOT1.1.2+1.21.11🟡 Поддерживаемый архив
MC 1.21.1Transitional EarlyJava 21 (release = 21)Loom 1.10+1.1.2+1.21.1🟡 Поддерживаемый архив
MC 1.20.1Legacy AnchorJava 17 (release = 17)Loom 1.4+, Gradle 8.x1.0.3+1.20.1🟡 Поддерживаемый архив

🛡️ Проверка безопасности ModVersionGuard

Для защиты сохранений миров и вложений данных игроков от несоответствия загрузчиков классов или поврежденного API, True Sleep выполняет проверку байт-кода с нулевыми зависимостями во время 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

Проверка использует Thread.currentThread().getContextClassLoader() для поиска ванильных классов через загрузчик Knot от Fabric. При обнаружении несовместимой среды запуск немедленно останавливается с диагностическим сообщением до того, как какие-либо данные мира успеют измениться.


📦 Матрица зависимостей

ЗависимостьМин. версияОбязательно / ОпциональноНазначение
Fabric Loader>=0.16.10ОбязательноЗагрузка модов и трансформация Mixin.
Java Runtime>=25 (26.x) / >=21 (1.21) / >=17 (1.20)ОбязательноБазовая среда выполнения JVM.
Fabric API* (Open Lower Bound)ОбязательноРегистрация команд и события жизненного цикла.
Dasik Library>=1.8.0ОбязательноДвижок динамических GameRules и регулирование систем.
Cloth Config*ОпциональноВнутриигровой графический интерфейс настроек.
ModMenu*ОпциональноКнопка настроек в списке модов ModMenu.

Official documentation & web portal for Dasik Igaijinn mods.