Fix bug where DynamicMultiblockManager attempts to load unloaded blocks 修复DynamicMultiblockManager会尝试加载未加载的区块的问题#73
Conversation
- 在 DynamicMultiblockManager 中为每个 MultiblockState 设置快照 - 优化 buildSnapshot 方法,处理区块未加载时复用旧快照条目 - 修改 MultiblockCheckSnapshot.Entry,支持 blockState 为 null 的安全检测 - 改进 test 方法调用逻辑,避免空快照导致的判定错误 - 为 MultiblockState 添加 snapshot 字段,维护当前快照状态
代码审查摘要PR #73 · 结论:请求更改(1 个关键问题) 🔴 关键
|
| 等级 | 数量 | 关键项 |
|---|---|---|
| 🔴 关键 | 1 | 首次调用时 old 为 null 导致 NPE |
| 2 | record 字段变为 @Nullable 影响外部调用点;缺少 import 验证 |
|
| 💡 建议 | 2 | 构造器预初始化 snapshot;记录可空性 javadoc |
| ✅ 不错 | 3 | 核心思路、封装提取、线程安全 |
建议修复 NPE 后再合并。
- 在DynamicMultiblockManager中修正旧快照条目为空时的处理逻辑 - 将MultiblockCheckSnapshot构造参数改为使用BlockPos,移除asLong方式 - 更新MultiblockCheckSnapshot的记录定义,改用BlockPos类型表示控制器位置 - 初始化MultiblockState中的快照为空快照,保证一致性与初始化正确 - 优化注释,明确快照参数含义,增强代码可读性与类型安全
|
审查完成。以下是分析结果: 代码审查摘要PR #73 — 修复 变更概述
核心思路: 在构建多方块快照时,若目标位置所在区块未加载,改为复用上一轮的快照条目(或创建空条目跳过),而非调用 ✅ 正确性
|
🌿 Roseau API Breaking Change Report
|
🌿 Roseau API Breaking Change Report
🔴 multiblock — 1 breaking change(s)
|
停止审查操作状态为 closed。根据代码审查技能规定:
此 PR 已关闭,无需发布审查。 |
No description provided.