進度定義格式

  提示:本條目的主題不是進度儲存格式
本文章所述內容僅適用於Java版

進度(Advancement)是位於資料包中用於定義進度的技術性JSON檔案。

資料夾結構 編輯

在資料包中,每個進度都由一個進度檔案定義。以下的檔案結構圖展示了進度檔案在資料包中的位置:

主格式 編輯

  • *: 若寫明了其父欄位,則該項是必須的。
  • NBT複合標籤/JSON物件根標籤
    • NBT複合標籤/JSON物件*criteria:此進度的一系列條件。
    • NBT複合標籤/JSON物件display:(可選)進度的顯示資訊
    • 字串parent:(可選)此進度的上游進度的命名空間ID。若此項不存在,則此進度為根進度。循環引用上游進度將導致載入失敗。
    • NBT陣列/JSON陣列requirements:(可選)定義了以上條件將如何達成。其中包含許多子列表,每一個子列表中都允許包含此進度中的若干條件(在所有的<條件名稱>中)。完成或廢除一個準則時,如果所有子列表中至少有一個準則達成,則進度達成。預設情況下(即此項不存在),進度達成需要保證每個條件都要達成。
      • NBT陣列/JSON陣列:在NBT陣列/JSON陣列requirements中的一個子列表,可包含若干<條件名稱>。如果有任何一項子列表為空,則此進度不可達成,除非透過作弊。
        • 字串:一項條件名稱。
    • NBT複合標籤/JSON物件rewards:(可選)進度達成後的獎勵。
      • 整型experience:(可選,預設為0)完成進度後玩家將獲得的經驗值
      • 字串function:(可選)完成進度後執行的函數,不支援函數標籤。函數執行的效果與該玩家直接使用指令/function完全相同。
      • NBT陣列/JSON陣列loot:(可選)完成進度後給予玩家的戰利品表
      • NBT陣列/JSON陣列recipes:(可選)完成進度後玩家將解鎖的配方
    • 布林型sends_telemetry_event:(可選,預設為false)實現此進度時是否應收集遙測資料。
戰利品上下文參數 NBT複合標籤/JSON物件NBT陣列/JSON陣列loot
origin 玩家位置
this_entity 玩家

顯示 編輯

顯示資訊 編輯

顯示資訊的資料格式如下:

  • NBT複合標籤/JSON物件display:進度的顯示資訊。
    • 布林型announce_to_chat:(可選,預設為true)是否在完成此進度時在聊天視窗提示。
    • 字串background:(可選,僅根進度可用)進度標籤的背景,這是一個檔案路徑。
    • 布林型倍精度浮點數字串NBT複合標籤/JSON物件NBT陣列/JSON陣列*description文字元件,表示該進度在進度介面中顯示的描述資訊。
    • 字串frame:(可選,預設為task)圖示邊框的可選種類。challengegoaltask
    • 布林型hidden:(可選,預設為false)是否在進度畫面隱藏此進度以及其所有子進度,直到完成此進度。此項對根進度自身無效,但依然能影響其子進度。
    • NBT複合標籤/JSON物件*icon:表示一個物品堆疊,用於顯示進度的圖示。
    • 布林型show_toast:(可選,預設為true)是否在完成此進度後顯示右上角的提示資訊。
    • 布林型倍精度浮點數字串NBT複合標籤/JSON物件NBT陣列/JSON陣列*title文字元件,表示該進度在進度介面中顯示的標題。

一個進度只有滿足以下情況之一才會顯示在進度選單中:

  • 此進度為根進度。
  • 此進度的上游進度已處於顯示狀態,此進度的NBT複合標籤/JSON物件display被有效定義且布林型hiddenfalse

進度選項卡 編輯

建立帶有顯示資料NBT複合標籤/JSON物件display的根進度(不含字串parent的進度)後將自動在進度選單邊緣建立一個選項卡。當遊戲載入資料包後,若根進度所在的進度樹中有任意進度被某玩家取得,則該根進度以及其選項卡都會顯示給該玩家,且根進度和選項卡的圖示一致。

根進度的背景影像不會影響選項卡的建立。若根進度未正確從字串background載入圖片,則背景預設顯示為丟失紋理。

如果一個根進度成功建立了一個選項卡,它的子進度將會展示在該選項卡中(前提是該子進度擁有顯示資料 字串display)。

定位 編輯

在從資料包載入進度時,遊戲會自動對進度進行排列,確定其位置,並將排列資訊傳送到用戶端。每個進度都有從最近的可見上游進度指向它的箭頭(即,如果其相鄰的上游進度沒有顯示資料,則有從上游進度的上游進度指向它的箭頭)。根進度出現在最左一列,每個箭頭指向下一列中的進度。每一列中的進度基於其檔案名排序。

預設顯示 編輯

有些進度(如原版中由配方解鎖的進度)可能會省去顯示資料,以便它們利用觸發器和獎勵來替代過多的指令函數並實現更多功能和更靈活的控制。透過省去NBT複合標籤/JSON物件display資料,這些用於邏輯控制的進度不僅能被一般玩家忽略,還有助於獲得更好的載入效能。

條件 編輯

  • *: 若寫明了其父欄位,則該項是必須的。
  • NBT複合標籤/JSON物件<條件名稱>:一項條件,此名稱必須唯一。
    • 字串*trigger:該條件的觸發器命名空間ID。每種觸發器都有其對應的觸發情形和可檢查條件。
    • NBT複合標籤/JSON物件conditions:觸發器被觸發時,達成此條件需要滿足的條件。與具體的觸發器有關。
      • NBT複合標籤/JSON物件player:一個實體述詞,玩家與述詞匹配後才能達成此條件,此項對於除minecraft:impossible外的觸發器均可使用。
      • NBT陣列/JSON陣列player:「player」的另一種格式,為一個述詞列表。玩家與該列表中的述詞全部匹配後才能達成此條件。此項對於除minecraft:impossible外的觸發器均可使用。
      • 其餘的附加條件,取決於字串trigger的值。詳見下文
戰利品上下文參數 NBT陣列/JSON陣列player
origin 玩家位置
this_entity 玩家

可用條件觸發器 編輯

在遊戲中總共定義了下列條件觸發器:

