在Minecraft中,每个物品都有自己的名字。比如『minecraft:diamond』这个物品就叫做『钻石』、『minecraft:air』就叫做空气......但物品的名字并不是一直都不变的,我们可以通过铁砧来更改物品的显示名称,比如把『钻石』更改为『煤炭』,把『空气』更改为『黄金』.......
但用铁砧改名字十分麻烦,那有没有一种方法,能够通过指令更改物品的名称呢?
在Java版中,是有的。这种方法就是:指定或修改物品的显示属性。
什么是物品的显示属性?我们知道,一个物品有自己的名称,自己的图标(方块类物品除外),还有这个物品显示出来的信息。比如这把钻石剑,它就具有如下的显示属性:
[图标]——钻石剑的图标,是一把蓝色的剑
钻石剑——钻石剑的名称
在主手时:——这个和下面这些都是该物品的信息
7 攻击伤害
1.6 攻击速度
minecraft:diamond_sword ——这个和下面的是打开高级提示框后才会显示的信息
NBT : 1个标签
(配图:104-1)
那我们该如何指定或修改物品的显示属性呢?很简单,通过物品的NBT标签来修改。
物品的display标签,是一个复合标签,用来自定义该物品的显示属性。大部分物品并没有这个标签,因为对于游戏来说显示属性弄个默认值就好。
display这个复合标签内,有两到三个标签:
color(Int整形)——这个标签仅仅对皮革盔甲才有用,它可以指定皮革盔甲是什么颜色。
Name(文本)——该标签对任何物品都管用,它可以自定义该物品的名称。这东西必须要使用JSON文本。在Java1.13以下版本中,可直接使用普通文本,但无法使用JSON文本。
Lore(文本列表)——该标签对任何物品都管用,它可以自定义该物品的描述。列表中的文本必须要使用JSON文本。在Java1.14以下版本中,可直接使用普通文本,但无法使用JSON文本
看起来还是很简单的,让我们试试能不能获得一个名为『这不是钻石』的钻石:
/give @s minecraft:diamond 1 0 {display:{Name:“这不是钻石“}}
\\适用于Java1.8~1.12.2\\
/give @s minecraft:diamond{display:{Name:“\“这不是钻石\““}}
\\适用于Java1.13~今\\
/give @s minecraft:diamond{display:{Name:'“这不是钻石“'}}
\\适用于Java1.14~今\\
上面给出了三条指令。这三条指令所适用的版本范围各有所不同,但功能都是一样的:会给你一个名叫『这不是钻石』的钻石。
值得注意的是,对于Java1.13及以上版本来说,Name的值虽然说『必须是一个JSON文本』,但如果你尝试下面的指令:
/give @s minecraft:diamond{display:{Name:“111“}}
这将会给你一个名叫『111』的钻石。注意!『111』在这并未使用JSON文本,但游戏成功识别了它。这是怎么一回事?
其实不止Name标签,在Minecraft Java版中任意必须使用JSON文本的地方,都具有类似的特性:当使用阿拉伯数字时,可不使用JSON文本。不信?试一试下面的指令:
/tellraw @s
你会发现你正常收到了这条消息,游戏并未报错。对了,基岩版则没有类似的特性,所以如果你在基岩版运行上面的指令还是会报错的。
回到正题。既然Name标签我们会使用了,那Lore标签呢?
也一样简单。比如我们要获取一个描述为『Never Gonna Give You Up』的13号唱片,只需要:
/give @s record_13 1 0 {display:{Lore:[“Never Gonna Give You Up“]}}
\\适用于Java1.8~1.12.2\\
/give @s music_disc_13{display:{Lore:[“Never Gonna Give You Up“]}}
\\适用于Java1.13.x\\
/give @s music_disc_13{display:{Lore:[“\“Never Gonna Give You Up\““]}}
本小章还未完,请点击下一页继续阅读后面精彩内容!
\\适用于Java1.14~今\\
/give @s music_disc_13{display:{Lore:['“Never Gonna Give You Up“']}}