Powerful overseer. - #4354
Conversation
Reason: script execution via -e/-c flag Reply |
Reason: Security scan — [HIGH] Pipe to interpreter: curl | python3: Command pipes output from 'curl' directly to interpreter 'python3'. Downloaded content will be executed without inspection. Reply |
|
All verifications complete. Compile-level references check out (all 16 series blocks exist on the target branch). Here is the review. 代码审查摘要 — PR #4354操作: edited 🔴 关键
|
| 声称 | 状态 | 对应实现 |
|---|---|---|
| resolved #1582(监督者加强) | ✅ | 4 级金字塔、底座扩展、特性区分、/overseer 命令 |
| 一个底座方块对应一个区块 | ✅(边界 ±1 偏移 bug 除外) | LoadChunkData.createLoadChunkData + scanPyramidBase |
| 最高 4 级 | ✅ | TIER_RADIUS {1,2,3,4}、MAX_LEVEL=4 |
| 铁/金/绿宝石/钻石升级但不加载 | ✅ | tier_0 tag + blockTier >= 1 过滤 |
| 皇家钢 = 强加载 + 随机刻 | ✅ | DEFAULT=0 |
| 浮霜 = 强加载不随机刻 | ✅ | FROST=NO_RANDOM_TICK |
| 下界合金/余烬 = +火焰蔓延 | ✅ | FIRE |
| 多相物质 = 不随机刻 + 火焰蔓延 | ✅ | MULTIPHASE |
| 超限合金 = 自然刷新 + 刷怪笼刷新 | TRANSCENDIUM 额外禁用了随机刻(描述未提) | |
| /overseer 显示等级/区块数/总数 | 总数跨维度统计与列表维度不一致 |
🧪 测试建议
| 被测目标 | 推荐测试场景 | 优先级 |
|---|---|---|
OverseerBlockEntity.tick() |
敲掉顶部方块→原样补回→断言重新 register(复现 stale 状态 bug) | 🔴 |
LoadChunkData.createLoadChunkData() |
监督者摆放在 x/z mod 16 ∈ {13,14,15,0,1,2} 边界位置,断言各底座方块实际区块被加载 | 🔴 |
ChunkFeatureManager |
两个维度同坐标区块,断言特性不串扰 | 🟡 |
ServerLevelRandomTickMixin |
浮霜/皇家钢同区块重叠时随机刻行为(确认 any-source-wins 是否符合预期) | 🟡 |
BaseSpawnerMixin / ChunkMapMixin |
无玩家在场时刷怪笼是否持续刷怪;玩家 >128 但 <2048 区块时自然刷新 | 🟡 |
结论: REQUEST_CHANGES — 架构与方向正确,但存在两个必须修复的逻辑缺陷:结构重建后不重新注册(静默丢失加载),以及区块边界处底座→区块映射错位。另有跨维度串扰与描述不一致问题建议一并确认。
由 Hermes Agent 审查
代码审查摘要 — PR #4354操作: opened 整体架构清晰: 🔴 关键
|
| 声称 | 状态 | 对应实现 |
|---|---|---|
| resolved #1582 | 无法从 diff 验证 issue 内容 | |
| 一个底座方块对应一个区块 | ✅ | createLoadChunkData 方块偏移→区块偏移(区块边缘 ±1 漂移见警告) |
| 最高 4 级 | ✅ | TIER_RADIUS {1,2,3,4}、MAX_LEVEL=4、tooltip 更新 |
| 更多方块可作底座 | ✅ | overseer_base_tier_0..3 四个 tag |
| 铁/金/绿宝石/钻石提升等级但不加载 | ✅ | blockTier >= 1 过滤,tier-0 不产生映射 |
| 皇家钢:强加载+随机刻 | ✅ | SourceFlags.DEFAULT |
| 浮霜:强加载、不随机刻 | ✅ | FROST + ServerLevelRandomTickMixin |
| 下界合金/余烬:+随机刻+火焰蔓延 | ✅ | FIRE |
| 多相物质:不随机刻+火焰蔓延 | ✅ | MULTIPHASE |
| 超限合金:自然刷新+刷怪笼刷新(2048 区块内) | ✅ | TRANSCENDIUM + ChunkMapMixin/DistanceManagerMixin/MobMixin 等(附赠禁用随机刻,待确认) |
结论: REQUEST_CHANGES — 核心机制与版本描述一致,但 ChunkFeatureManager 无维度隔离、removeAll 跨维度清空 + BE 不重注册这两个问题会让多维度使用场景(本模组的常态)出现区块泄漏和加载失效,建议修复后再合并。
🧪 测试建议
| 被测目标 | 推荐测试场景 | 优先级 |
|---|---|---|
LevelLoadManager.removeAll |
下界无玩家卸载后,主世界监督者仍保持加载/可解除加载 | 🔴 |
ChunkFeatureManager.* |
主世界 + 下界同坐标各放一个监督者,验证 feature 不串维度 | 🔴 |
OverseerBlockEntity.tick |
拆掉上部方块再复原(底座不变),验证重新加载 | 🟡 |
LoadChunkData.createLoadChunkData |
监督者放区块边界处,验证加载区块与底座方块实际所在区块一致 | 🟡 |
ServerLevelRandomTickMixin |
浮霜与皇家钢混合底座,验证内圈核心随机刻行为 | 🟡 |
OverseerCommand list |
多维度监督者时总数与分维度列表口径一致 | 🟢 |
由 Hermes Agent 审查
|
💾 Self-improvement review: Patched SKILL.md in skill 'minecraft-mod-pr-review' (1 replacement). |
|
💾 Self-improvement review: Patched references/chunk-loading-review-patterns.md in skill 'minecraft-mod-pr-review' (1 replacement). · Patched SKILL.md in skill 'minecraft-mod-pr-review' (1 replacement). |
|
交叉引用验证完毕,信息足够。整理审查意见。 代码审查摘要 — PR #4354操作: converted_to_draft(按流程仅报严重问题,comment 级别) 🔴 关键
|
| 声称 | 状态 | 对应实现 |
|---|---|---|
| 一个底座方块对应一个区块 | ✅ | scanPyramidBase → BlockOffsetMapping(dx,dz) → ChunkPos(center+dx, center+dz) |
| 监督者最高 4 级 | ✅ | TIER_RADIUS={1,2,3,4}、MAX_LEVEL=4 |
| 更多方块可作为底座 | ✅ | 4 个 overseer_base_tier_N tag |
| 铁/金/绿宝石/钻石提升等级但不加载 | ✅ | tier_0 tag;仅 blockTier>=1 加入 offsetMappings |
| 皇家钢强加载+随机刻 | ✅ | DEFAULT=0 → 不跳过随机刻 |
| 浮霜强加载不运算随机刻 | ✅ | FROST + ServerLevelRandomTickMixin |
| 下界合金/余烬强加载+随机刻+火焰蔓延 | ✅ | FIRE + ServerLevelFireSpreadMixin |
| 多相物质强加载+不随机刻+火焰蔓延 | ✅ | MULTIPHASE |
| 超限合金强加载+自然刷新+刷怪笼刷新(2048 区块) | ✅ | TRANSCENDIUM + NaturalSpawner/ChunkMap/DistanceManager/Mob/BaseSpawner mixins |
| /overseer 显示等级、加载区块数、总数 | 等级与单监督者区块数 ✅;总数跨维度串数(见 #5) |
结论: COMMENT — 整体设计与声称一致,实现质量良好。建议转正式 review 前优先处理 🔴#1(塔身恢复后不重新注册)和
由 Hermes Agent 审查
|
💾 Self-improvement review: Patched SKILL.md in skill 'minecraft-mod-pr-review' (1 replacement). · Patched references/chunk-loading-review-patterns.md in skill 'minecraft-mod-pr-review' (1 replacement). |
|
分析完成。所有交叉引用验证完毕,现在输出审查意见。 代码审查摘要 — PR #4354操作: synchronize 🔴 关键
|
| 声称 | 状态 | 对应实现 |
|---|---|---|
| 解决 #1582,重写加载方式 | ✅ | LoadChunkData(新)/ LevelLoadManager / ChunkFeatureManager |
| 一个底座方块对应一个区块 | 偏移映射实现(见警告),语义需确认 | |
| 监督者最高 4 级 | ✅ | TIER_RADIUS {1,2,3,4},tooltip "max 4 layers, 9x9 range" |
| 更多方块可作底座 | ✅ | tier 0-3 tags(铁/金/钻/绿宝石 → 皇家/浮霜 → 下界合金/余烬/多相 → 超限) |
| 铁金绿钻提升等级但不加载 | ✅ | getBlockTier >= 1 过滤 + getBlockSourceFlags |
| 皇家钢默认加载(强加载+随机刻) | DEFAULT flags — 依赖强加载区块原生 tickChunk 的假设(见警告) | |
| 浮霜强加载不随机刻 | ✅ | FROST=NO_RANDOM_TICK + ServerLevelRandomTickMixin |
| 下界合金+余烬:随机刻+火焰蔓延 | ✅ | FIRE flag + ServerLevelFireSpreadMixin |
| 多相物质块:不随机刻+火焰蔓延 | ✅ | MULTIPHASE flags |
| 超限合金块:自然刷新+刷怪笼刷新(2048区块内) | ❌ | 刷怪笼 ✅(BaseSpawnerMixin);自然刷新 🔴 失效(ThreadLocal 未 set) |
| /overseer 显示等级、加载区块数、总数 | ✅ | OverseerCommand + getOverseerChunkCount + getAllOverseerForcedChunkCount |
结论: REQUEST_CHANGES — 必须修复 🔴(CURRENT_SPAWNING_DIMENSION 从未 set 导致超限合金块的自然刷新特性静默失效),并确认强加载区块随机刻的运行时行为;其余警告项请逐条确认。
🧪 测试建议
| 被测目标 | 推荐测试场景 | 优先级 |
|---|---|---|
OverseerBlockEntity.tick |
跨维度同坐标监督者并存;结构破坏后 /overseer 显示 | 🔴 |
ServerLevelRandomTickMixin |
皇家钢 vs 浮霜区块随机刻差异;randomTickSpeed=0 游戏规则 | 🔴 |
ChunkFeatureManager 自然刷怪链路 |
超限合金块区块在玩家 >128 块外是否刷怪、怪物防消失 | 🔴 |
LevelLoadManager.forceChunk |
两个监督者重叠加载同一区块的增减计数 | 🟡 |
LoadChunkData.createLoadChunkData |
混合底座(tier0 填充 + tier1 加载)的区块集合与 flags | 🟡 |
由 Hermes Agent 审查
|
💾 Self-improvement review: Patched references/chunk-loading-review-patterns.md in skill 'minecraft-mod-pr-review' (1 replacement). · Patched SKILL.md in skill 'minecraft-mod-pr-review' (1 replacement). |
|
分析完成。以下是审查意见。 代码审查摘要 — PR #4354操作: synchronize 架构总览
🔴 关键
|
| 声称 | 状态 | 对应实现 |
|---|---|---|
| 一个底座方块对应一个区块 | ✅ | scanPyramidBase → BlockOffsetMapping(dx,dz,...) → chunk 偏移 |
| 监督者最高 4 级 | ✅ | TIER_RADIUS={1,2,3,4}、MAX_LEVEL=4、tooltip "max 4 layers, 9x9 range" |
| 更多方块可作为底座 | ✅ | overseer_base_tier_0..3 标签(铁/金/钻/绿宝石 + 系列方块 + 下界合金 + 多相 + 超限合金) |
| 铁/金/绿宝石/钻石提升等级但不加载 | ✅ | blockTier>=1 才加入 offsetMappings,tier_0 方块只过 isTierComplete |
| 皇家钢默认加载(强加载+随机刻) | ✅ | SourceFlags.DEFAULT=0 → 不跳过随机刻 |
| 浮霜强加载但不运算随机刻 | ✅ | FROST=NO_RANDOM_TICK + ServerLevelRandomTickMixin |
| 下界合金+余烬:随机刻+火焰蔓延 | ✅ | FIRE=ALLOW_FIRE_SPREAD(不含 NO_RANDOM_TICK)+ ServerLevelFireSpreadMixin |
| 多相物质:不随机刻+火焰蔓延 | ✅ | MULTIPHASE=NO_RANDOM_TICK|ALLOW_FIRE_SPREAD |
| 超限合金:自然刷新+刷怪笼刷新(玩家 2048 区块内) | 刷怪笼 ✅(BaseSpawnerMixin);自然刷怪 ❌(CURRENT_SPAWNING_DIMENSION 从未 set,DistanceManagerMixin 失效);despawn 距离 ✅(MobMixin) |
|
/overseer 命令显示等级/区块数/总数 |
✅ | OverseerCommand + getOverseerChunkCount/getAllOverseerForcedChunkCount |
| resolved #1582 | ✅ | 功能重做方向一致(issue 内容无法从 diff 验证) |
结论: REQUEST_CHANGES — 两个关键问题:① 超限合金"自然刷怪 2048 区块扩展"因 CURRENT_SPAWNING_DIMENSION 从未赋值而整体失效(功能声称未落地);② 监督者上部方块破坏后修复无法恢复区块加载(用户可见的恢复性 bug)。修复后建议实测验证:超限合金底座上无玩家(但 2048 区块内)时怪物是否自然刷新、监督者 MID/TOP 破坏再修复后是否恢复强加载。
🧪 测试建议
| 被测目标 | 推荐测试场景 | 优先级 |
|---|---|---|
OverseerBlockEntity.tick |
MID/TOP 方块破坏→修复后注册恢复;底座方块替换为同 tier/flags 方块(hash 不变不重复注册);tier_0 铁底座 4 层 vs royal 4 层的加载范围差异 | 🔴 |
ChunkFeatureManager 特性聚合 |
同一区块被 frost+royal 重叠加载 → 随机刻被跳过;ember+royal 重叠 → 火焰允许;多维度同坐标不串扰 | 🔴 |
LevelLoadManager.forceChunk 引用计数 |
两个监督者重叠加载同一区块,逐个移除 → 最后一个移除才 unforce | 🟡 |
BaseSpawnerMixin |
超限合金区块内无玩家时刷怪笼激活;royal 区块内刷怪笼保持原版行为 | 🟡 |
ServerLevelRandomTickMixin |
重入后调度刻/BE tick 仍执行;游戏规则 randomTickSpeed=0 时不干预 | 🟢 |
由 Hermes Agent 审查
|
💾 Self-improvement review: Patched references/chunk-loading-review-patterns.md in skill 'minecraft-mod-pr-review' (1 replacement). · Patched SKILL.md in skill 'minecraft-mod-pr-review' (1 replacement). |
Reason: Security scan — [HIGH] Pipe to interpreter: curl | python3: Command pipes output from 'curl' directly to interpreter 'python3'. Downloaded content will be executed without inspection. Reply |
|
All analysis complete. Here's my review: 代码审查摘要 — PR #4354操作: synchronize 🔴 关键问题1.
|
| 声称 | 状态 | 证据 |
|---|---|---|
| resolved #1582(监督者加强建议) | ✅ | 1底座=1区块、4级上限、更多底座、分级效果、/overseer 命令均在 diff 中实现 |
| 一个底座方块对应一个区块 | ✅ | BlockOffsetMapping(dx,dz) 直接作为区块偏移进入 createLoadChunkData |
| 最高 4 级 | ✅ | TIER_RADIUS = {1,2,3,4} + MAX_LEVEL = 4 |
| 更多方块可作为底座 | ✅ | overseer_base_tier_0..3 四个新 tag |
| 铁/金/绿宝/钻石提级不加载 | ✅ | tier-0 块 blockTier>=1 门控被排除出 mappings |
| 皇家钢=强加载+随机刻 | ✅ | DEFAULT flags(0),随机刻不跳过 |
| 浮霜=强加载不随机刻 | ✅ | FROST = NO_RANDOM_TICK |
| 下界合金/余烬=+随机刻+火焰蔓延 | ✅ | FIRE = ALLOW_FIRE_SPREAD |
| 多相=不随机刻+火焰蔓延 | ✅ | MULTIPHASE = NO_RANDOM_TICK|ALLOW_FIRE_SPREAD |
| 超限=自然刷新+刷怪笼刷新 | 实现齐全但整条自然刷新链路因 CURRENT_SPAWNING_DIMENSION 从未赋值而失效(见 🔴1) |
|
| /overseer 显示等级、加载区块数、总数 | ✅ | OverseerCommand + getOverseerChunkCount + getAllOverseerForcedChunkCount |
结论: REQUEST_CHANGES — 架构重构方向清晰、删除与生命周期处理干净,但超限合金块核心卖点"生物自然刷新"当前完全不可用(ThreadLocal 未赋值导致 spawn 候选链路全断),且修复不能只靠补一个 set()(getSpawnCandidateChunks 的调用时机在 spawnForChunk 之前),需要调整维度上下文的传递方式后再合入。
🧪 测试建议
| 被测目标 | 推荐测试场景 | 优先级 |
|---|---|---|
| 超限合金块自然刷新链路 | 玩家远离 128+ 格(2048 区块内)时超限金字塔区块仍生成生物;修复 ThreadLocal 后验证 getSpawnCandidateChunks 包含目标区块 |
🔴 |
ServerLevelRandomTickMixin |
浮霜/多相/超限区块随机刻停用且方块实体 tick 不受影响;皇家钢区块随机刻正常 | 🟡 |
引用计数 forceChunk |
两个监督者共享区块,先后拆除,确认最后一个释放时区块才真正卸载 | 🟡 |
| 监督者结构失效/恢复 | 拆装 MID/TOP 监督者方块后,金字塔配置不变时加载是否恢复(当前会失败) | 🔴 |
| 虫洞稳定器 | 3x3 加载区随机刻行为变更确认(现为开启) | 🟡 |
由 Hermes Agent 审查
|
💾 Self-improvement review: Patched references/chunk-loading-review-patterns.md in skill 'minecraft-mod-pr-review' (1 replacement). · Patched SKILL.md in skill 'minecraft-mod-pr-review' (1 replacement). |
|
两个关键问题均已确认。审查完成,输出审查意见。 代码审查摘要 — PR #4354(synchronize: Powerful overseer)操作: synchronize 已通过 🔴 关键问题
|
| 声称 | 状态 | 对应实现 |
|---|---|---|
| 一个底座方块对应一个区块 | ✅(近似) | offsetMappings → centerChunk + (dx,dz),中心区块恒加载 |
| 监督者最高 4 级 | ✅ | MAX_LEVEL=4、TIER_RADIUS={1,2,3,4} |
| 更多方块可作为底座 | ✅ | 4 个 tier tag 覆盖铁/金/钻/绿宝石/皇家钢/浮霜/下界合金/余烬/多相/超限 |
| 铁/金/绿宝石/钻石提升等级但不加载 | ✅ | blockTier >= 1 才生成 mapping,tier-0 仅作结构 |
| 皇家钢=强加载+随机刻 | ✅ | DEFAULT flags |
| 浮霜=强加载、无随机刻 | ✅ | FROST = NO_RANDOM_TICK |
| 下界合金+余烬=强加载+随机刻+火焰蔓延 | ✅ | FIRE = ALLOW_FIRE_SPREAD(随机刻为默认开启) |
| 多相物质=强加载、无随机刻、火焰蔓延 | MULTIPHASE 标志齐全,但无随机刻则火焰不会扩散,火焰蔓延实际无效 |
|
| 超限合金=强加载+自然刷新+刷怪笼刷新 | TRANSCENDIUM 标志齐全,但 CURRENT_SPAWNING_DIMENSION 未赋值 → 3 处 mixin 死代码,功能不完整(见 🔴#1) |
|
/overseer 显示等级/加载数/总数 |
✅ | OverseerCommand + getOverseerChunkCount + getAllOverseerForcedChunkCount |
结论: REQUEST_CHANGES — 架构重构方向正确、迁移干净,但存在两个功能性问题需修复:① 自然刷新特性因未赋值的 ThreadLocal 而半失效(3 处 mixin 死代码);② 监督者结构破坏后按原样修复时区块加载不会重新注册。
🧪 测试建议
| 被测目标 | 推荐测试场景 | 优先级 |
|---|---|---|
OverseerBlockEntity.tick |
敲掉 MID 格 → 补回同结构 → 断言 chunk 重新强加载(复现 🔴#2);纯 tier-0 底座 4 级 → 仅 1 区块 | 🔴 |
LevelLoadManager.forceChunk |
两个监督者共享同一区块 → 移除其一 → 区块仍加载;全部移除 → 卸载 | 🔴 |
ChunkFeatureManager |
不同维度同坐标注册互不干扰;同区块多源 skip/allow 聚合语义 | 🟡 |
ServerLevelRandomTickMixin |
浮霜区块:随机刻被跳过但方块刻/流体刻/实体刻仍执行 | 🟡 |
WormholeStabilizerHandler |
虫洞加载区随机刻行为变化确认(有意 or 回归) | 🟡 |
LoadChunkData.createLoadChunkData |
混合材质底座的 flag 并集、中心区块恒加载、偏移映射边界(监督者位于区块边缘) | 🟡 |
由 Hermes Agent 审查
|
💾 Self-improvement review: Patched references/chunk-loading-review-patterns.md in skill 'minecraft-mod-pr-review' (1 replacement). · Patched SKILL.md in skill 'minecraft-mod-pr-review' (1 replacement). |
|
All diff sections analyzed and cross-referenced with the target branch. Here is the review: 代码审查摘要 — PR #4354 (synchronize)操作: synchronize 📋 声称验证表
|
| 被测目标 | 推荐测试场景 | 优先级 |
|---|---|---|
LoadChunkData.createLoadChunkData |
多底座块同 chunk 标志聚合、中心块强制含 flags=0、tier 截断(tier N 不完整则 N+1 不参与) | 🔴 |
LevelLoadManager.forceChunk |
引用计数对称性:A/B 共享区块时 A 移除后 B 仍在、双双移除不重复 unforce | 🔴 |
OverseerBlockEntity.tick |
等级 2→1→0 迁移、破坏/重建底座、跨维度同坐标双监督者(当前会冲突) | 🔴 |
ServerLevelRandomTickMixin |
重入不递归、tickSpeed=0 不 cancel、frost 区块内玩家在场行为 | 🟡 |
ChunkFeatureManager 各 flag |
同一区块被 FROST 与 ROYAL 监督者重叠时 any-语义(skip 优先) | 🟡 |
/overseer list |
includeInactive 过滤、失效监督者 stale level、多维度计数 | 🟢 |
由 Hermes Agent 审查
|
💾 Self-improvement review: Patched references/chunk-loading-review-patterns.md in skill 'minecraft-mod-pr-review' (1 replacement). |
Reason: Security scan — [HIGH] Pipe to interpreter: curl | python3: Command pipes output from 'curl' directly to interpreter 'python3'. Downloaded content will be executed without inspection. Reply |
Reason: script execution via -e/-c flag Reply |
Reason: Security scan — [MEDIUM] Lookalike TLD detected: Domain uses '.dev' TLD which can be confused with file extensions; [MEDIUM] Lookalike TLD detected: Domain uses '.dev' TLD which can be confused with file extensions Reply |
|
I've completed a thorough analysis of the diff (35 files, 1956 lines), cross-referenced against the target branch ( 代码审查摘要 — PR #4354操作: edited 🔴 关键问题1.
ChunkPos targetChunk = new ChunkPos(centerChunk.x() + m.chunkOffsetX(), centerChunk.z() + m.chunkOffsetZ());后果:
修复建议:对每个底座方块用 2.
|
| 声称 | 状态 | 说明 |
|---|---|---|
| 底座方块对应区块加载 | 机制存在但偏移计算错误(🔴1) | |
| 本体区块默认加载+随机刻 | ✅ | centerChunk 恒定 flags=0 |
| 最高 4 级 | ✅ | TIER_RADIUS {1,2,3,4} + MAX_LEVEL=4 |
| 铁/金/钻石/绿宝石升级不加载 | ✅ | tier-0 不入 offsetMappings |
| 皇家钢强加载+随机刻 | ✅ | DEFAULT flags |
| 浮霜强加载不随机刻 | 标志正确但作用区块错位(🔴1) | |
| 下界合金/余烬强加载+随机刻+火焰蔓延 | ✅ | FIRE flags |
| 多相强加载不随机刻+火焰蔓延 | 无随机刻区块火焰无法传播( |
|
| 超限强加载不随机刻不火焰蔓延+双生物刷新 | ✅ | TRANSCENDIUM flags + 2048 区块限制(ChunkMapMixin) |
| 冲突优先级:不随机刻>火焰>刷新 | 逻辑正确但几乎不会触发(🔴1c) | |
| /overseer 显示等级/区块数/总数 | ✅ | 实现完整 |
结论: REQUEST_CHANGES — 区块偏移计算(🔴1)与 CHUNK_SOURCES 泄漏(🔴2)需修复后合并;其余为建议项。
🧪 测试建议
| 被测目标 | 推荐测试场景 | 优先级 |
|---|---|---|
LoadChunkData.createLoadChunkData |
偏移映射:断言目标区块 == ChunkPos.containing(blockPos) 相对中心偏移;多源 flags 合并 |
🔴 |
OverseerBlockEntity.tick |
结构拆毁→原样修复后能重新注册;等级 0~4 边界;底座混合 tier 方块 | 🔴 |
LevelLoadManager.forceChunk |
两监督者共享区块的引用计数增减;unload→reload 后计数归零 | 🟡 |
ServerLevelRandomTickMixin |
重入守卫(tickSpeed=0 不取消、无死循环);异常路径 finally | 🟡 |
| 世界卸载 | CHUNK_SOURCES/placedOverseers 清空断言 |
🔴 |
由 Hermes Agent 审查
|
💾 Self-improvement review: Patched references/chunk-loading-review-patterns.md in skill 'minecraft-mod-pr-review' (1 replacement). |
Reason: script execution via -e/-c flag Reply |
Reason: script execution via -e/-c flag Reply |
Reason: script execution via -e/-c flag Reply |
Reason: script execution via -e/-c flag Reply |
|
|
|
I reached the maximum iterations (90) but couldn't summarize. Error: <title>504 Gateway Time-out</title>504 Gateway Time-outopenresty
|
Reason: Security scan — [CRITICAL] Mass file deletion in a short window: 11 non-build files were deleted within 20s. A burst of deletions can be destructive (ransomware-like or an accidental recursive wipe).; recursive delete Reply |
|
💾 Self-improvement review: Patched SKILL.md in skill 'minecraft-mod-pr-review' (1 replacement). |
|
All verification complete. I have everything needed — here's the full review: 代码审查摘要 — PR #4354操作: edited(PR 描述更新,按流程重新验证全部声称) ✅ 验证说明(本次审查的交叉验证手段)
🔴 关键未发现阻断性问题。最危险的环节(8 个针对 vanilla 的 mixin 注入点)全部验证通过。
|
| 声称 | 状态 | 对应实现 |
|---|---|---|
| 一个底座方块对应一个区块(方块偏移=区块偏移) | ✅ | scanPyramidBase → BlockOffsetMapping(dx,dz,...) → createLoadChunkData 按 chunkOffset 映射 |
| 本体所在区块默认加载且运算随机刻 | ✅ | computeIfAbsent(centerChunk).add(0);注意中心底座为浮霜/余烬/多相/超限时中心区块继承其 flags(按优先级规则) |
| 最高 4 级 | ✅ | TIER_RADIUS {1,2,3,4},最大 9×9=81 区块 |
| 更多方块可作底座 | ✅ | tier_0..3 tags(新增 16+ 种方块) |
| 铁/金/绿宝/钻提升等级但不加载 | ✅ | blockTier >= 1 门控 + getBlockTier 返回 tag 索引 |
| 皇家钢:加载+运算随机刻 | ✅ | SourceFlags.DEFAULT(0) |
| 浮霜:加载+不运算随机刻 | ✅ | FROST = NO_RANDOM_TICK |
| 下界合金+余烬:加载+随机刻+火焰蔓延 | ✅ | FIRE = ALLOW_FIRE_SPREAD(不跳过随机刻) |
| 多相物质:加载+不随机刻+火焰蔓延 | ✅ | MULTIPHASE |
| 超限合金:加载+不随机刻+不火焰+自然刷新+刷怪笼刷新(玩家 2048 区块内) | ✅ | TRANSCENDIUM + BaseSpawner/ChunkMap/MobCategory/Mob/NaturalSpawner/DistanceManager 六个 mixin;TRANSCENDIUM_DESPAWN_DISTANCE=32768=2048×16 ✅ |
| 冲突时优先:不随机刻/火焰/刷新 | ✅ | any-wins 语义 |
| /overseer 显示等级、加载区块数、总数 | ✅ | OverseerCommand + getOverseerChunkCount/getAllOverseerForcedChunkCount |
🧪 测试建议
| 被测目标 | 推荐场景 | 优先级 |
|---|---|---|
OverseerBlockEntity.scanPyramidBase |
混合 tier 底座、tier-0 全底座(应仅 1 区块)、破坏单层后恢复 | 🔴 |
LevelLoadManager.forceChunk |
双监督者重叠区块的注册/注销计数对称性;与 /forceload 叠加 |
🔴 |
| 特征 mixin 组合 | 超限合金区块:无玩家时刷怪笼激活 + 远距离自然刷新 + 不消失;浮霜区块随机刻跳过;余烬区块火焰蔓延 | 🔴 |
ServerLevelRandomTickMixin |
重入 tickChunk(chunk,0) 后 BE/实体刻正常、随机刻确实被跳过 |
🟡 |
| 生命周期 | 监督者区块卸载→重载后重新注册;服务器重启后无残留 | 🟡 |
结论: COMMENT — 架构与实现质量高,mixins 目标全部验证有效,无阻断性问题。建议合并前处理
由 Hermes Agent 审查(mixin 目标已对照 MC 26.1.2 官方映射字节码验证)
git status or read_file to confirm.
• /tmp/unzipmini.js — [write_file] Write denied: '/tmp/unzipmini.js' is a protected system/credential file.
|
💾 Self-improvement review: Patched references/vanilla-api-signature-verification.md in skill 'minecraft-mod-pr-review' (1 replacement). · Patched references/chunk-loading-review-patterns.md in skill 'minecraft-mod-pr-review' (1 replacement). · Patched SKILL.md in skill 'minecraft-mod-pr-review' (1 replacement). |
|
分析完成。所有核心文件已通读,交叉验证了 26.1 API 签名、tag 生成一致性、mixin 注册完整性和残留引用。现在输出审查意见。 代码审查摘要 — PR #4354操作: 🔴 关键问题1. 2. // 分支 A(checkOverseerBlocks 失败):unregister 后不重置
if (!this.checkOverseerBlocks()) {
if (LevelLoadManager.checkRegistered(pos)) {
LevelLoadManager.unregister(pos, level);
}
return; // ← oldLevel / oldTierHash 保留旧值
}
// 分支 B(等级/底座变化):正确重置
if (this.oldLevel > -1 || LevelLoadManager.checkRegistered(pos)) {
LevelLoadManager.unregister(pos, level);
this.oldLevel = -1; // ✓
this.oldTierHash = 0; // ✓
}场景:监督者 MID/TOP 部分被破坏(BOTTOM 的 BE 存活, 3. 开发注释残留 — import net.minecraft.commands.Commands; // ← 新增:普通导入明显是辅助开发时的标记注释,需删除。
|
| 声称 | 状态 | 对应实现 |
|---|---|---|
| 1 底座方块 ↔ 1 区块(偏移映射) | ✅ | LoadChunkData.createLoadChunkData / scanPyramidBase |
| 本体所在区块默认加载+随机刻 | ✅ | chunkSources.computeIfAbsent(centerChunk).add(0) |
| 最高 4 级 | ✅ | TIER_RADIUS {1,2,3,4} / MAX_LEVEL = 4 |
| 更多底座方块(4 级 tag) | ✅ | overseer_base_tier_0..3.json + ModBlockTags |
| 铁/金/绿宝石/钻石提升等级不加载 | ✅ | getBlockTier() >= 1 才加入 mapping |
| 皇家钢:强加载+随机刻 | ✅ | SourceFlags.DEFAULT |
| 浮霜:强加载+不随机刻 | ✅ | FROST = NO_RANDOM_TICK |
| 下界合金/余烬:+随机刻+火焰蔓延 | ✅ | FIRE = ALLOW_FIRE_SPREAD |
| 多相物质:不随机刻+火焰蔓延 | ✅ | MULTIPHASE |
| 超限合金:不随机刻+不火焰+自然/刷怪笼刷新 | ✅ | TRANSCENDIUM |
| 冲突优先级(不随机刻>火焰>刷新) | ✅ | 按 chunk 聚合 OR |
/overseer 显示等级/加载区块数/总数 |
✅ | OverseerCommand + LevelLoadManager 统计方法 |
🧪 测试建议
| 被测目标 | 推荐测试场景 | 优先级 |
|---|---|---|
DistanceManagerMixin#onGetSpawnCandidateChunks |
主世界监督者 + 下界同坐标:候选列表不应含主世界 chunk | 🔴 |
OverseerBlockEntity#tick |
破坏 MID/TOP 后补回:应重新注册强加载 | 🔴 |
LevelLoadManager#forceChunk |
两监督者共享区块:一个移除后区块仍加载 | 🟡 |
ServerLevelRandomTickMixin |
浮霜底座区块:方块随机刻跳过但 BE tick 正常 | 🟡 |
BaseSpawnerMixin |
超限合金区块内刷怪笼无玩家激活 | 🟢 |
OverseerCommand |
多维度/跨世界 /overseer list 统计正确性 |
🟢 |
结论: REQUEST_CHANGES — 跨维度生成候选污染(#1)和 BE 状态未重置导致强加载永久丢失(#2)需修复;#3 注释残留顺手清理。其余功能实现与 PR 描述高度一致,质量良好。
由 Hermes Agent 审查
|
💾 Self-improvement review: Patched references/chunk-loading-review-patterns.md in skill 'minecraft-mod-pr-review' (1 replacement). · Patched SKILL.md in skill 'minecraft-mod-pr-review' (1 replacement). |
|
PR #4354 状态为 closed,按 webhook 规则(closed/labeled → 停止),不下载 diff、不执行审查、不发布评论。本次跳过。 |
* Powerful overseer. (#4354) * tag, lang and tooltip * overseer * dimension * style * style * style * style * style * style, spawning * style * Reimplement negative shape cullface 重新实现负形剔除 (#4333) * feat(cullface): reimplement negative shape cullface * cherrypick(assets): cp neutron irradiator assets * feat(confined): modify other confinement chamber, and remove the cullface of negative matter block * fix(confined): fix confined neutronium ingot dont have "light_emission": 15 * fix(merge): remove side effects when merge confict --------- Co-authored-by: XeKr <45423407+xekr@users.noreply.github.com> * Fix code style and warnings 修复代码样式和警告 (#4321) * chore(style): fix code style and warnings * fix: fix *valid* bug * chore(style): fix checkstyle * fix(merge): remove side effects when merge confict * feat(cfa): 重构天体巨构注册与锻星砧交互 - 新增可注册的巨构定义体系,统一管理巨构条件、环位、模型、材料、旋转逻辑与处理器,并注册内置巨构 - 将锻星砧巨构状态改为基于资源标识符持久化,兼容旧版名称和索引数据,统一处理建造、拆除、辅助巨构及激光需求 - 重构天体重构选项解析和客户端渲染,支持巨构模型动态替换、恒星同步旋转、玩家头颅天体渲染、恒星 Bloom 与扩展渲染包围盒 - 破坏锻星砧时保留方块实体内的库存、材料和控制器数据,避免已投入物品丢失 - 将物流接口提示信息改为基于版本号的 RPC 服务端快照同步,异步刷新寺庙需求、对撞机状态和接口库存 - 扩展行星资源配方的构建器、加权条目和嵌套随机选择,更新资源数据生成逻辑及供奉、荒地配方 - 修复光谱弹弓和光谱武器发射器模型,使基础物品模型与特殊渲染层正确组合 - 修正加速环默认方块状态及相关巨构处理器的状态判断 - 踢糠特供 shift 无视引力 --------- Co-authored-by: alpha-hhh <91364286+alpha-hhh@users.noreply.github.com> Co-authored-by: 秋水AuU_ <150409561+QiuShui1012@users.noreply.github.com> Co-authored-by: XeKr <45423407+xekr@users.noreply.github.com>
Uh oh!
There was an error while loading. Please reload this page.