註冊名稱 觸發情形
allay_drop_item_on_block 悅靈確定待投擲的目標方塊後,將物品投擲的瞬間對關聯的玩家觸發。
any_block_use 玩家與方塊進行任何互動(包括預設互動,以及玩家不空手使用物品等方式)時觸發。
avoid_vibration 振動因其來源玩家處於潛行狀態而被忽略時觸發。
bee_nest_destroyed 玩家破壞蜂窩(方塊)蜂箱時觸發。
bred_animals 兩個動物繁殖時觸發。
brewed_potion 玩家從釀造台中拿出一瓶藥水時觸發。
changed_dimension 玩家在兩個維度間旅行時觸發。
channeled_lightning 閃電電流由喚雷附魔生成時對使用三叉戟的玩家觸發。
construct_beacon 烽火台檢測到基座結構更改時對範圍內玩家觸發。
consume_item 玩家消耗了帶有consumable元件的物品後觸發。
crafter_recipe_crafted 合成器將物品以實體形式擲出時對範圍內玩家觸發。
cured_zombie_villager 殭屍村民被治癒時對餵食其金蘋果的玩家觸發。
default_block_use 玩家在非潛行狀態下空手與方塊進行互動時觸發。
effects_changed 玩家獲得或消除狀態效果時觸發。
enchanted_item 玩家透過附魔台附魔物品時觸發。
enter_block 遊戲刻,玩家對與其碰撞箱相交的各個方塊分別觸發,或者玩家拋出的終界珍珠進入終界折躍門時觸發。
entity_hurt_player 玩家受傷,即使傷害並不來源於某個實體時觸發[1]
entity_killed_player 實體殺死玩家時觸發。
fall_after_explosion 在玩家被爆炸風爆擊飛後摔落時觸發。
fall_from_height 玩家摔落至地面時觸發。
filled_bucket 玩家填充鐵桶時觸發。
fishing_rod_hooked 玩家成功透過釣魚取得物品或者使用釣竿拉實體時觸發。
hero_of_the_village 一場突襲勝利後對所有在該場突襲中擊殺過至少一名突襲者的玩家觸發。
impossible 無法觸發。
inventory_changed 玩家物品欄變化時觸發。
item_durability_changed 玩家物品欄中任何物品以任何形式損害時觸發。
item_used_on_block 玩家對方塊空手或手持物品時進行某些使用操作時(詳見下文)觸發。
kill_mob_near_sculk_catalyst 伏聆觸媒蔓延時對死亡生物的傷害來源玩家觸發。
killed_by_arrow 殺死實體後對發射箭的玩家觸發。
levitation 玩家帶有懸浮狀態效果時每遊戲刻觸發一次。
lightning_strike 閃電電流消失時對範圍內玩家觸發。
location 所有玩家每20遊戲刻(1秒)觸發一次。
nether_travel 玩家從主世界進入地獄後返回主世界時觸發。
placed_block 玩家放置方塊時觸發。
player_generates_container_loot 玩家與可疑的方塊容器互動並使之按照戰利品表生成戰利品時觸發。
player_hurt_entity 玩家傷害實體(包括自己)時觸發。
player_interacted_with_entity 玩家與實體互動時觸發。
player_killed_entity 玩家殺死實體時觸發。
recipe_crafted 玩家使用配方合成時觸發。
recipe_unlocked 玩家解鎖配方時觸發。
ride_entity_in_lava 玩家騎乘位於熔岩上的實體時,每遊戲刻觸發一次。
shot_crossbow 玩家使用發射投射物時觸發。
slept_in_bed 玩家上睡覺時觸發。
slide_down_block 玩家從蜂蜜塊上滑下時觸發。
started_riding 實體被騎乘時對所有玩家乘客觸發。
summoned_entity 玩家召喚鐵魔像雪人凋零怪或復活終界龍時觸發。
tame_animal 玩家馴服動物時觸發。
target_hit 投射物擊中標靶時對發射的玩家觸發。
thrown_item_picked_up_by_entity 實體撿起玩家扔出的物品時觸發。
thrown_item_picked_up_by_player 玩家撿起實體扔出的物品時觸發。
tick 遊戲刻對所有玩家觸發一次。
used_ender_eye 玩家使用終界之眼定位要塞時觸發。
used_totem 玩家使用不死圖騰時觸發。
using_item 玩家使用「可持續使用」的物品(詳見下文)時,每遊戲刻觸發一次。
villager_trade 玩家成交一項交易時觸發。
voluntary_exile 玩家觸發一場新的突襲時觸發。

條件觸發器 編輯

所有觸發器均要求玩家線上,如果不線上,即使其之後重新加入伺服器也不會再獲得進度。

所有JSON欄位預設均可選,除非標註了「*」。

allay_drop_item_on_block 編輯

悅靈確定待投擲的目標方塊後,將物品投擲的瞬間觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • NBT陣列/JSON陣列location:一個述詞列表,該列表中的述詞全部測試透過後才能達成此條件。
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文
戰利品上下文參數 NBT陣列/JSON陣列location
origin 要投擲到的方塊的中心位置
this_entity 與悅靈關聯的玩家
block_state 要投擲到的方塊的方塊狀態
tool 悅靈所持有的物品

any_block_use 編輯

玩家與方塊進行任何互動(包括預設互動,以及玩家不空手使用物品等方式)時觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • NBT陣列/JSON陣列location:一個述詞列表,該列表中的述詞全部測試透過後才能達成此條件。
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文
戰利品上下文參數 NBT陣列/JSON陣列location
origin 互動的方塊的中心位置
this_entity 玩家
block_state 互動的方塊的方塊狀態
tool 互動時所使用的物品

avoid_vibration 編輯

當振動因其來源玩家處於潛行狀態而被忽略時觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文

