Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
Advertisement
Information icon
此特性為Java版獨有。

物品修飾器是用於在指令/item中為已有的物品加入戰利品表函數的技術性JSON檔案。物品修飾器是資料包的一部分。

用途[]

物品修飾器可用於在/item指令內為物品附加戰利品表函數。

原版遊戲內不存在物品修飾器,只能透過資料包建立。

檔案結構[]

  • (資料包根目錄)
    • data
      • (命名空間)
        • item_modifiers
          • (名稱).json

JSON結構[]

  • 包含多個物品修飾器對象的列表,其效果等效於sequence類型。裏面的內容與下方的物品修飾器對象一致。
  • 一個物品修飾器。
    •  function:應用物品修飾器類型的命名空間ID。可用的類型將在下方列出。
    • 對於類型要求的額外標籤,在下面和對應類型一併列出。

以下為 function的可能取值及其相關的額外標籤:

  • apply_bonus - 修改物品的數量。
    •  enchantment:用來進行附魔等級計算的附魔ID。
    •  formula:計算公式。可選值為uniform_bonus_count(均勻分佈隨機數)、ore_drops(礦物掉落隨機算法)和binomial_with_bonus_count(二項分佈隨機數)。
    •  parameters:計算所需的參數。
      • 如果 formulauniform_bonus_count,則為均勻分佈的隨機數,值域為,其中l是附魔等級,c是物品數量:
      •  bonusMultiplier:均勻分佈中的乘數,即公式中的b
        如果 formulaore_drops,則為礦物掉落算法。如果附魔等級l為0,則返回物品數量c;如果附魔等級l大於0,則最終物品數量可以根據附魔等級翻倍,最高可以為原數量的倍。
        如果 formulabinomial_with_bonus_count,則為二項分佈隨機數。物品最終的數量為原數量與這個二項分佈隨機數的和。
      •  extraRounds:額外計算的次數。二項分佈計算的n為附魔等級與額外計算次數之和。
      •  probability:二項分佈中的機率p
  • copy_name - 將物品的名稱設定為對應實體或方塊實體的名稱。
    •  source:物品名稱的來源。可以為this(執行戰利品生成的實體)、killer(殺死本實體的實體)、killer_player(殺死本實體的玩家)和block_entity(物品對應方塊的方塊實體)。
  • copy_nbt - 拷貝NBT到物品的標籤中。
    •  ops:複製操作列表。
      • :一個複製操作。
        •  op:設定為replace以替換目標的所有存在的內容,設定為append以追加到一個列表,或設定為merge以融合到一個複合標籤。
        •  source:複製源的NBT路徑
        •  target:要複製到的NBT路徑。
    •  source:指定NBT的複製源。可以是一個實體或方塊實體,或引用一個指令儲存。如果為字串,則會指定一個實體或方塊實體,值與下方 target相同。
      •  type:複製源的類型。可以為context(實體或方塊實體)和storage(使用指令儲存)。
        如果 typecontext,附加標籤如下:
      •  target:指定作為複製源的實體或方塊實體。可以為block_entity(物品對應方塊的方塊實體)、this(執行戰利品生成的實體)、killer(殺死本實體的實體)、killer_player(殺死本實體的玩家)和direct_killer(進行直接擊殺本實體的實體)。
        如果 typestorage,附加標籤如下:
      •  source:指定作為複製源的指令儲存的命名空間ID
  • copy_state - 當物品是由方塊產生時,複製方塊的方塊狀態到物品的BlockStateTag標籤;否則此物品修飾器不做任何處理。
    •  block:一個方塊ID,如果與方塊不匹配,這個修飾器將失效。
    •  properties:要複製的狀態屬性列表。
      • :一個要被複製的方塊狀態屬性名稱。
  • enchant_randomly - 為物品附上一個隨機的附魔。附魔的等級也是隨機的。
    •  enchantments:能夠附上的附魔。如果沒有此標籤,則隨機選取此物品可以附上的所有非寶藏附魔。
      • :一項附魔的命名空間ID。
  • enchant_with_levels - 使用指定的附魔等級附魔物品(大約等效於使用這個等級的附魔台附魔物品)。
    •  levels:指定該附魔的等級。
      • 數值提供器
    •  treasure:決定了物品是否能被附上寶藏附魔。
  • exploration_map - 將普通的地圖物品變為一個指引到某個結構的探險家地圖。如果物品不是地圖,則不做任何處理。
    •  decoration:(可選)結構在地圖中顯示的地圖圖示ID。如果不存在或值錯誤則預設為MANSION,即綠林府邸的地圖圖示。
    •  destination:(可選)目標結構的命名空間ID。如果不存在則預設為mansion綠林府邸)。
    •  search_radius:(可選)搜尋的區塊半徑,使用切比雪夫距離。預設為50。
    •  skip_existing_chunks:(可選)是否不在已經生成過的區塊搜尋。預設為true
    •  zoom:(可選)地圖縮放等級。預設為2。
  • explosion_decay - 如果物品是因為方塊被爆炸破壞而產生,執行該函數的每個物品有1/爆炸半徑的機率消失,堆疊的物品會被分為多個單獨的物品計算;否則此物品修飾器不做任何處理。
  • fill_player_head - 將玩家頭顱設定為指定玩家的頭顱。如果物品不是玩家頭顱則不做任何處理。
    •  entity:用於設定該玩家頭顱的玩家。可以為this(執行戰利品生成的實體)、killer(殺死本實體的實體)、killer_player(殺死本實體的玩家)和direct_killer(進行直接擊殺本實體的實體)。
  • furnace_smelt - 將物品轉變為熔煉後的對應物品。如果物品不可熔煉,則不做任何處理。
  • limit_count - 限制物品數量。
    •  limit:限制物品的數量,物品數量會被鉗制在此區間內。
      •  min:最小數量。
        • 數值提供器
      •  max:最大數量。
        • 數值提供器
  • looting_enchant - 決定了掠奪附魔對該物品數量的影響。如果未使用,掠奪附魔將對該物品沒有效果。
    •  count:每等級掠奪附魔使得物品需要增加的數量。
      • 數值提供器
    •  limit:物品的最大數量,超過此數量會被強制限制在此數量。如果設定為0,則無限制。
  • reference - 引用另一個物品修飾器。
    •  name:物品修飾器的命名空間ID。如果發生循環調用,則會產生警告。
  • sequence - 按照定義順序依次執行物品修飾器。
    •  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(靴子)。當此項為列表時,列表內的字串都為可以使修飾符產生效果的欄位。
  • set_banner_pattern - 設定旗幟物品的圖案。如果物品不是旗幟,則此修飾器不做任何處理。
    •  append:表示是否將圖案追加在原先的圖案上,否則將替換原先的圖案。
    •  patterns:旗幟物品圖案。
      • :一項旗幟圖案
        •  color:旗幟圖案的顏色。
        •  pattern:旗幟圖案的類型。
  • set_contents - 設定容器方塊物品的內容物。
    •  entries:用於設定內容物的項目列表。
    •  type:容器方塊物品的方塊實體命名空間ID。
  • set_count - 設定該物品的數量。
    •  add:(可選,預設為false)表示是否在原有的數量上繼續增加數量,否則直接設定為對應數量。
    •  count:設定物品的數量。
      • 數值提供器
  • set_damage - 設定工具的損害值。
    •  add:(可選,預設為false)表示是否在原有的損害上繼續增加損害值,否則直接設定為對應損害值。
    •  damage:設定物品損害值比率,1為未損壞,0為完全損壞。
      • 數值提供器
  • set_enchantments - 設定物品的附魔。
    •  add:(可選,預設為false)表示是否在原有的附魔等級上繼續增加等級,否則替換原先的附魔。
    •  enchantments:要加入的附魔。
      •  <附魔的命名空間ID>:指定附魔及其等級。
        • 數值提供器
  • set_instrument - 設定山羊角的種類。如果物品不是山羊角則不做任何處理。
    •  options:山羊角種類的標籤
  • set_loot_table - 為一個容器方塊物品設定戰利品表。
    •  name:指定戰利品表的命名空間ID。
    •  seed:(可選)指定戰利品表的種子。如果不存在或設為0,遊戲將會使用隨機序列
    •  type:容器方塊物品的方塊實體命名空間ID。
  • set_lore - 在物品上加入附加文字標籤。
    •  entity:指定JSON文字裡中@s表示的實體。可以為this(執行戰利品生成的實體)、killer(殺死本實體的實體)、killer_player(殺死本實體的玩家)和direct_killer(進行直接擊殺本實體的實體)。
    •  lore:物品的附加文字。
    •  replace:(可選,預設為false)表示是否替換物品目前的附加文字,否則將在原有的附加文字後新增的文字。
  • set_name - 設定該物品的自訂名稱。
    •  entity:指定JSON文字裡中@s表示的實體。可以為this(執行戰利品生成的實體)、killer(殺死本實體的實體)、killer_player(殺死本實體的玩家)和direct_killer(進行直接擊殺本實體的實體)。
    •  name:物品自訂的名稱,是一個JSON文字
  • set_nbt - 在該物品上加入NBT標籤
    •  tag:要加入的NBT標籤,內部的雙引號需要使用\轉義。
  • set_potion - 設定物品包含的藥水效果標籤。
  • set_stew_effect - 為可疑的燉湯加入狀態效果
    •  effects:要加上的狀態效果。
      • :一個效果。
        •  duration:指定狀態效果的持續時間。
          • 數值提供器
        •  type:狀態效果ID。

歷史[]

Java版
1.1720w46a加入了物品修飾器。
1.1821w39a加入了set_potion類型。
1.1921w17a加入了set_goat_horn_sound類型。
22w18aset_goat_horn_sound類型改為set_instrument
1.2023w14a加入了reference類型。
1.20.223w32a加入了sequence類型。

語言

Advertisement