Skip to content

Deprecated old item bar registration names have been identified and re-mapped. 标记并重新兼容了已弃用的旧版物品栏注册名 - #4499

Merged
TBPig merged 3 commits into
Anvil-Dev:dev/1.21/1.6from
PigeonNian:FIXS/1.21/1.6
Aug 21, 2026
Merged

Deprecated old item bar registration names have been identified and re-mapped. 标记并重新兼容了已弃用的旧版物品栏注册名#4499
TBPig merged 3 commits into
Anvil-Dev:dev/1.21/1.6from
PigeonNian:FIXS/1.21/1.6

Conversation

@PigeonNian

Copy link
Copy Markdown
Contributor
  • 这下附属不会炸了

Pigeon_Nian added 2 commits August 21, 2026 20:37
…BLOCKS

- 添加了 ANVILCRAFT_BUILD_BLOCK 的弃用声明
- 将 ANVILCRAFT_BUILD_BLOCK 指向现有的 ANVILCRAFT_BUILDING_BLOCKS
- 保持代码向后兼容,便于逐步迁移使用新常量名称
- 将 ANVILCRAFT_TOOL 重命名为 ANVILCRAFT_TOOLS_AND_UTILITIES,并添加弃用注解
- 将 ANVILCRAFT_FUNCTION_BLOCK 重命名为 ANVILCRAFT_FUNCTIONAL_BLOCKS,并添加弃用注解
- 将 ANVILCRAFT_BUILD_BLOCK 重命名为 ANVILCRAFT_BUILDING_BLOCKS,并添加弃用注解
@Gugle2308

Copy link
Copy Markdown
Collaborator

代码审查摘要 — PR #4499

操作: opened
范围: 1 个文件 (1 Java) / 20 行 diff — ModItemGroups.java 新增 3 个 @Deprecated 兼容别名常量

变更内容

为最近创造模式标签页重构(3a378853c,已随 snapshot.2175 发布)中被重命名的旧字段补回别名:

旧字段名(已弃用) 新字段名(实际引用)
ANVILCRAFT_TOOL ANVILCRAFT_TOOLS_AND_UTILITIES
ANVILCRAFT_FUNCTION_BLOCK ANVILCRAFT_FUNCTIONAL_BLOCKS
ANVILCRAFT_BUILD_BLOCK ANVILCRAFT_BUILDING_BLOCKS

✅ 与仓库历史交叉验证(已核对 dev/1.21/1.6

  • 旧名精确匹配:重构提交父版本(3a378853c^)中旧字段确为 ANVILCRAFT_TOOL / ANVILCRAFT_FUNCTION_BLOCK / ANVILCRAFT_BUILD_BLOCK,三个别名与原历史名字完全一致,无拼写偏差。
  • 覆盖完整:重构前公开字段共 4 个,其中 ANVILCRAFT_INGREDIENTS 未更名(现行分支第 49 行仍在),无需别名。3 个被重命名者全部覆盖,无遗漏。
  • 注册键不变:旧的 DF.register("tools_and_utilities"/"functional_blocks"/"building_blocks") 与新 holder 的 AnvilCraft.of(...) 键完全一致,getKey() 返回值与重构前相同。
  • 字段类型一致DeferredHolder<CreativeModeTab, CreativeModeTab>,别名直接引用同类型静态字段,无桥接/转换问题。
  • 静态初始化顺序安全:别名声明在 ANVILCRAFT_TOOLS_AND_UTILITIES(第 47 行)、ANVILCRAFT_FUNCTIONAL_BLOCKS(第 51 行)、ANVILCRAFT_BUILDING_BLOCKS(第 53 行)之后,不存在前向引用。
  • 无冲突git grep 确认 mod 内其他代码无同名旧标识符引用残留,别名不会与任何静态导入冲突。

⚠️ 警告(非本 PR 引入,但影响兼容目标)

  • ANVILCRAFT_TOOL 在分区模式下的运行时解析:默认 registerSectionedTabs() 只注册 functional_blocks / building_blocks / items 三个 tab,"tools_and_utilities" 键仅在 useLegacyCreativeTab 配置开启时注册。若附属代码不仅编译引用、还在运行时执行 ANVILCRAFT_TOOL.get(),分区模式下仍会解析失败——这与新字段 ANVILCRAFT_TOOLS_AND_UTILITIES 本身的问题相同,属重构设计遗留。FUNCTION_BLOCK / BUILD_BLOCK 两个别名对应的键在分区模式下已注册,运行时无此问题。若目标是"附属完全不炸",可考虑后续在 sectioned() 分发器里对遗留 tab 键做回退映射。

💡 建议

  • ModItemGroups.java — 给弃用字段补 javadoc @deprecated 指向替代字段(如 @deprecated use {@link #ANVILCRAFT_TOOLS_AND_UTILITIES}),IDE 里能给出明确的迁移提示,比裸 @Deprecated 更友好。可选加 @Deprecated(since = "...")

🟢 看起来不错

  • 改动极小、目标明确、与历史命名精确对齐,是可复用的"改名兼容垫片"正解;别名指向同一 holder 实例,不会产生重复注册。

结论: APPROVE — 3 个别名与 git 历史逐一吻合(名字、类型、注册键三层一致),编译级兼容完整恢复,无阻塞问题。运行时 caveat 属重构设计遗留,建议作者后续跟进 legacy tab 键回退映射。


由 Hermes Agent 审查

@Gugle2308

Copy link
Copy Markdown
Collaborator

💾 Self-improvement review: Patched SKILL.md in skill 'registry-driven-refactor-pr-review' (1 replacement).

- 更新 gradle/libs.versions.toml 中的 anvilib 版本号
- 在 ModItemGroups 中添加旧版命名的兼容说明
- 标记旧版命名为 @deprecated,建议新代码使用新版命名
- 兼容旧附属调用,保证向后兼容性
@TBPig
TBPig merged commit 9816b05 into Anvil-Dev:dev/1.21/1.6 Aug 21, 2026
2 checks passed
@Gugle2308

Copy link
Copy Markdown
Collaborator

PR #4499 事件类型为 closed,按审查规则(action 为 closed/labeled 时停止,不发布评论),本次不执行 diff 分析,也不输出审查意见。

跳过审查。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants