
作为一个在《我的世界》里泡了上千小时的老玩家,我最烦的就是朋友在服务器里到处乱放船,那玩意儿不像矿车还能自动回收,船一扔就是一堆实体挤在海岸线或者河道里,既占内存又碍眼。要清掉它们,最简单粗暴的指令就是“/kill @e[type=boat]”。你站在任意位置输入这一串代码,回车一敲,视野范围内所有未被卸载的船就会瞬间消失,连个木头渣都不留。注意这指令是针对全部维度的,包括主世界、地狱甚至末地里的船,所以别在队友正在远航时乱用,否则你会听到一阵哀嚎。
进阶技巧,精准锁定目标船。
你可能会想,我只是想清掉自家码头那几条破船,不想把远方朋友刚造好的豪华游轮也弄没。这时候就需要加上选择器参数。比如“/kill @e[type=boat,distance=..10]”就能把以你为中心半径10格内的船全部干掉。如果想在一个特定坐标点附近清除,更稳妥的方法是先用“/tp”传过去,再输入带距离限制的指令。还有种情况是只清除某种木材的船,但原版指令里没有按材质筛选的功能,你只能靠区域限制来变通。假如你的基岩版服务器里船多到卡顿,还可以用“/kill @e[type=boat,name=橡木船]”这种形式吗?实际上船的名称在默认情况下是没有自定义的,所以这个参数不生效,唯一靠谱的还是带距离的选择器。
版本差异,Java版与基岩版大不同。
Java版和基岩版的指令系统有细微差别,老玩家必须区分。在Java版1.13以后,船被归为实体类型“minecraft:boat”,所以完整写法是“/kill @e[type=minecraft:boat]”。不过你直接写“boat”也能识别,因为系统会自动补全命名空间。基岩版则简单很多,直接“/kill @e[type=boat”即可,但基岩版的船类型里还包括运输船(带箱子的那种),它的类型是“chest_boat”,所以如果你只想清普通船,得加上“type=boat”,而运输船则要单独处理。记住,基岩版里运输船和普通船是两种实体,一起清除的话可以用“/kill @e[type=boat,type=chest_boat”吗?不对,这样写会报错,正确做法是用“/kill @e[type=boat,type=chest_boat”的替代方案其实是“/kill @e[type=boat]”之后再来一次“/kill @e[type=chest_boat]”。最省事的是用“/kill @e[family=boat]”,但基岩版里这个family标签不一定所有版本都支持,建议还是分两次敲。
实战场景,命令方块自动清理。
在大型服务器里,手动输入指令太麻烦。我通常会在出生点或船厂附近放置一个命令方块,设置成循环模式,延时调到20刻(每秒一次),输入“/kill @e[type=boat,y=63,dy=2”之类的条件,只清理水面附近一定高度的船。注意这里y是坐标,dy表示高度范围,配合地图上船的常出没区域,就能做到只清理无效的搁浅船只,而保留正在水面上航行的船。如果你想更智能,还可以结合“/testfor”检测附近玩家的船来排除。不过对于大多数生存服务器,直接一个高频红石脉冲驱动“/kill @e[type=boat]”就能解决卡顿问题,但记得给命令方块加上开关,方便自己上船时暂停。
安全提醒,别误杀队友和贵重物品。
清除船指令最坑的一点是,如果队友正坐在船上,船被杀死的同时,队友会直接落水,而且船不会掉落任何物品(除非你开启了掉落物品的规则)。所以玩多人游戏时一定要先用“/say 清理船只,请上岸”之类的提示,或者干脆用“/execute”配合玩家检测来避免误伤。另外,有些玩家喜欢把船当装饰用,比如把船放在展示框里或者用命令生成的无碰撞船,那种属于“block_display”或者“item_display”实体,不是常规船,用上述指令清不掉。这时候你需要用“/kill @e[type=item_display]”之类的指令,但那就涉及另一个话题了。
老玩家最后再提醒一句,指令虽好可不要贪杯,尤其是在自己建造的冰道上放船时,千万别手滑打了这条指令,否则你辛辛苦苦铺的冰船赛道就全没了。更骚的操作是,你可以用“/data merge entity @e[type=boat,limit=1]”来修改某条船的属性,比如给它加个不可破坏标签,不过那就是进阶玩法了。掌握好清除船的指令,你的世界就能永远整洁顺畅。
相关文章