Repository navigation
Mod Update Checker v1.6.0
这一版把 .old 备份纳入管理:列表里看得见、可筛选、可删除,但默认一个字节都不删;另有一轮
全代码审查和多处界面修正。
新增
.old备份成为一类状态(old_backup,图标⏪):出现在!!modupdate list(!!modupdate list old_backup可单独筛出)、!!modupdate info(文件名、大小、留了多久)与!!modupdate status(几个、共多大、几个超期)。它不参与「共检查 N 个 jar」,也不会被拿去问 Modrinth。- 删除旧备份:
!!modupdate delete <文件名 / 编号>删一个、!!modupdate delete all删全部(不看天数)、!!modupdate cleanup只删已过期的(默认满 30 天)。三条都先列计划、再由!!modupdate confirm确认;第一次敲cleanup通常什么都不会删,它会报出现状与两条路(点名删除,或调小cleanup.max_age_days)。 - 删除总开关
cleanup.allow_delete(默认关闭):关着时delete/cleanup和它们的confirm一律被拒,插件不删除mods/里的任何文件;详情页的[删除此备份]按钮与状态屏都会说明这一点。 - 到期提醒
cleanup.enabled(默认关闭,排在总开关之后):发现有过期备份时提醒一次并摆好计划,直接!!modupdate confirm即可;不会顶掉正在等待确认的其它操作。
变更
- 删除的安全规则:
delete/cleanup/ 确认 / 提醒四处走同一个开关;只认插件自己生成的备份名(<文件名>.jar.old、.jar.old.2这类),删除时重新核对,要删的集合变了整条计划作废,指向真 Mod 的编号会被拒绝。 - 列表配色按「一块是什么」定:编号永远黄、名称永远白、
[版本]绿、[详细信息]aqua;状态色 绿 = 已是最新、蓝 = 有更新与待安装、红 = 有问题、其余灰(图标、浮窗第一行、汇总分节标题与通知都用同一张表)。 - 状态收进
[状态: 图标]一格:✔已是最新、↑有新版可下载、↓已下载待安装、❌无适配构建、✘出错、☆本地比上游新、?认不出上游、○不是 Mod、⏪旧版备份、—配置里忽略;含义在浮窗第一行(状态名 + 状态色)。图标只取原版字体自带的符号。 - 版本收进绿色
[版本]:悬停展开(有更新时是红>>>绿);控制台与日志照旧印版本数字。 - 列表行四格对齐:
[编号] 名称 [版本] [状态] [详细信息];名称超宽截成...(全名在悬停里);补齐按截图实测的字宽模型(i j l t f I 1记 3/4 个字母、.[]记 1/2、汉字记 2¼;控制台等宽仍按字符数)。完全对齐受字体限制做不到,README 已写明。 - 每一屏加了与标题栏同宽的收尾线;翻页行改成标题栏样式(到头一侧变灰、点不动)。
- 悬停与点击:帮助页只留短句、说明文字可点、细节进浮窗;
[详细信息]的浮窗说明它执行!!modupdate info <Mod 名>;计划里的confirm是亮红色按钮(点击只填入输入框,不直接执行)。 - 文案修正:状态不再一行说两遍;行上的版本注解与状态标签统一(
(已下载,未安装)归状态);括号不再套括号;列表末尾悬空的冒号拆开;本地版本更新改名本地比上游新;英文状态名收成标签长度;游戏内中文括号统一为半角(71 条)。
修复
- 备份的年龄以前算错:改名成
.old会保留原时间戳,升级后会把所有旧备份当成「早已过期」;现在安装时把时间戳刷成它成为备份的那一刻。 - 删掉的文件不再留在列表里:删除成功后条目会从报告与
last_report.json一并摘掉。 - 控制台的列表行重新显示版本号:此前把行形态统一成聊天形态,控制台也印了
[版本]标签,而终端里没有悬停。 - 浮窗不再整段溢出:客户端只在空格处断行,中文没有空格,现在全部手工断行(每行 ≤ 32 显示列);
list的状态清单改成一行一个。 - 缓存文件内容异常不再导致插件启动失败(
resolve-cache.json被写成[]之类):!!muc status的那行日志现在先检查文件形状。
内部整理
- 一次全代码审查:插件自身的 JSON 统一走原子写;两处重复的下载计数合并为一个函数;备份列表少一次系统调用;删掉一处无用解包;语言文件 304 条逐键核对无孤儿。未改动的都记了理由(
README-dev.md)。 - 渲染路径量过之后,把每行重算的格宽改为按语言缓存(195 µs → 0.8 µs / 10 行);扫描不并行是量过的决定。
验证
- 测试 725 项全部通过(v1.5.0 是 652 项);27 处注入验证全部被抓到(撤掉一条守卫,对应测试确实失败)。
- 真实 MCDR 2.13.0 / 2.14.1 / 2.15.0 / 2.15.7 / 2.16.0 五版本各跑一遍完整流程,逐项一致(54 项 required_keys + 2 项附加检查;v1.5.0 是 43 项)。
- 产物可复现、换行归一、包内无注释与 docstring、包内代码可编译。