第189章 ,/.

假设现在将钻石扔到你的脚下,你会发现:钻石在落地后并没有马上被你捡起,而是过了一两秒之后,才被你捡起来。

(如果在很土豆的服务器,这个时间会更长)

为什么会这样呢?

就是因为PickupDelay标签。

PickupDelay标签的数据类型也是Short短整型,它的值代表着掉落物剩下不能被捡起的时长,每游戏刻它的值都会减少1,当它的值减到0时就代表掉落物可以被玩家捡起。

就因为这个标签,导致你扔出去东西后不会立马回到你的身上,而是要等一会儿。

如果你将这个值设定为,那恭喜你——你永远也捡不起这个钻石了,因为设定为后,这个值将不再会减少。

Item标签的数据类型是复合标签,它存储着该掉落物的核心——物品的信息。那这物品的信息到底是通过哪些标签储存的呢?

接下来,容许我隆重介绍Minecraft中三大通用标签之一的:

物品通用标签

『物品通用标签』具有下面几个标签:

Count(Byte字节型)——物品堆叠的数量。

Slot(Byte字节型)——物品所在的栏位(很多情况下不会有这个标签)。

id(String文本|JE1.8前只支持数值)——物品命名空间ID。神奇的是如果你不填,那么游戏会把物品认成石头。

Damage(扁平化中被换职|Short短整型)——物品数据值

tag(复合标签)——关于当前物品的额外信息,我们前几章了解的各种物品标签其实都存储在这个复合标签里面。

举个例子,假设你的副手拿着三颗附魔了锋利I的钻石,那么这三颗钻石的物品NBT标签就是:

本小章还未完,请点击下一页继续阅读后面精彩内容!

{Count:3b,Slot:-106b,id:“minecraft:diamond“,tag:{Enchantments:[{id:“minecraft:sharpness“,lvl:1}]}}

\\适用于Java1.13及以上版本\\

{Count:3b,Slot:-106b,id:“minecraft:diamond“,Damage:0s,tag:{ench:[{id:16,lvl:1}]}}

\\适用于Java1.8~1.12.2版本\\

其中,『Count:3b』代表有3个物品,『Slot:-106b』代表该物品在副手栏位(副手栏位的号码为-106,注意这里的栏位号码不等同于栏位ID),『id:“minecraft:diamond“』代表该物品是钻石,『tag』下的『Enchantments或ench』规定了该物品的附魔情况。对于扁平化前的版本来说,『Damage:0s』还代表着该钻石的数据值为0。

『物品通用标签』中唯一需要注意的是id标签,id标签在MC历史上有很多改变。在Java1.8以前,它的数据类型为Short短整型,存储的是物品的数字ID。而1.8之后,Mojang渐渐抛弃了数字id,id标签的数据类型也就变成了String文本(字符串)类型,用来存储物品的命名空间ID。