(此章节于2022年7月13日重写)
近日,mojang在minecraft Java1.19.1版本中添加的player Reporting System(玩家举报系统)引起了轩然大波,许多minecraft玩家认为这是minecraft将要走向下坡路的前兆。
但这和我们暂时没有关系,相反,1.19荒野更新中的一些关于指令的更新更需要得到我们的注意。比如1.19版本中,mojang对指令\/locate的更新。
在第二十一章,我们了解到了\/locate指令的用法,也就是如下:
Java1.19版本前
\/locate <结构名>
基岩1.19.10版本前
\/locate <结构名>[仅在未生成的区块中查找:布尔值]
看起来相当的简单,mojang也这么认为。但mojang不只是认为这条指令简单,他们还认为这条指令简单到过于简陋。于是,在minecraft Java1.19和minecraft bedrock Edition 1.19.10更新中,mojan对\/locate指令进行了大更新,变成了如下模样:
Java1.19及之后版本
\/locate biome <生物群系Id>
\/locate poi <兴趣点Id>
\/locate structure <结构Id>
基岩版1.19.10及之后版本
\/locate biome <生物群系Id>
\/locate structure <结构Id>[仅在未生成的区块中查找:布尔值]
(注:基岩版的locate尚在更新中,有可能会发生变化)
看起来仍然相当的简单。
首先,\/locate原来的功能,也就是『定位特殊的建筑(结构)』,被移植到了structure子命令中,这里我们就不细讲了。然后,mojang将\/locatebiome这条指令合并到了\/locate,变成了biome子命令。最后,mojang添加了一个新的子命令,叫做poi,可以用于查找兴趣点。
唉,什么是兴趣点?它有什么用?为什么会让我们兴趣?
待会我们会讲到,先让我们来看看这个\/locatebiome命令又是什么。
\/locatebiome
作用:寻找指定生物群系
存在版本:Java1.16-1.19快照
需要权限等级:2
需要作弊:否
格式:
\/locatebiome <生物群系Id>
\/locatebiome这条指令添加于1.16版本,其功能类似于当时的\/locate指令,可以查找最近的生物群系并返回其位置。
也是很简单,但功能由于和locate太类似,mojang就让它合并过来了。
现在我们再来看看poi子命令。
上面说了,poi子命令可以查找兴趣点。兴趣点是什么?
兴趣点(point of interest),是在minecraft Java 1.14加入的一个东西,主要指的是能被村民或其他生物认领的方块(注:这是作者自己的定义,官方目前没有给出定义)。也就是说,并不(只)是你会对这东西感兴趣,而是村民以及其他的一些生物会对这东西感兴趣。
有哪些方块是兴趣点呢?
截止目前(Java1.19.1),有如下兴趣点:
\\\\能被村民认领的\\\\
高炉(armorer)
烟熏炉(butcher)
制图台(cartographer)
酿造台(cleric)
堆肥桶(farmer)
木桶(fisherman)
制箭台(fletcher)
床(home)
炼药锅(leatherworker)
讲台(librarian)
切石机(mason)
钟(meeting)
织布机(shepherd)
锻造台(toolsmith)
砂轮(weaponsmith)
\\\\跟蜜蜂有关的\\\\
蜂巢(bee_nest)
蜂箱(beehive)
\\\\跟玩家有关的\\\\
避雷针(lightning_rod)
磁石(lodestone)
下界传送门(nether_portal)
举个例子。比如我们要寻找最近的下界传送门,就可以运行如下指令:
\/locate poi minecraft:nether_portal
蛮简单的,这个兴趣点看起来好像很高大上,实际上也没什么嘛。
现在,新版本的\/locate算是介绍完了。但还有一些问题:
在Java新版本中,各种村庄的Id被拆分了,虽然这对我们搜索特定种类的村庄有很大帮助,但万一我们仅仅只是想找个村庄该怎么办?
答案很简单:用标签。
还记得我们在『本书第一次大修新增章1』中提到的标签吧?在minecraft Java 1.18.2更新中,mojang开始允许\/locate和\/locatebiome指令使用标签进行查找,就算\/locate经过了如此大的更新,这个功能也没砍。
那有哪些标签,怎么使用呢?
对于结构来说:
cats_spawn_as_black(会生成黑色的猫)
cats_spawn_in(会生成猫)
dolphin_located(会有海豚)
eye_of_ender_located(会有末地传送门)
mineshaft(是矿井)
ocean_ruin(位于海里的废墟)
on_ocean_explorer_maps(在海洋探险家地图上的)
on_treasure_maps(在宝藏地图上的)
on_woodland_explorer_maps(在林地探险家地图上的)
ruined_portal(是破败的传送门)
shipwreck(是船的废墟)
village(是村庄)
对于生物群系来说:
非常多,不列了,自己去minecraft wiki上查
对于兴趣点来说:
acquirable_job_site(村民的工作站)
bee_home(蜜蜂的家)
village(跟村庄有关的)
比如,我们要查找最近的村庄,我们可以这么做:
\/locate #minecraft:village (Java1.18.2)
\/locate structure #minecraft:village (Java1.19及之后)
我们要查找最近的山地类生物群系,我们可以这么做
\/locatebiome #minecraft:is_mountain (Java1.18.2)
\/locate biome #minecraft:is_mountain (Java1.19及之后)
那么本章就到这里了。接下来,我们将正式开始学习execute的使用。