🗺️ Совместимость версий и Матрица жизненного цикла
📌 Отказ от ответственности за исходный код: Документация в этой Вики отражает текущее состояние исходного кода в репозитории, которое может включать недавние невыпущенные коммиты или разрабатываемые функции до публичных релизов на CurseForge и Modrinth.
🏛️ Стандарт «1 Jar 1 Version» (Один JAR на версию)
True Sleep строго следует политике «1 Jar 1 Version»: каждая целевая версия Minecraft получает собственный скомпилированный JAR-файл, собранный нативно под цепочку инструментов Loom и байт-код соответствующей версии.
В соответствии с Обязательным мандатом многоверсионного жизненного цикла, ни одна поддерживаемая версия никогда не закрывается и не объявляется устаревшей без предварительного уведомления.
📊 Комплексная матрица версий Minecraft
| Версия Minecraft | Эпоха релиза | Инструменты Java | Сборщик | Тег версии мода | Статус поддержки |
|---|---|---|---|---|---|
| MC 26.3 | Modern Lead | Java 25+ (release = 25) | Loom 1.15+, Gradle 9.3+ | 1.3.23+26.3 | 🟢 Активная поддержка |
| MC 26.2 | Modern Predecessor | Java 25+ (release = 25) | Loom 1.15+, Gradle 9.3+ | 1.3.22+26.2 | 🟢 Активная поддержка |
| MC 26.1 / 26.1.2 | Modern Anchor | Java 25+ (release = 25) | Loom 1.15+, Gradle 9.3+ | 1.3.22+26.1.2 | 🟢 Активная поддержка |
| MC 1.21.11 | Winter Drop | Java 21 (release = 21) | Loom 1.15-SNAPSHOT | 1.1.2+1.21.11 | 🟡 Поддерживаемый архив |
| MC 1.21.1 | Transitional Early | Java 21 (release = 21) | Loom 1.10+ | 1.1.2+1.21.1 | 🟡 Поддерживаемый архив |
| MC 1.20.1 | Legacy Anchor | Java 17 (release = 17) | Loom 1.4+, Gradle 8.x | 1.0.3+1.20.1 | 🟡 Поддерживаемый архив |
🛡️ Проверка безопасности ModVersionGuard
Для защиты сохранений миров и вложений данных игроков от несоответствия загрузчиков классов или поврежденного API, True Sleep выполняет проверку байт-кода с нулевыми зависимостями во время 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)
);
}
}Разрешение через загрузчик классов 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. |
