物品预设
Java 1.20.4 物品 NBT 预设指南
Java 1.20.4 物品 NBT 预设指南如今是一套完整的 Give 工作流程,而不再是模板化的命令说明。当地图或服务器有意保留 Java 1.20.4 或更早的语法时,请使用这个预设。它给作者提供了一个面向旧版物品 NBT 的安全审阅界面,又不会让这种输出污染到 Java 1.20.5+ 的组件命令。本文把设置字段、输出审阅、Project 归位与结果捕获放在一起呈现,让命令在成为地图设置、事件触发器或可复用 Command Pack 一部分之前,能被轻松审查。真正有用的工作流是对比。请把目标版本、显示名称、描述文本 (lore)、附魔、unbreakable 标记和旧版 NBT 负载都保持可见,这样当 Project 日后迁移到组件时代的 Minecraft 版本时,命令就可以被重新构建出来。
预设结果
一条旧版 Java 1.20.4 `/give` 命令,与现代组件输出保持彼此独立。
输出
旧版 Java 1.20.4 物品 NBT 命令
/give @p minecraft:diamond_sword{display:{Name:'{"text":"Legacy Blade","color":"gold","italic":false}',Lore:['{"text":"Java 1.20.4 NBT item","color":"gray","italic":false}']},Enchantments:[{id:"minecraft:sharpness",lvl:5s}],Unbreakable:1b,nbtforge:{legacy_item:1b}} 1The longest command line is 267 characters, 11 over the 256-character chat input limit. Pasting it into chat can truncate the line and make Minecraft report a syntax error even when the generated command is valid.
- Use a Command Block: run
/give @s command_block, place it, then paste this command into the block command field. - Use a
.mcfunctionfor a reusable datapack: save the line without the leading slash atsaves/<world>/datapacks/<pack>/data/<ns>/function/<name>.mcfunctionwith a minimalpack.mcmeta, run/reload, then run/function <ns>:<name>. Do not paste.mcfunctioncontent into chat.
预设截图
构建预设
- 打开 Give 工作台,把目标版本设为 Java 1.20.4。
- 重新表达这件物品的意图,而不是闷头改一条复制来的命令。
- 添加自定义名称、描述文本 (lore)、附魔以及耐久行为。
- 把旧版 NBT 输出和现代组件输出分开来审阅。
- 把这个旧版变体保存到 Project,并在标题里写清楚目标版本。
- 在把同一张地图迁移到 Java 1.20.5 或更高版本之前,先规划好用组件重写这条命令的方案。
为什么这个 Give 预设应该归入 Project
当地图或服务器有意保留 Java 1.20.4 或更早的语法时,请使用这个预设。它给作者提供了一个面向旧版物品 NBT 的安全审阅界面,又不会让这种输出污染到 Java 1.20.5+ 的组件命令。
真正有用的工作流是对比。请把目标版本、显示名称、描述文本 (lore)、附魔、unbreakable 标记和旧版 NBT 负载都保持可见,这样当 Project 日后迁移到组件时代的 Minecraft 版本时,命令就可以被重新构建出来。一条复制出去的命令,只有在其周围的假设全部可见时才真正有用:选择器范围、世界状态、数据包内部顺序,以及最终会被粘贴进 Minecraft 的确切输出。请把这个预设当作一个检查点,让这些细节都能在命令离开 NBTForge 之前被审视一遍。
整组示意图正是围绕这种审视方式构建的。第一张截图展示工作台状态,第二张截图调出会改变玩家面向行为的字段或配套模块,输出截图则让最终命令或命令对保持可见。当预设具备可见结果时,游戏内截图会在一个已恢复的测试世界中确认相同的思路,而不是依靠通用覆盖层。
测试与范围检查
不要把这种旧版物品 NBT 直接粘进现代组件工作流里,并假定它能干净地迁移。请把 1.20.4 的命令当作意图来源,等目标服务器发生变化时,再用组件把它重写一遍。
用范围狭窄的选择器和干净的世界状态先做一次冒烟测试。环境、工具、传送和反馈类命令看起来无害,却往往会影响所有玩家或整个世界。先确认命令只改变了你期望的状态,再把准确的输出保存到对应的设置行或后续行旁边,让它的存在理由一目了然。
如果命令会成为函数文件或命令方块链的一部分,请测试复制出去的成品,而不是只验证实时的工作台状态。这样才能抓出陈旧的选择器、错乱的命令顺序、被漏掉的设置行,以及那些只是因为上一次测试残留状态才看似生效的效果。
- 在完整数据包接受审阅之前,把选择器范围保持得足够窄。
- 把世界设置类命令排在遭遇专属的覆盖命令之前。
- 把反馈类命令紧挨着触发它们的状态变化一起保存。
下一步去哪里
把旧版命令和现代替代命令并排保存,让审阅者在迁移之前能够把两种输出直接对照。
想了解现代路径,可以对照Java 1.21 物品组件预设指南和旧版 Java 命令预设迁移。
FAQ
我可以把这条 Give 命令粘贴到聊天里吗?
如果选择器安全、命令行也很短,做单条命令冒烟测试通常没问题。要实现可重复的地图行为,请把它保存到 Project,再复制带顺序的数据包输出或函数风格的输出。
为什么这组示意图全是 UI?
这个预设产出的是 JSON、Project 组织或审阅流程,而不是世界中可见的实体物体。真正有用的证据是工作台状态、输出,以及它在 Project 中的归位。
在分享这个预设之前,我应该检查什么?
检查选择器范围、命令顺序、目标版本,以及这条命令究竟属于设置、遭遇逻辑、反馈还是清理。这些类别决定了它在 Project 数据包中应归入哪个位置。
打开这个工作流
从相关 Give 工作台开始,然后按你的世界调整预设字段。