bee_nest_destroyed 編輯

玩家破壞蜂窩蜂箱時觸發。可用條件:

bred_animals 編輯

兩個動物繁殖時觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • NBT複合標籤/JSON物件child:繁殖出的動物。
    • NBT陣列/JSON陣列child:「child」的另一種格式,為一個述詞列表。該列表中的述詞全部測試透過後才能達成此條件。
    • NBT複合標籤/JSON物件parent:雙親之一。
    • NBT陣列/JSON陣列parent:「parent」的另一種格式,為一個述詞列表。該列表中的述詞全部測試透過後才能達成此條件。
    • NBT複合標籤/JSON物件partner:配偶,即雙親中的另一位實體。
    • NBT陣列/JSON陣列partner:「partner」的另一種格式,為一個述詞列表。該列表中的述詞全部測試透過後才能達成此條件。
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文
戰利品上下文參數 NBT複合標籤/JSON物件NBT陣列/JSON陣列child、parent、partner
origin 玩家位置
this_entity 各條件對應的實體

brewed_potion 編輯

玩家從釀造台中拿出一瓶藥水時觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • 字串potion:檢查拿出的藥水ID是否匹配。
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文

changed_dimension 編輯

玩家在傳送到另一個維度或死亡後在另一維度重生時觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • 字串from:實體原所在維度的命名空間ID,原版維度包含minecraft:overworld主世界)、minecraft:the_nether地獄)或minecraft:the_end終界)。也可以使用資料包加入的其他維度。
    • 字串to:實體到達的維度,同上。
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家,玩家位置按照其在目標維度的位置計算。詳見上文

channeled_lightning 編輯

閃電電流喚雷附魔生成時觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • NBT陣列/JSON陣列victims:檢查所有被閃電電流擊中的實體,為一個述詞或述詞列表的列表,列表中所有項都對其中至少一個實體測試透過時才能達成此條件。
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文
戰利品上下文參數 NBT陣列/JSON陣列victims
origin 玩家位置
this_entity 被閃電電流擊中的各個實體

construct_beacon 編輯

烽火台檢測到基座結構更改時,如果更改後烽火台處於啟動狀態,且這個烽火台上方從第11格起沒有任何方塊,[2]則對烽火台中心位置水平切比雪夫距離10格內,垂直距離向上5格,向下9格內的所有玩家觸發。可用條件:

consume_item 編輯

玩家消耗了帶有consumable元件的物品後觸發。可用條件:

crafter_recipe_crafted 編輯

合成器將物品以實體形式擲出時,對中心位置切比雪夫距離8.5格內的所有玩家觸發。當一次性擲出多個物品時(如合成蛋糕的同時擲出3個鐵桶),每1個物品均會觸發一次。可用條件:

  • NBT複合標籤/JSON物件conditions
    • 字串*recipe_id:檢查合成配方命名空間ID
    • NBT陣列/JSON陣列ingredients:一個物品述詞列表,檢查合成使用的原材料,該列表中的述詞全部測試透過後才能達成此條件。
      每個物品述詞僅需對一個物品測試透過即可,且透過的物品之後不再參與測試,因此一個物品只能滿足其中一個述詞。
      此觸發器觸發時,合成使用的原材料尚未被扣除,但相應的物品實體已經被投擲。
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文

cured_zombie_villager 編輯

殭屍村民被治癒時,對餵食其金蘋果的玩家觸發。可用條件:

戰利品上下文參數 NBT複合標籤/JSON物件NBT陣列/JSON陣列villager NBT複合標籤/JSON物件NBT陣列/JSON陣列zombie
origin 玩家位置 玩家位置
this_entity 轉化後的村民 轉化瞬間的殭屍村民

default_block_use 編輯

玩家在非潛行狀態下空手與方塊進行互動時觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • NBT陣列/JSON陣列location:一個述詞列表。該列表中的述詞全部測試透過後才能達成此條件。
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文
戰利品上下文參數 NBT陣列/JSON陣列location
origin 互動的方塊的中心位置
this_entity 玩家
block_state 互動的方塊的方塊狀態

