Repository navigation
Full Changelog: v0.5.3...v1.0.0
修复
- 普通操作被拒绝后不再清空全部撤销/重做历史: 此前收到增量追回响应会整体清空历史, 玩家做过多次操作后, 任意一次操作被拒绝(目标链路已存在或已不存在)都会丢失此前全部可撤销历史; 现在仅移除前提已不成立的条目, 其余历史保留
- 追回数据过期时, 全量同步请求立即发出, 不再延迟到下一次同步广播
- 换维度后立即作废旧维度数据并重新同步: 此前换维度依赖的回调在客户端不会触发, 原维度的链路与线缆选中框会被画到新维度(表现为"在主世界里建的链路出现在了末地, 但对着它操作没有反应", 且不操作就一直存在); 现在换维度后旧数据立即清空, 并强制向新维度重新同步
- 上述"出现在错误维度的链路"被拒绝一次后自动消失: 请求的追回起点超出服务端当前版本时按数据过期处理, 立刻改发全量同步, 不再停在错误显示上
- 进入世界与换维度时的首次同步不再被请求节流吞掉(此前被吞掉后, 本次进入的维度可能长时间没有链路数据)
- 少数情况下操作队列会永久卡住、之后所有操作都没有反应的问题已修复; 其他维度的失败结果也不会再顶掉当前操作的在途状态
- 版本回退等异常时序下, 客户端不再把增量同步结果当成全量而暂时丢失链路显示
- 清空历史后不会再冒出一条已失效的历史条目(清空时同时取消排队中的撤销/重做请求)
- 未连接服务器时(标题界面的 Mods 菜单)打开本模组配置界面不再崩溃
- 单维度链路数量较大时, 进入世界与换维度的首次同步不再失败: 此前单包载荷超过 32767 字符会编码失败(约 500 条链路即触发, 严重时客户端被断开), 现在按分片下发, 规模不再受限
- 删除一条链路不再误熄灭同一输出面上其他来源的信号: 此前删链会把该输出面的存储信号无条件清零, 静止来源(红石块, 常开拉杆)不会自行恢复
- 多人同 tick 提交部分重叠的相反操作(如同一链路被同时建立与删除)按冲突处理, 涉及批次全部不执行
- 线缆剪出链超过批量上限时给出提示(此前静默无反应); 线缆剪的结果提示改由服务端确认后显示(此前在请求发出前就提示"已切断", 服务端拒绝时提示与事实相反)
- 放大镜信息面板不再永久停在"等待服务端返回"(此前若命中 1 秒查询节流则不会发起查询)
- 多人环境下不再把他人的成功操作误当成本机的确认(避免撤销历史出现实际未创建的条目)
- 非法请求载荷(输出面取值非法, 同一请求内重复链路)不再可能破坏存档或让全量同步永久失效
- 线缆数量较大时存档不再写入失败并丢失全部链路: 此前网络数据被写成单个 NBT 字符串, 超过 65535 字节上限即让整个维度存档写入中断(约 250 条链路即可触发), 且下一次进入世界会因读到空数据而报错并把链路清空; 现在写入不再受该上限约束, 读取遇到缺失或损坏数据也只提示并跳过, 不再打断进入世界
优化
- 撤销/重做失败提示细分: 状态型失败在服务端确认该链路刚被其他玩家操作时, 提示"该链路刚被 XXX 修改"(附玩家名); 其余情况维持"状态已变化"提示
- 普通操作失败时, 若确认本机数据与服务端一致, 不再发起多余的同步请求, 失败反馈更快
- 多人同 tick 提交相同操作时, 被拒提示不再误指向另一位玩家
- 专用服务器上修改服务端配置(渲染距离, 最大链路距离等)后, 已连接客户端立即采用新值(此前需重连才生效)
- 服务端新增请求限流(同一玩家拉取最小间隔)与排队上限, 异常刷包不会拖垮服务器
- 面名(上/下/东/西/南/北)改为本地化显示
- 枢纽方块(单一方块挂多条链路)的描边渲染去重, 减少重复几何提交
- 快捷栏上方的飘浮提示不再与原版物品名称高亮重叠
- 历史窗口页关闭按钮的命中区域不再在首帧落在左上角
- 配置界面的数值项改为离开界面时统一落盘(此前每次按键都写文件), 越界输入会把输入框显示更正为实际生效值
- 撤销/重做历史上限被调小时, 已有的双栈立即收缩到新上限
- 线缆, 线缆剪与放大镜的右键改为"按下触发一次, 长按不重复": 此前右键按住不放会每 4 tick 重复一次, 长按同一个方块会让线缆起点在"选中/取消选中"之间反复切换, 反复建链与删链, 线缆剪反复批量删除, 放大镜反复重开信息面板; 现在按住期间只触发一次, 松开后才能再次触发。三个物品的左键依旧不触发任何动作(左键保持原版行为); 未瞄准方块时(对着空气按右键)依旧不触发任何动作, 与改动前一致
兼容性
- 通信协议版本由 3 升级为 4, 客户端与服务端必须同时升级到 v1.0.0, 新旧版本之间无法建立连接
- 拒绝响应在本版本内补充维度字段(协议版本仍为 4, 不属于额外的升级), 客户端与服务端仍须同版本部署
- 增量广播补充请求者名单, 全量与追回响应补充分片信息, 服务端新增 422/429 校验, 均属协议 4 内部补齐(协议版本仍为 4)
- 链路数据与存档格式对使用者保持兼容, 使用 v0.5.3 及更早版本的存档可直接沿用(线缆网络在存档内的存储形态由单个字符串改为分块字符串列表, 读取同时兼容新旧两种形态, 旧存档首次保存时自动转为新形态, 无需人工迁移)