custom_name='{"text":"神之剑"}' 这种 JSON 字符串写法不会报错, 而是把物品名显示成 {"text":"神之剑"} 这一串原文。 新版要写成 SNBT 复合标签:custom_name={text:"神之剑",color:"red"}。选物品、加附魔与自定义名称,生成 /give 指令。
免费在线数据更新至 26.2
正在加载工具…
/give 的物品数据写法在近几个版本里改了两次, 而且改错未必报错 —— 最常见的症状是名字变成一串 JSON 原文显示在物品上。先对版本,再抄写法。
custom_name='{"text":"神之剑"}' 这种 JSON 字符串写法不会报错, 而是把物品名显示成 {"text":"神之剑"} 这一串原文。 新版要写成 SNBT 复合标签:custom_name={text:"神之剑",color:"red"}。attribute_modifiers 会清掉武器自带的攻击力与攻速, 而且不报错 —— 武器就这么废了。1.21.5+ 要隐藏属性行请用 tooltip_display。minecraft:fire_resistant(1.21.2 起删除,改用 damage_resistant)、 各组件里的 show_in_tooltip 与 hide_tooltip(1.21.5 起删除, 并入 tooltip_display)。照抄旧教程会直接被服务端拒绝。# 1.21.5+:一把带名字、附魔、无限耐久的下界合金剑
give @s minecraft:netherite_sword[custom_name={text:"神之剑",color:"red",bold:true},enchantments={"minecraft:sharpness":5,"minecraft:unbreaking":3},unbreakable={}] 1
# 1.20.5–1.21.4:同一把剑
give @s minecraft:netherite_sword[custom_name='{"text":"神之剑","color":"red","bold":true}',enchantments={levels:{"minecraft:sharpness":5}},unbreakable={}] 1
# 1.20.4 及以下:旧 NBT
give @s minecraft:netherite_sword{display:{Name:'{"text":"神之剑","color":"red","bold":true}'},Enchantments:[{id:"minecraft:sharpness",lvl:5}],Unbreakable:1b} 1/give 只对玩家生效。要给盔甲架、箱子之类的非玩家目标放物品,用 /item replace entity 或 /item replace block。
/give 会因为选不到玩家而失败, 这不代表语法错。要验证语法,用 item replace entity @e[type=armor_stand,limit=1] armor.head with 物品[组件] 对一个盔甲架实际执行。1.20.5 起附魔挂在方括号组件里:/give @s diamond_sword[enchantments={"minecraft:sharpness":5}] 1;1.21.5 又去掉了外层 levels。1.20.4 及更早仍用花括号 NBT:{Enchantments:[{id:"minecraft:sharpness",lvl:5s}]}。本页顶部切换版本即可拿到对应写法,不用背。
1.21.5 起用 SNBT 文本组件:/give @s stick[custom_name={text:"魔杖",color:"red",italic:false}]。注意一定要写 italic:false,否则原版会自动加斜体。1.21.4 及更早写成单引号包住的 JSON:custom_name='{"text":"魔杖"}',两种写法互不兼容。
99% 是版本对不上:方括号组件语法要 1.20.5+,fire_resistant 在 1.21.2 被 damage_resistant 取代,show_in_tooltip 在 1.21.5 被 tooltip_display 取代。先用 /version 看服务端版本,再回本页切到同一档版本重新复制。