为什么您的 Minecraft 命令不起作用
9 分钟阅读
大多数损坏的命令会因以下四个原因之一而失败:命令针对错误的 Minecraft 版本、选择器不匹配任何内容、JSON 或 NBT 格式错误,或者命令在 Bedrock 中仅使用 Java 数据。 NBTForge 通过将支持的命令重建到键入的字段、显示警告以及在编辑时保持Output可见来提供帮助。
指南结果
可重复的命令调试过程,可在再次粘贴之前隔离语法、目标、版本和版本问题。
推荐路径
- 将命令粘贴到导入栏中,然后检查 NBTForge 是否可以将其路由到可视模块。
- 设置 Edition 和 Version 以匹配将运行命令的环境。
- 在更改字段之前,请阅读Output警告,尤其是在 Java 和 Bedrock 之间移动时。
- 在指责 NBT 有效负载之前,使用简单的测试命令单独检查目标选择器。
- 每次修复后使用 Diff 以便您知道命令的哪一部分实际发生了更改。
从版本不匹配开始
从当前 Java 世界Copy 的命令可能会在 Java 1.20.4 或更早版本中失败,因为项目组件语法尚不存在。相反的情况也很常见:旧物品 NBT 可以被旧世界接受,但在 1.20.5 物品组件更改后会失败或表现不同。
首先设置NBTForge版本,然后重新生成Output。如果命令在版本切换后改变形状,请将其视为真正的语法差异而不是修饰性重写。
- 对于旧版物品 NBT 示例,请使用 Java 1.20.4 或更早版本。
- 使用 Java 1.20.5+ 进行组件样式项目Output。
- 仅当 Bedrock 语法支持命令系列时,才使用 Bedrock Stable。
将选择器错误与有效负载错误分开
当选择器不匹配任何实体或匹配错误的玩家时,有效的命令可能会出现损坏。在调试长召唤或给出有效负载之前,使用一个小命令(例如 title、tellraw 或effect)测试选择器。
当选择器包含距离、分数、标签、团队或 NBT 筛选器时,请一次删除一个筛选器,直到命令再次开始匹配。然后以尽可能小的步骤重新添加过滤器。
检查报价和嵌套数据
长命令通常会中断嵌套的 JSON 文本组件、转义引号、物品名称、lore 行或手写 NBT。如果Command Pack含可见的播放器文本,请在可视化编辑器中重建该文本,而不是手动编辑引号字符。
NBTForge 在导入后最有用,因为它将大字符串转换为较小的类型字段。编辑一个字段,检查 Output,并避免一次更改多个嵌套部分。
- 名称和 lore 通常会失败,因为 JSON 文本是双重转义的。
- 当页面文本包含未转义的引号时,书籍可能会失败。
- 当大括号或方括号未按正确顺序闭合时,自定义数据可能会失败。
运送Copy 的工件
使用本指南来生成玩家或地图制作者将实际运行的工件:Copy 的命令、订购的 Project 包或datapack资源。最终审查应该发生在 Copy 的Output上,而不仅仅是可编辑的构建器状态。
当工作流对版本敏感时,请在命令旁边标记目标版本。当它使用选择器、记分板、bossbars、标签、loot table或项目顺序时,请在发布设置之前在干净的世界中测试这些依赖项。
有关调试的实时示例,请比较 僵尸骑蜘蛛命令预设、spider jockey召唤命令预设 和 火焰皇帝火BOSS战利品预设。
- 来自 Output 的 Copy 用于一个命令,来自 Project 的订购包。
- 将 Java、Bedrock 和快照变体分开。
- 首先用无害的Output测试破坏性的选择器。
- 当指南成为规范工作流程时更新相关预设。
相关指南与预设
常见问题
为什么命令在一个世界中有效,但在另一个世界中无效?
最常见的原因是 Minecraft 版本或版本不匹配。即使命令看起来相似,Java 项目语法、快照功能和 Bedrock 命令支持也可能有所不同。
我应该手动修复长命令吗?
仅适用于微小的编辑。对于长项目、召唤、文本或datapack命令,导入命令并以可视方式编辑字段,以便更轻松地查看引用转义和嵌套数据。
本指南什么时候应该成为 Project 包?
当工作流需要多个命令、有设置和清理顺序或测试后必须再次编辑时,请使用 Project。一次性命令可以保留在 Output 中。