effects_changed 編輯

玩家獲得/消除狀態效果時觸發。可用條件:

戰利品上下文參數 NBT複合標籤/JSON物件NBT陣列/JSON陣列entity
origin 玩家位置
this_entity 狀態效果的來源實體,如果狀態效果為玩家自己加入或移除的則此項不存在

enchanted_item 編輯

玩家透過附魔台附魔物品時觸發。可用條件:

enter_block 編輯

遊戲刻,玩家對與其碰撞箱相交的各個方塊分別觸發,或者玩家拋出的終界珍珠進入終界折躍門時對其觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • 字串block:檢查方塊的ID。
    • NBT複合標籤/JSON物件state:檢查方塊的方塊狀態。
      • 字串NBT複合標籤/JSON物件<方塊屬性>:檢查指定方塊屬性。如果方塊不滿足條件,那麼測試會失敗。可以為字串或以兩個數字字串表示的數值區間。
        • 字串min:數值的最小允許值。
        • 字串max:數值的最大允許值。
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文

entity_hurt_player 編輯

玩家受傷,即使傷害並不來源於某個實體時觸發[1]。可用條件:

entity_killed_player 編輯

實體殺死玩家時觸發。可用條件:

戰利品上下文參數 NBT複合標籤/JSON物件NBT陣列/JSON陣列entity
origin 玩家位置
this_entity 傷害的直接來源實體

fall_after_explosion 編輯

在玩家被爆炸風爆擊飛後開始摔落時觸發。可用條件:

戰利品上下文參數 NBT複合標籤/JSON物件cause
origin 玩家位置
this_entity 造成爆炸或風爆的實體

fall_from_height 編輯

玩家摔落至地面時觸發。可用條件:

filled_bucket 編輯

玩家填充桶時觸發,從鍋釜填充時不觸發。[3]可用條件:

fishing_rod_hooked 編輯

玩家成功透過釣魚取得物品或者使用釣竿拉實體時觸發。可用條件:

戰利品上下文參數 NBT複合標籤/JSON物件NBT陣列/JSON陣列entity
origin 玩家位置
this_entity 被拉的實體或浮標

hero_of_the_village 編輯

一場突襲勝利後對所有在該場突襲中擊殺過至少一名突襲者的玩家觸發,如果玩家目前為旁觀者模式(通常這發生在極限模式的世界中,例如玩家在突襲中死亡)則不會觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文

impossible 編輯

無法觸發,無可用條件。

inventory_changed 編輯

玩家物品欄變化時觸發。可用條件:

item_durability_changed 編輯

物品欄中任何物品以任何形式損害時觸發。可用條件:

item_used_on_block 編輯

玩家對方塊空手或手持物品時進行某些使用操作時觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • NBT陣列/JSON陣列location:一個述詞列表。該列表中的所有述詞均測試透過後才能達成此條件。
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文

關於所有可觸發此觸發器的操作詳見MC-259075

戰利品上下文參數 NBT陣列/JSON陣列location
origin 互動的方塊的中心位置
this_entity 玩家
block_state 互動的方塊的方塊狀態
tool 互動時所使用的物品

kill_mob_near_sculk_catalyst 編輯

伏聆觸媒蔓延時對死亡生物的傷害來源玩家觸發。可用條件:

戰利品上下文參數 NBT複合標籤/JSON物件NBT陣列/JSON陣列entity
origin 玩家位置
entity 被殺死的實體

killed_by_arrow 編輯

殺死實體後對發射箭的玩家觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • 整型NBT複合標籤/JSON物件unique_entity_types:檢查殺死的不同實體種類的數量。
    • NBT複合標籤/JSON物件fired_from_weapon:物品述詞,檢查發射箭的物品。
    • NBT陣列/JSON陣列victims:一個實體述詞或述詞列表的列表,檢查所有被殺死的實體,列表中每項僅需對一個實體測試透過即可,且透過的實體之後不再參與測試,因此一個實體只能滿足其中一個述詞。
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文
戰利品上下文參數 NBT陣列/JSON陣列victims
origin 玩家位置
entity 被殺死的實體

