第八十五章 item-更高級的replaceitem
在第三十八章中,我們了解了/replaceitem的使用方法。可惜這么一個厲害的指令,卻在Java1.17版本中被移除。只不過你并不需要擔(dān)心,因為取而代之的是一個更加厲害的指令——item。
item比replaceitem少了一個單詞replace(替代),這說明了item的功能不僅僅局限在替代物品,還有一些其他的功能。具體有哪些其他功能呢?讓我們來看看item這個指令的格式,你就知道了:
/item
作用:修改方塊或?qū)嶓w物品欄內(nèi)的物品
存在版本:Java1.17-今
需要權(quán)限等級:Java-2
需要作弊:否
格式:
/item modify ...
... block <方塊坐標><欄位><物品修飾器ID>
... entity <目標實體><欄位><物品修飾器ID>
\\為指定方塊或?qū)嶓w的指定欄位內(nèi)物品添加指定的物品修飾器\\
/item replace ...
...(block <方塊坐標>|entity <目標實體>)<欄位>...
...... with <物品ID>[數(shù)量]
\\修改指定方塊或?qū)嶓w的指定欄位內(nèi)的物品為指定的物品\\
...... from (block <方塊坐標>|entity <目標實體>)<欄位>[物品修飾器ID]
\\修改指定方塊或?qū)嶓w的指定欄位內(nèi)的物品為另一個方塊或?qū)嶓w內(nèi)指定欄位內(nèi)的物品\\
不難發(fā)現(xiàn),相比以前的/replaceitem,新的/item不僅僅保留并升級了replace替代的功能,還新增了一個modify為物品添加修飾器的功能。
我們先來看看遺傳下來的替代功能。新版本的替代功能不僅僅可以替代某個物品欄位為指定的物品,還可以把另外一個容器內(nèi)的物品復(fù)制過來
我們先來試試傳統(tǒng)的功能:替代某個物品欄位為指定的物品。比如我們要將自己帽子欄位內(nèi)的物品替換為一個TNT,就需要使用:
/item replace entity @s armor.head with minecraft:tnt 1
我們來對比一下上述指令在1.17版本前的寫法:
/replaceitem entity @s slot.armor.head minecraft:TNT
你會發(fā)現(xiàn)兩者總體的變化并不是很大,最主要的變化也就是在『欄位』參數(shù)和『物品ID』參數(shù)間多出了一個with,這個with的作用是用來告訴游戲:我僅僅只是指定一個要替換成的物品而已,也就是使用傳統(tǒng)的替換功能。還有一個比較小的變化就是,欄位ID前面沒有『slot.』前綴了。
我們現(xiàn)在來看看新的替換模式:from復(fù)制模式
item新添加的『復(fù)制模式』要指定兩個物品欄位,第一個欄位是目的地,第二個欄位是來源。比如:
/item replace entity @s armor.head from entity @s weapon.offhand
這將會把你副手(weapon.offhand)所持有的物品復(fù)制到你的頭上。第一個指定的『entity @s armor.head』即目的地,第二個指定的『entity @s weapon.offhand』即來源。
再來一個例子:
/execute as @a at @s if block ~~-1 ~ minecraft:furnace run item replace block ~~-1 ~ container.2 from block 35 65 26 container.0
這將會把所有玩家腳底下熔爐輸出槽內(nèi)的物品替換為坐標為(35,65,26)的容器的第一個槽位內(nèi)的物品。假設(shè)這個容器是一個箱子,箱子的最左上角放著三顆鉆石,那么運行上述指令過后,所有玩家腳底下熔爐的輸出槽內(nèi)都會有三顆鉆石。(注:箱子最左上角的欄位ID為container.0,熔爐輸出槽欄位為container.2)
還是比較簡單的嘛。接下來我們來看看item添加的全新功能:物品修飾器。
什么是物品修飾器呢?簡單來說,物品修飾器里面設(shè)定了一些程序,這些程序會對物品本身進行一些修改。我們可以通過item命令給指定欄位內(nèi)的物品添加上一個物品修飾器,然后這個物品就會被物品修飾器所修飾。
舉個例子,假設(shè)有一個ID為『arcaea:kill_tairitsu』的物品修飾器,這個物品修飾器會對物品本身進行一些修改,使得該物品在攻擊名為『Tairitsu』的實體時能夠發(fā)揮出超強的攻擊力。我們可以通過以下指令給我們主手上的物品添加上這個物品修飾器:
/item modify entity @s weapon.mainhand arcaea:kill_tairitsu
這將會給我們主手拿著的物品添加上這個物品修飾器,然后你就能拿著這個物品去挑戰(zhàn)名為『Tairitsu』的實體了。
雖然物品修飾器功能強大,但它和謂詞一樣,都是數(shù)據(jù)包才有的,原版并沒有任何的物品修飾器。因此如果你要使用物品修飾器,首先你就得弄一個具有物品修飾器的數(shù)據(jù)包出來。
這就是本章的全部內(nèi)容了。
附錄①:Java1.17新版本槽位ID
箱子、陷阱箱、發(fā)射器、投擲器、漏斗
container.<槽位編號>——從左到右、從上往下、從0遞增
釀造臺
container.0-2 ——底部從左到右
container.3 ——頂部
container.4 ——烈焰粉槽位
熔爐
container.0 ——輸入
container.1 ——燃料
container.2 ——輸出
實體
armor.chest ——胸
armor.feet ——腳
armor.head ——頭
armor.legs ——腿
weapon.mainhand ——主手
weapon.offhand ——副手
container.<槽位編號>——???
enderchest.<槽位編號>——末影箱
hotbar.<槽位編號>——快捷欄
inventory.<槽位編號>——玩家背包
horse.saddle ——鞍的槽位
horse.chest ——(羊駝、騾或驢)馱著的箱子
horse.armor ——馬鎧或地毯的槽位
horse.<槽位編號>——馱著箱子的羊駝、騾和驢
villager.<槽位編號>——村民或豬靈的背包
附錄②:/item歷史
Java
1.17——加入了/item