Skip to content

🔄 Совместимость версий и жизненный цикл

На этой странице представлена таблица совместимости версий, правила обратной совместимости и управление зависимостями Agrarian Reform.

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


📊 Матрица совместимости версий Minecraft

Версия MinecraftСборка модаСтатусJavaFabric LoaderОграничение зависимостей
Minecraft 26.32.2.18+26.3Основная ветка (Снапшот 6+)Java 25>=0.16.9"minecraft": ">=26.3-"
Minecraft 26.22.2.18+26.2Основная ветка (Стабильная)Java 25>=0.16.9"minecraft": ">=26.2-"
Minecraft 26.1.21.2.7+R-26.1.2Архивный релизJava 25>=0.15.0"minecraft": ">=26.1.2"

🛡️ 1 Jar 1 Version и открытые границы версий

Agrarian Reform строго придерживается политики 1 Jar 1 Version и правил прямой совместимости:

  1. Индивидуальная сборка: Каждый скомпилированный JAR собирается и тестируется под конкретный целевой релиз Minecraft (agrarian-reform-2.2.18+26.2.jar и agrarian-reform-2.2.18+26.3.jar).
  2. Открытые нижние границы: В fabric.mod.json зависимость Minecraft задается открытым диапазоном:
    json
    "minecraft": ">=26.2-"
    и для 26.3:
    json
    "minecraft": ">=26.3-"
    Это предотвращает ложные блокировки Fabric Loader при игре на минорных патчах.
  3. Свободные зависимости: Зависимости fabric-api и dasik-library используют открытые границы ("*"), предотвращая конфликты при обновлении библиотек.

🔄 Современная архитектура и SavedData Codec

  • Ежегодная система релизов: Minecraft перешел на систему Year.Drop.Patch. Версии 26.2 и 26.3 представляют собой актуальные релизы.
  • Эра без обфускации: Базы кода 26.x работают на официальных маппингах Mojang. Устаревшие маппинги Yarn (world, getWorld) полностью удалены.
  • Современный SavedData: Сохранение данных мира использует SavedDataType с кодеками Codec вместо устаревшего ручного разбора NBT:
java
public static final SavedDataType<ContinuumData> TYPE = new SavedDataType<>(
    Identifier.fromNamespaceAndPath("agrarian_reform", "continuum"),
    ContinuumData::create,
    Codec.unboundedMap(Codec.STRING, Codec.LONG).xmap(
        map -> {
            ContinuumData data = new ContinuumData();
            map.forEach((k, v) -> data.timestamps.put(Long.parseLong(k), v));
            return data;
        },
        data -> {
            Map<String, Long> map = new HashMap<>();
            data.timestamps.forEach((k, v) -> map.put(k.toString(), v));
            return map;
        }
    ),
    DataFixTypes.SAVED_DATA_MAP_DATA
);

См. также: Руководство по Minecraft 26.2 и 26.3 и API и интеграция аддонов.

Official documentation & web portal for Dasik Igaijinn mods.