『数据包中的标签(Tag)允许玩家使用JSON文件将物品、方块、流体、实体类型和函数分组,标签在原版 1.13 及以上版本中替代了矿物词典的功能。』
需要注意,这里的原版指的是Minecraft Java版,基岩版并没有什么矿物词典和这种类型的标签。
看起来很高端的样子啊?但其实这标签仅仅是一个官方逼死第三方的更高端的『矿物词典』。
和矿物词典一样,不同的物品也可以注册到同一个标签中,来使得不同模组的类似物品能够通用。
但在之前,矿物词典最多也仅仅能让物品在工作台中、熔炉中等特定功能性方块中才能通用,官方的标签却更上一层楼,使得类似物品几乎能在任何地方通用!
比如你可以给你自己开发的箭添加上arrows标签,你这个物品就可以被原版的弓和弩射出去;你可以给你自己的食物添加上fox_food标签,这个食物就可以被喂食给狐狸......
但官方的格局可不止仅仅限制在物品中,让我们把格局打开一点,你就会发现官方让Minecraft中的其他东西也能够用上标签来使得其他东西也能够通用。这些『其他东西』一共有十四类,加上物品就十五类了,包括:方块、实体、流体、游戏事件、物品、猫、生物群系、超平坦模式生成器配置、结构、世界预设、画种类、旗帜图案、乐器、兴趣点和函数。
标签在这些其他东西上的运作方式也一样:具有同一个标签的东西,就可以具有同样的功能或性质。
比如拥有frog_food标签的实体,就会被青蛙当成食物来吃;拥有lava标签的流体,就会具有岩浆的功能;拥有tick标签的函数,会在每游戏刻开始时运行;拥有village标签的结构,会像村庄一样生成......
讲了那么多,那这跟指令有什么关系呢?
回到最开始的那句话:『记分板、NBT和标签可以很好的解决这个问题。但在了解这三个东西之前,我们暂且没有除多弄命令方块以外的更好的办法。』
本小章还未完,请点击下一页继续阅读后面精彩内容!
这个问题是什么?就是你怎样才能在目标选择器中一次性选取多个类型的实体。
在基岩版我们可以通过family参数来选择,但在Java版呢?
Mojang在Minecraft Java1.14中开始为实体添加标签,这就代表着我们在Minecraft Java1.14及以上版本可以通过标签来对实体进行选择。
怎么选择呢?在目标选择器的type参数中,使用『#+命名空间+标签名称』即可。
比如要选中所有骷髅类型的实体,你只需要:
@e[type=#minecraft:skeletons]
这样子就可以选择包括骷髅、凋零骷髅等骷髅类的实体。