第189章 ,/.

在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“']}}