这样子获得一个钻石剑,把光标放在提示消息上,也会出现一样的效果。
最后一个:show_entity
show_entity这个和show_item差不多,value值也是字符串,仍然需要转义,只不过从物品变成了实体而已:
{“text“:“快摸我!“,“hoverEvent“:{“action“:“show_entity“,“value“:“{}“}}
那么对象里面该填啥呢?可以填实体的name(名字)、type(种类)、tag(NBT标签)和id(UUID)。
这三个属性可以方便我们“伪造”出一个虚拟的实体,比如我们最基础的可以伪造一名叫做“人”的玩家:
{“text“:“快摸我!“,“hoverEvent“:{“action“:“show_entity“,.“value“:“{name:\“人\“,type:\“minecraft:player\“}“}}
但是当你把光标放在上面之后,你就会发现:“唉,咋啥都没有呢?”
别慌,我们可以再填一个id:
{“text“:“快摸我!“,“hoverEvent“:{“action“:“show_entity“,“value“:“{name:\“人\“,type:\“minecraft:player\“,id:\“b5bef018-4307-48c8-894c-391f7bc3d8db\“}“}}
运行之后,唉还是没有出现。
这到底是怎么回事?
额,这个作者也不知道,但估计是版本的问题,于是作者换了一个版本(1.13.2到1.12.2):
/tellraw @a {“text“:“快摸我!“,“hoverEvent“:{“action“:“show_entity“,“value“:“{name:\“人\“,type:\“minecraft:player\“,id:\“b5bef018-4307-48c8-894c-391f7bc3d8db\“}“}}
结果还是不行。
那么或许我们可以换一种思路——使用真实存在的玩家行不行?
为此作者又测试了一下,还是不行。
那就算了吧,可能是特性,毕竟如果错了,起码应该还有一个Invalid Entity的提示信息,啥也不显示估计是真的游戏bug了。
那么这就代表着本章结束了吗?
不,还没有!
Minecraft 1.16更新,Mojang不用了value(我们还可以用,是支持的),转而使用了contents参数。contents参数和value类似,但有些地方有稍稍改进,比如show_item和show_entity就再也不是字符串了,所以我们的显示钻石剑就要被迫改成:
{“text“:“快摸我!“,“hoverEvent“:{“action“:“show_item“,“contents“:{“id“:“minecraft:diamond_sword“,“Count“:1}}}
可以发现,1.16的NBT更加JSON了,参数都要加上引号了。
那么我们的show_entity能用了吗?可以测试一下:
/tellraw @a {“text“:“快摸我!“,“hoverEvent“:{“action“:“show_entity“,“contents“:{“name“:“人“,“type“:“minecraft:player“,“id“:“b5bef018-4307-48c8-894c-391f7bc3d8db“}}}
结果还是不行,但既然到了最新版本还不行,这是否代表着我们是填对的,只不过.......
没有可以显示的东西?
(注:1.16版本,实体的name标签已经支持了JSON文本。)