levitation 編輯

玩家帶有懸浮狀態效果時每遊戲刻觸發一次。可用條件:

lightning_strike 編輯

閃電電流消失時對半徑256格內的玩家觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • NBT複合標籤/JSON物件lightning實體述詞,檢查消失的閃電電流。
    • NBT陣列/JSON陣列lightning:「lightning」的另一種格式,為一個述詞列表。該列表中的所有述詞均測試透過後才能達成此條件。
    • NBT複合標籤/JSON物件bystander:檢查所有沒有被閃電電流擊中,且在其位置水平切比雪夫距離15格內,垂直距離向上21格,向下15格範圍內的實體,對其中任意一個實體測試透過即可。
    • NBT陣列/JSON陣列bystander:「bystander」的另一種格式,為一個述詞列表。該列表中的所有述詞均測試透過後才視為透過。對其中任意一個實體測試透過即可。
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文
戰利品上下文參數 NBT複合標籤/JSON物件NBT陣列/JSON陣列lightning NBT複合標籤/JSON物件NBT陣列/JSON陣列bystander
origin 玩家位置 玩家位置
entity 消失的閃電電流 在範圍內未被閃電電流擊中的實體

location 編輯

所有玩家每20遊戲刻(1秒)觸發一次。可用條件:

  • NBT複合標籤/JSON物件conditions
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文

nether_travel 編輯

玩家進入地獄,然後返回主世界時觸發。可用條件:

placed_block 編輯

玩家放置方塊物品熔岩,以及使用打火石時觸發,但使用火焰彈點火時不會觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • NBT陣列/JSON陣列location:一個述詞列表。該列表中的所有述詞均測試透過後才能達成此條件。
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文
戰利品上下文參數 NBT陣列/JSON陣列location
origin 放置的方塊的中心位置
this_entity 玩家
block_state 放置的方塊的方塊狀態
tool 放置時所使用的物品

player_generates_container_loot 編輯

玩家與可疑的方塊容器互動並使之按照戰利品表生成戰利品時觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • 字串*loot_table:檢查生成戰利品的戰利品表的命名空間ID
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文

player_hurt_entity 編輯

玩家傷害實體(包括自己)時觸發。可用條件:

戰利品上下文參數 NBT複合標籤/JSON物件NBT陣列/JSON陣列entity
origin 玩家位置
entity 被傷害的實體

player_interacted_with_entity 編輯

玩家與實體互動時觸發。可用條件:

戰利品上下文參數 NBT複合標籤/JSON物件NBT陣列/JSON陣列entity
origin 玩家位置
entity 互動的實體

player_killed_entity 編輯

玩家殺死實體時觸發。可用條件:

戰利品上下文參數 NBT複合標籤/JSON物件NBT陣列/JSON陣列entity
origin 玩家位置
entity 被殺死的實體

recipe_crafted 編輯

玩家合成配方時觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • 字串*recipe_id:檢查合成配方的命名空間ID
    • NBT陣列/JSON陣列ingredients:一個物品述詞列表,檢查合成使用的原材料,該列表中的述詞全部測試透過後才能達成此條件。
      每個物品述詞僅需對一個物品測試透過即可,且透過的物品之後不再參與測試,因此一個物品只能滿足其中一個述詞。
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文

recipe_unlocked 編輯

玩家解鎖配方時觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • 字串*recipe:檢查被解鎖的配方的命名空間ID
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文

ride_entity_in_lava 編輯

玩家騎乘位於熔岩上的實體時,每遊戲刻觸發一次。可用條件:

shot_crossbow 編輯

玩家使用發射投射物時觸發。可用條件:

slept_in_bed 編輯

玩家上睡覺時觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文

slide_down_block 編輯

