Skip to content

v1.0.0

Latest

Choose a tag to compare

@JularDepick JularDepick released this 26 Sep 11:14
· 24 commits to main since this release

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 及更早版本的存档可直接沿用(线缆网络在存档内的存储形态由单个字符串改为分块字符串列表, 读取同时兼容新旧两种形态, 旧存档首次保存时自动转为新形态, 无需人工迁移)