
BetterAutoSave
BetterAutoSave - серверный мод для Forge 1.20.1 и NeoForge 1.21.1, который выносит автосохранение чанков, сущностей и SavedData в фоновые потоки. Убирает лаг-спайки от автосейва и телепортов.
Список изменений
v0.10.1 — 存档安全补丁
这是一个纯修复版本,补上了三个边界问题:两个低概率但一旦触发就会丢存档的情况,以及一个运营中执行 /save-all flush 会卡服的毛病。另外修了几处文档里写过时的版本号。功能没有任何变化
修了两个会丢存档的边界
这两个问题都不常见——要在后台保存恰好出错的那一刻撞上才会发生,平时跑图基本碰不到。但一旦撞上,对应的区块这一轮的改动就再也存不下来了,连关服时的兜底保存也救不回,所以必须堵死。
-
后台派发出错后区块卡死:BAS 把区块交给后台保存时,如果那一步抛了异常,区块会停在一个"既不再尝试后台保存、也不交还给原版同步保存"的死状态,玩家不再编辑它就永久丢失。现在出错后会把区块状态复位,下一轮自动重新保存,原版兜底也能接手
-
写盘失败后区块被静默丢弃:区块数据写硬盘失败时,BAS 原本会安排重试,但漏了一步——没把区块重新标记成"待保存",导致重试和关服兜底都看不到它,于是被悄悄丢掉。现在写盘失败的区块会在主线程被重新标记,下一轮重试或交还原版同步保存,不再丢
/save-all flush 不再卡服
以前在服务器运行中手动执行 /save-all flush,主线程会停下来死等所有后台保存任务写完,最长能卡几十秒,期间全服掉 TPS、玩家卡顿。现在区分了两种情况:关服时仍然老老实实等写完(必须的,不能丢数据);运行中执行则不再阻塞,后台保存继续在背景跑,命令立即返回,想看进度用 /betterautosave status
顺手加固了 .dat 文件写入
存档里的 .dat 文件(袭击数据、强制加载区块、部分 mod 的存档等)现在改成原子写入——先写临时文件、刷盘、再整体替换。这样即使写到一半掉电或进程被杀,也不会留下一个损坏的半截文件导致下次读不出来。多线程写同名文件的并发也做了去重,不会再交错写坏
文档勘误
README 安装说明里的 jar 文件名、路线图里的当前版本标注,之前还写着 0.9,更新成了 0.10
升级
替换 jar 即可,配置文件不变,无需任何调整
