此特性為Java版獨有。
物品修飾器是用於在指令/item
中為已有的物品加入戰利品表函數的技術性JSON檔案。物品修飾器是資料包的一部分。
用途[]
物品修飾器可用於在/item
指令內為物品附加戰利品表函數。
原版遊戲內不存在物品修飾器,只能透過資料包建立。
檔案結構[]
|
JSON結構[]
- 包含多個物品修飾器對象的列表,其效果等效於
sequence
類型。裏面的內容與下方的物品修飾器對象一致。 - 一個物品修飾器。
- function:應用物品修飾器類型的命名空間ID。可用的類型將在下方列出。
- 對於類型要求的額外標籤,在下面和對應類型一併列出。
以下為 function的可能取值及其相關的額外標籤:
- apply_bonus - 修改物品的數量。
- enchantment:用來進行附魔等級計算的附魔ID。
- formula:計算公式。可選值為
uniform_bonus_count
(均勻分佈隨機數)、ore_drops
(礦物掉落隨機算法)和binomial_with_bonus_count
(二項分佈隨機數)。 - parameters:計算所需的參數。
- 如果 formula是
uniform_bonus_count
,則為均勻分佈的隨機數,值域為,其中l是附魔等級,c是物品數量:
- 如果 formula是
- bonusMultiplier:均勻分佈中的乘數,即公式中的b。
- 如果 formula是
ore_drops
,則為礦物掉落算法。如果附魔等級l為0,則返回物品數量c;如果附魔等級l大於0,則最終物品數量可以根據附魔等級翻倍,最高可以為原數量的倍。 - 如果 formula是
binomial_with_bonus_count
,則為二項分佈隨機數。物品最終的數量為原數量與這個二項分佈隨機數的和。
- 如果 formula是
- extraRounds:額外計算的次數。二項分佈計算的n為附魔等級與額外計算次數之和。
- probability:二項分佈中的機率p。
- copy_name - 將物品的名稱設定為對應實體或方塊實體的名稱。
- source:物品名稱的來源。可以為
this
(執行戰利品生成的實體)、killer
(殺死本實體的實體)、killer_player
(殺死本實體的玩家)和block_entity
(物品對應方塊的方塊實體)。
- source:物品名稱的來源。可以為
- copy_nbt - 拷貝NBT到物品的標籤中。
- ops:複製操作列表。
- :一個複製操作。
- op:設定為
replace
以替換目標的所有存在的內容,設定為append
以追加到一個列表,或設定為merge
以融合到一個複合標籤。 - source:複製源的NBT路徑。
- target:要複製到的NBT路徑。
- op:設定為
- :一個複製操作。
- source:指定NBT的複製源。可以是一個實體或方塊實體,或引用一個指令儲存。如果為字串,則會指定一個實體或方塊實體,值與下方 target相同。
- type:複製源的類型。可以為
context
(實體或方塊實體)和storage
(使用指令儲存)。- 如果 type為
context
,附加標籤如下:
- 如果 type為
- target:指定作為複製源的實體或方塊實體。可以為
block_entity
(物品對應方塊的方塊實體)、this
(執行戰利品生成的實體)、killer
(殺死本實體的實體)、killer_player
(殺死本實體的玩家)和direct_killer
(進行直接擊殺本實體的實體)。- 如果 type為
storage
,附加標籤如下:
- 如果 type為
- source:指定作為複製源的指令儲存的命名空間ID。
- type:複製源的類型。可以為
- ops:複製操作列表。
- copy_state - 當物品是由方塊產生時,複製方塊的方塊狀態到物品的
BlockStateTag
標籤;否則此物品修飾器不做任何處理。- block:一個方塊ID,如果與方塊不匹配,這個修飾器將失效。
- properties:要複製的狀態屬性列表。
- :一個要被複製的方塊狀態屬性名稱。
- enchant_randomly - 為物品附上一個隨機的附魔。附魔的等級也是隨機的。
- enchantments:能夠附上的附魔。如果沒有此標籤,則隨機選取此物品可以附上的所有非寶藏附魔。
- :一項附魔的命名空間ID。
- enchantments:能夠附上的附魔。如果沒有此標籤,則隨機選取此物品可以附上的所有非寶藏附魔。
- enchant_with_levels - 使用指定的附魔等級附魔物品(大約等效於使用這個等級的附魔台附魔物品)。
- levels:指定該附魔的等級。
- 數值提供器
- treasure:決定了物品是否能被附上寶藏附魔。
- levels:指定該附魔的等級。
- exploration_map - 將普通的地圖物品變為一個指引到某個結構的探險家地圖。如果物品不是地圖,則不做任何處理。
- explosion_decay - 如果物品是因為方塊被爆炸破壞而產生,執行該函數的每個物品有1/爆炸半徑的機率消失,堆疊的物品會被分為多個單獨的物品計算;否則此物品修飾器不做任何處理。
- fill_player_head - 將玩家頭顱設定為指定玩家的頭顱。如果物品不是玩家頭顱則不做任何處理。
- entity:用於設定該玩家頭顱的玩家。可以為
this
(執行戰利品生成的實體)、killer
(殺死本實體的實體)、killer_player
(殺死本實體的玩家)和direct_killer
(進行直接擊殺本實體的實體)。
- entity:用於設定該玩家頭顱的玩家。可以為
- furnace_smelt - 將物品轉變為熔煉後的對應物品。如果物品不可熔煉,則不做任何處理。
- limit_count - 限制物品數量。
- limit:限制物品的數量,物品數量會被鉗制在此區間內。
- min:最小數量。
- 數值提供器
- max:最大數量。
- 數值提供器
- min:最小數量。
- limit:限制物品的數量,物品數量會被鉗制在此區間內。
- looting_enchant - 決定了掠奪附魔對該物品數量的影響。如果未使用,掠奪附魔將對該物品沒有效果。
- count:每等級掠奪附魔使得物品需要增加的數量。
- 數值提供器
- limit:物品的最大數量,超過此數量會被強制限制在此數量。如果設定為0,則無限制。
- count:每等級掠奪附魔使得物品需要增加的數量。
- reference - 引用另一個物品修飾器。
- name:物品修飾器的命名空間ID。如果發生循環調用,則會產生警告。
- sequence - 按照定義順序依次執行物品修飾器。
- functions:物品修飾器列表。
- 內部標籤與物品修飾器對象結構相同。
- functions:物品修飾器列表。
- set_attributes - 為物品加上屬性修飾符。
- modifiers:屬性修飾符列表。
- :一個修飾符。
- amount:指定修飾值。
- 數值提供器
- attribute:此修飾器修飾屬性的命名空間ID。
- id:(可選)修飾符的UUID。
- name:修飾符的名稱。
- operation:修飾符的運算模式,可以為
addition
(增量操作,Op0)、multiply_base
(倍率操作,Op1)和multiply_total
(最終倍乘操作,Op2)。 - slot:指定修飾符產生效果的欄位。值只能為
mainhand
(慣用手)、offhand
(非慣用手)、head
(頭盔)、chest
(胸甲)、legs
(護腿)或feet
(靴子)。當此項為列表時,列表內的字串都為可以使修飾符產生效果的欄位。
- amount:指定修飾值。
- :一個修飾符。
- modifiers:屬性修飾符列表。
- set_banner_pattern - 設定旗幟物品的圖案。如果物品不是旗幟,則此修飾器不做任何處理。
- append:表示是否將圖案追加在原先的圖案上,否則將替換原先的圖案。
- patterns:旗幟物品圖案。
- :一項旗幟圖案。
- color:旗幟圖案的顏色。
- pattern:旗幟圖案的類型。
- :一項旗幟圖案。
- set_contents - 設定容器方塊物品的內容物。
- entries:用於設定內容物的項目列表。
- 見戰利品表#標籤的 pools標籤。
- type:容器方塊物品的方塊實體命名空間ID。
- entries:用於設定內容物的項目列表。
- set_count - 設定該物品的數量。
- add:(可選,預設為false)表示是否在原有的數量上繼續增加數量,否則直接設定為對應數量。
- count:設定物品的數量。
- 數值提供器
- set_damage - 設定工具的損害值。
- add:(可選,預設為false)表示是否在原有的損害上繼續增加損害值,否則直接設定為對應損害值。
- damage:設定物品損害值比率,1為未損壞,0為完全損壞。
- 數值提供器
- set_enchantments - 設定物品的附魔。
- add:(可選,預設為false)表示是否在原有的附魔等級上繼續增加等級,否則替換原先的附魔。
- enchantments:要加入的附魔。
- <附魔的命名空間ID>:指定附魔及其等級。
- 數值提供器
- <附魔的命名空間ID>:指定附魔及其等級。
- set_loot_table - 為一個容器方塊物品設定戰利品表。
- name:指定戰利品表的命名空間ID。
- seed:(可選)指定戰利品表的種子。如果不存在或設為0,遊戲將會使用隨機序列。
- type:容器方塊物品的方塊實體命名空間ID。
- set_lore - 在物品上加入附加文字標籤。
- entity:指定JSON文字裡中
@s
表示的實體。可以為this
(執行戰利品生成的實體)、killer
(殺死本實體的實體)、killer_player
(殺死本實體的玩家)和direct_killer
(進行直接擊殺本實體的實體)。 - lore:物品的附加文字。
- :一個JSON文字。
- replace:(可選,預設為false)表示是否替換物品目前的附加文字,否則將在原有的附加文字後新增的文字。
- entity:指定JSON文字裡中
- set_name - 設定該物品的自訂名稱。
- entity:指定JSON文字裡中
@s
表示的實體。可以為this
(執行戰利品生成的實體)、killer
(殺死本實體的實體)、killer_player
(殺死本實體的玩家)和direct_killer
(進行直接擊殺本實體的實體)。 - name:物品自訂的名稱,是一個JSON文字。
- entity:指定JSON文字裡中
- set_nbt - 在該物品上加入NBT標籤。
- tag:要加入的NBT標籤,內部的雙引號需要使用
\
轉義。
- tag:要加入的NBT標籤,內部的雙引號需要使用
- set_potion - 設定物品包含的藥水效果標籤。
- id:藥水ID.
歷史[]
Java版 | |||||
---|---|---|---|---|---|
1.17 | 20w46a | 加入了物品修飾器。 | |||
1.18 | 21w39a | 加入了set_potion 類型。 | |||
1.19 | 21w17a | 加入了set_goat_horn_sound 類型。 | |||
22w18a | 將set_goat_horn_sound 類型改為set_instrument 。 | ||||
1.20 | 23w14a | 加入了reference 類型。 | |||
1.20.2 | 23w32a | 加入了sequence 類型。 |
組件 |
| ||
---|---|---|---|
資料包 | |||
教學 |
|
語言