From ef276b6ef43a8203a56c888cf32b6d01adcca200 Mon Sep 17 00:00:00 2001 From: CPTProgrammer <46586216+CPTProgrammer@users.noreply.github.com> Date: Fri, 10 Jul 2026 08:37:23 +0800 Subject: [PATCH] Update VersionTable to show MC version compatibility range --- docs/frontend.md | 7 ++++--- docs/workflow.md | 7 +++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/frontend.md b/docs/frontend.md index 25eb4cc..a62fcc3 100644 --- a/docs/frontend.md +++ b/docs/frontend.md @@ -34,10 +34,11 @@ ### VersionTable -- 每行:MC 版本 | 构建产物文件名 | 源码文件名 -- MC 版本来自 `minecraft_properties_dir` 目录文件名 +- 每行:MC 版本 | 兼容范围 | 构建产物文件名 | 源码文件名 +- MC 版本与兼容范围由后端计算,版本范围计算逻辑封装在 `lib/utils/mcVersion.ts`,前后端共用 - 构建产物和源码分别匹配 `filename_format` 和 `source_filename_format` -- 全部只读展示 +- 最后一个版本的兼容范围含泛匹配,显示格式:若覆盖完整的大版本则显示 `1.19.x` / `26.x` 等,否则显示 `1.20.1-1.20.3` 等具体范围。截止版本下拉框可编辑;下拉可选值取 Modrinth 与 CurseForge 元数据 API 返回的 MC 版本并集 +- 已发布版本对比(平台差异)留到 PublishModal 第一页分别展示 - 切换 config 后后台解析期间,Table 使用 Ant Design 自带的加载状态 ### PublishModal diff --git a/docs/workflow.md b/docs/workflow.md index cb7ec69..1b36782 100644 --- a/docs/workflow.md +++ b/docs/workflow.md @@ -95,11 +95,14 @@ 1. 读取 `{project_dir}/{project_properties_path}`,提取 `mod_version_field` 对应的值 → `version` 2. 扫描 `{project_dir}/{minecraft_properties_dir}/` 目录,获取所有 `${mc_version}.properties` 文件名 → `mc_version[]` -3. 遍历每个 `mc_version`: +3. 对 `mc_version[]` 排序后计算每个版本的兼容范围: + - 非最后一个版本:范围为 `[当前版本, 下一个版本)`,如 `"1.19.1"` → `"1.19.1-1.19.2"` + - 最后一个版本:`< 26` 的版本用 `~` 匹配次版本号(如 `1.21.x`);`≥ 26` 的版本用 `^` 匹配主版本号(如 `26.x`),截止版本由用户在下拉框中选择 +4. 遍历每个 `mc_version`: - 用 `version` 和 `mc_version` 填入 `filename_format` 模板,生成构建产物文件名 - 用 `version` 和 `mc_version` 填入 `source_filename_format` 模板,生成源码文件名 - 检查 `{project_dir}/build/libs/` 下是否存在对应文件 -4. 将所有匹配结果返回前端,由 VersionTable 展示(MC 版本 | 构建产物 | 源码) +5. 将所有匹配结果返回前端,由 VersionTable 展示(MC 版本 | 兼容范围 | 构建产物 | 源码) ### 4. 版本确认与发布