Java 1.20.4 NBT 与 1.20.5+ 物品组件
8 分钟阅读
Minecraft Java 1.20.5 将许多物品功能从旧版 NBT 移至项目组件中。该更改会影响给予命令、物品替换、战利品奖励、自定义名称、lore、enchantments、自定义数据和许多资源包工作流程。 NBTForge 使版本选择器保持可见,因为这不仅仅是格式化。
指南结果
关于何时使用旧版物品 NBT 以及何时使用现代项目组件的明确决策规则。
推荐路径
- 在编辑物品堆栈之前选择确切的 Java 版本。
- 构建该物品一次,然后在 1.20.4 和 1.20.5+ 之间切换,只是为了有意比较Output。
- 将自定义名称、lore、enchantments、不可破坏、稀有度、闪光和自定义数据视为版本敏感字段。
- 在支持多个世界时,使用 Project 条目并排保留旧版本和现代版本。
- 在与其他创建者共享的命令旁边记录目标版本。
当旧版物品 NBT 仍然是正确目标时
当命令必须在 Java 1.20.4 或更早版本中运行时,请使用旧版物品 NBT。在该世界系列中,许多项目详细信息位于旧的 NBT 结构内,并且组件Output不是目标语法。
迁移旧命令库时,旧Output也很有用。 Import 旧命令,比较解析的字段,选择新的目标版本后才重新生成。
当项目组件是正确的目标时
对 Java 1.20.5 及更高版本使用组件Output。组件语法是许多物品功能的现代格式,包括名称、lore、enchantments、自定义数据和显示行为。
如果您正在为当前 Java 版本构建新的地图内容,请从组件Output开始,并且仅在您知道旧服务器需要时才生成旧语法。
- 现代 Java 物品命令应使用所选的当前版本生成。
- 战利品和奖励工作流程应使用与世界datapack相同的版本。
- 除非您有意迁移,否则请勿将旧版 Give 命令与组件时代的项目修改器混合使用。
如何安全比较
切换版本可以更改字段名称、嵌套,有时还可以更改哪些字段是可表示的。在版本切换后使用Output差异面板,而不是通过眼睛扫描长命令。
对于共享模板,请将版本保留在文章标题、预设名称或 Project 条目名称中。一个名为“奖励剑”的命令是不明确的;名为“奖励剑 Java 1.21”的命令更容易支持。
运送Copy 的工件
使用本指南来生成玩家或地图制作者将实际运行的工件:Copy 的命令、订购的 Project 包或datapack资源。最终审查应该发生在 Copy 的Output上,而不仅仅是可编辑的构建器状态。
当工作流对版本敏感时,请在命令旁边标记目标版本。当它使用选择器、记分板、bossbars、标签、loot table或项目顺序时,请在发布设置之前在干净的世界中测试这些依赖项。
- 来自 Output 的 Copy 用于一个命令,来自 Project 的订购包。
- 将 Java、Bedrock 和快照变体分开。
- 首先用无害的Output测试破坏性的选择器。
- 当指南成为规范工作流程时更新相关预设。
相关指南与预设
常见问题
Java 1.20.5 Output总是更好吗?
仅适用于运行 1.20.5 或更高版本的世界。较旧的 Java 世界需要旧语法,因此正确的Output取决于目标世界。
我可以保留这两种格式吗?
是的。为旧版本和现代版本保存单独的 Project 条目,清楚地标记它们,并在底层项目设计更改时更新这两个条目。
本指南什么时候应该成为 Project 包?
当工作流需要多个命令、有设置和清理顺序或测试后必须再次编辑时,请使用 Project。一次性命令可以保留在 Output 中。