玩家從蜂蜜塊上滑下時觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • 字串block:檢查玩家所滑下的方塊,為honey_block之外的值時不可能透過。
    • NBT複合標籤/JSON物件state:檢查玩家所滑下的方塊的方塊狀態。蜂蜜塊並沒有任何方塊屬性,故此項實際上並不能檢查任何條件。
      • 字串NBT複合標籤/JSON物件<方塊屬性>:(可選)檢查指定方塊屬性。如果方塊不滿足條件,那麼測試會失敗。
        • 字串min:(可選)數值的最小允許值。
        • 字串max:(可選)數值的最大允許值。
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文

started_riding 編輯

實體被騎乘時對所有玩家乘客觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文

summoned_entity 編輯

可用條件:

  • NBT複合標籤/JSON物件conditions
戰利品上下文參數 NBT複合標籤/JSON物件NBT陣列/JSON陣列entity
origin 玩家位置
entity 被召喚的實體

tame_animal 編輯

玩家馴服動物時觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
戰利品上下文參數 NBT複合標籤/JSON物件NBT陣列/JSON陣列entity
origin 玩家位置
entity 被馴服的實體

target_hit 編輯

玩家射中標靶時觸發。可用條件:

戰利品上下文參數 NBT複合標籤/JSON物件NBT陣列/JSON陣列projectile
origin 玩家位置
entity 被用來射擊標靶的投射物

thrown_item_picked_up_by_entity 編輯

實體撿起玩家扔出的物品時對扔出物品的玩家觸發。可用條件:

戰利品上下文參數 NBT複合標籤/JSON物件NBT陣列/JSON陣列entity
origin 玩家位置
entity 撿起物品的實體

thrown_item_picked_up_by_player 編輯

玩家撿起實體扔出的物品時觸發。可用條件:

戰利品上下文參數 NBT複合標籤/JSON物件NBT陣列/JSON陣列entity
origin 玩家位置
entity 扔出物品的實體

tick 編輯

遊戲刻對所有玩家觸發一次。可用條件:

  • NBT複合標籤/JSON物件conditions
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文

used_ender_eye 編輯

玩家使用終界之眼定位要塞時觸發。可用條件:

used_totem 編輯

玩家使用不死圖騰免於死亡時觸發。可用條件:

using_item 編輯

每個遊戲刻玩家使用持續使用的物品時觸發。可用於蜂蜜瓶鮮奶桶藥水盾牌望遠鏡三叉戟食物物品和終界之眼。大多數點擊一次即可啟動的物品,如釣竿,不受此觸發器影響。可用的條件:

villager_trade 編輯

玩家成交一項交易時觸發。可用條件:

戰利品上下文參數 NBT複合標籤/JSON物件NBT陣列/JSON陣列villager
origin 玩家位置
entity 參與交易的村民或流浪商人

voluntary_exile 編輯

玩家觸發一場新的突襲時觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文

歷史 編輯

