Skip to content

🔄 版本兼容性与生命周期支持

本页面记录了 Agrarian Reform 的版本兼容性矩阵、前向兼容设计准则以及依赖管理策略。

📌 代码仓库源码声明:本 Wiki 中的文档直接反映了仓库最新的源代码状态,可能包含未发布的提交记录或超前于 CurseForge 和 Modrinth 正式版本的开发功能。


📊 Minecraft 版本兼容性矩阵

Minecraft 版本模组构建状态Java 目标Fabric 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.jaragrarian-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-apidasik-library 等依赖使用通配符或开放下界("dasik-library": "*"),避免因前置库更新补丁号而产生虚假崩溃。

🔄 现代架构与 SavedData Codec 序列化

  • 年度大版本命名 (Annual Drop):Minecraft 自 2026 年起正式转向年度大版本发布体系(Year.Drop.Patch)。版本 26.2 与 26.3 代表当前活跃的主线 Drop。
  • 反混淆原生时代:26.x 代码库全面运行在非混淆的 Mojang 官方映射下,旧时代的 Yarn 映射术语(如 world, getWorld, WorldSettings)已被彻底废除。
  • SavedData 现代化序列化:世界持久化数据采用 Mojang 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.