Repository navigation
Fix 1.21.8 predicate previews 修复方块预览属性组合 - #143
WhereisFff wants to merge 1 commit into
Conversation
WhereisFff
commented
Oct 4, 2026
- 修复预览状态的属性组合与范围匹配
- fixed [Bug] JEI内多方块合成和多方块转化配方显示异常 AnvilCraft#5206
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 |
代码审查摘要 — AnvilLib PR #143操作: 🔴 关键未发现本次改动新引入的阻塞性缺陷。改动方向、边界处理与既有
|
| 声称 | 状态 | 证据 |
|---|---|---|
| 修复预览状态的属性组合 | ✅ | 并集 → 折叠+交集过滤;模拟脚本 CASE 1:旧 2 个状态(含 facing=north 的 default),新 1 个正确状态 |
| 修复范围匹配 | ✅ | 模拟脚本 CASE 2:旧 applyToState → [],新 → [1,2];CASE 3(exact+ranged 混合组)旧给出不满足 match 的状态 (west,0),新给出 (west,1/2/3) |
fixed Anvil-Dev/AnvilCraft#5206 |
症状一(楼梯朝向周期性错误)机制吻合、可判定已修;症状二“产物的巨型铁砧时有时无”不由本改动路径解释(MultiBlockCraftingCategory 输出槽是固定 getResult();getRenderablePreviewState 是确定性映射),需在含此修复的构建上复测确认 |
复现证据脚本:/opt/data/workspace/pr143_predicate_sim.py(python3 /opt/data/workspace/pr143_predicate_sim.py),按 applyToState/match 语义逐字转写新逻辑并对旧逻辑对照,输出如上。
🧪 测试建议
| 被测目标 | 推荐测试场景 | 优先级 |
|---|---|---|
BlockStatePredicate.constructStatesForRender() |
单 exact matcher;exact 值==默认值(回归本次 bug,断言不含 default)+ 混合 exact/ranged 组;多 OR 组并集;properties=[[]] 空组;无法解析的属性值(断言不产出 default) |
🔴 |
| 不变式断言 | constructStatesForRender() 的每个状态都满足 testWithoutEntity()(本次被破坏的不变式,最值得固化) |
🔴 |
RangedMatcher.applyToState() |
仅 min / 仅 max / min+max / min>max / 值不可解析(property.getValue 为空) |
🟡 |
RangedMatcher.match() |
与 applyToState 边界的对称性(>=/<= 含端值) |
🟡 |
注意:
BlockState依赖Bootstrap.bootStrap()/注册表,普通 JUnit 直接跑会失败。可考虑 GameTest,或把“候选折叠 + 过滤”抽成不依赖 MC 类型的纯函数再单测。
结论: APPROVE(附评论) — 改动小而正确,根因表述与 issue 症状吻合,无阻塞问题。
合并前请决定 backport 范围(dev/1.21.1 等,否则 #5206 的报告版本仍受影响),并补上 constructStatesForRender() 的回归测试。
补充:gh 未认证(/opt/data/home/.config/gh/hosts.yml token invalid),本次未执行 gh pr edit。如需更精确的标题,建议:Fix predicate preview states: compose AND matchers and correct ranged bounds 修复方块预览属性组合与范围匹配。
由 Hermes Agent 审查
🌿 Roseau API Breaking Change Report
|
|
💾 Self-improvement review: Patched SKILL.md in skill 'blockstate-predicate-review' (1 replacement). · Patched references/predicate-preview-fix-series-and-branch-coverage.md in skill 'blockstate-predicate-review' (1 replacement). |
|
PR #143 状态为 closed,按 webhook 审查规则跳过,不产出审查意见(无评论发布)。
如需在重新开启或后续 PR 上审查,请再次触发。 |