Java版
1.1217w16b加入了item_durability_changed觸發器。
17w17a加入了levitation觸發器。
加入了location觸發器的一個新的feature條件。
17w17b加入了changed_dimension觸發器,有兩種可用條件:tofrom,都允許「overworld」「the_nether」或「the_end」為參數。
「位置」共享對象現在有了一個名為dimension的新的字串(和上述內容有相同的值)。
17w18a加入了新的ticktame_animal觸發器。
加入了新的show_toastannounce_to_chat顯示選項。
「entity」對象以及levitation觸發器現在使用一個共享的「distance」對象。它們檢查玩家是否在一定的x軸、y軸或z軸範圍內或之外,儘管水平位置不包括Y軸。
進度的載入現在嚴格要求JSON語法了。
17w18b加入了新的進度觸發器:consume_itemplaced_blockarbitrary_player_tick
pre1加入了hidden,隱藏進度介紹的設定,預設為否。
加入了新的effects_changedused_totemnether_travel的進度觸發器。
加入了function作為進度的獎勵,移除了進度中的commands獎勵。
進度中的物品和實體將擁有一個額外的NBT欄位。
進度中的實體將有額外的effectslocation欄位。
移除了arbitrary_player_tick觸發器。
1.1317w43a自訂進度移動到了資料包中,此前位於存檔的data/advancements目錄下工作。
pre6在進度圖示部分加入了nbt欄位。
1.1519w46a加入了觸發器bee_nest_destroyedsafely_harvest_honeyslide_down_block
1.1620w09a加入了target_hit觸發器。
20w10a修改了target_hit觸發器。
20w18a現在所有的實體述詞欄位可以指定列表以使用戰利品表述詞格式。
20w20a加入了觸發器thrown_item_picked_up_by_entityplayer_generates_container_lootitem_used_on_block
移除了觸發器safely_harvest_honey,改用item_used_on_block替代。
pre6加入了觸發器player_interacted_with_entity
1.1721w16a觸發器inventory_changed現在開啟容器就能觸發,而在此之前只有改變物品欄時才觸發。[4]
pre1加入了觸發器started_ridinglightning_strikeusing_item
1.1821w39a加入了觸發器fall_from_heightride_entity_in_lava
修改了觸發器nether_travel
1.1922w13a加入了觸發器kill_mob_near_sculk_catalyst
22w14a加入了觸發器item_delivered_to_playerallay_drop_item_on_block
移除了location、​slept_in_bed、​hero_of_the_villagevoluntary_exile進度觸發器中的location欄位。
22w15a加入了觸發器avoid_vibrationthrown_item_picked_up_by_player
移除了觸發器item_delivered_to_player,改用thrown_item_picked_up_by_player替代。
1.2023w16a加入了觸發器recipe_crafted
23w18a修改了觸發器placed_block、​item_used_on_blockallay_drop_item_on_block的條件格式。
1.20.524w03a加入了進度觸發器default_block_useany_block_use
24w12a加入了進度觸發器crafter_recipe_craftedfall_after_explosion
1.2124w21a將註冊進度的資料包資料夾advancements重新命名為advancement
1.21.224w34a更改了consume_item觸發器的觸發方式,現在它直接由新加入的consumable物品堆疊元件觸發。
24w37akilled_by_crossbow重新命名為killed_by_arrow
加入了新可選物品述詞欄位fired_from_weapon,用於匹配發射箭的物品。
Java版(即將到來)
1.21.525w04a現在字串background欄位不再需要textures/前綴與.png後綴。

已移除觸發器 編輯

arbitrary_player_tick 編輯

每遊戲刻僅對一名玩家觸發。無可用條件。

item_delivered_to_player 編輯

當悅靈向玩家投擲物品時觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文

player_damaged 編輯

玩家受到傷害時觸發。可用條件:

safely_harvest_honey 編輯

玩家從一個墊有營火蜂窩蜂箱中收穫蜂蜜時觸發。可用選項:

  • NBT複合標籤/JSON物件conditions
    • NBT複合標籤/JSON物件block:玩家收穫蜂蜜的方塊。
    • NBT複合標籤/JSON物件item:玩家用於收穫蜂蜜的物品。
      • 物品述詞[顯示]
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文

killed_by_crossbow 編輯

玩家使用弩遠程殺死生物或玩家時觸發。可用條件:

  • NBT複合標籤/JSON物件conditions
    • 整型NBT複合標籤/JSON物件unique_entity_types:殺死的實體種類的數量。
    • NBT陣列/JSON陣列victims:被殺死的實體的列表。所有述詞都必須被匹配,且一個實體只可以匹配一個述詞。
      • NBT複合標籤/JSON物件:一個被殺死的實體。
      • NBT陣列/JSON陣列:描述被殺死的任意實體的另一種格式。實體被該列表匹配,是玩家完成進度的必要條件。遊戲會以將要獲得進度的玩家的位置為來源,檢查被殺死的實體。
    • NBT複合標籤/JSON物件NBT陣列/JSON陣列player:將要獲得進度的玩家。詳見上文

參考 編輯

  1. 移至: 1.0 1.1 MC-116922
  2. MC-153385
  3. MC-205424
  4. MC-117653 — 錯誤狀態為「已修復」。

外部連結 編輯

導覽 編輯