Minecraft-Java-Edition

(Java Minecraft 1.14)戰利品表獎勵不會與 /given 項目疊加,即使它們具有相同的 nbt?

  • July 10, 2022

我在數據包中有一個項目,它具有直接提供給玩家的補充功能(用於測試),以及戰利品表中的一個條目(這是生存玩家獲得它的方式)。我最近注意到這兩個項目在任何情況下都不會堆疊,即使它們應該具有完全相同的nbt 數據。該/give命令如下所示:

give @s minecraft:quartz{dmd_dark_quartz:1b,CustomModelData:256,display:{Name:"{\"text\":\"Dark Quartz\",\"color\":\"dark_purple\",\"italic\":\"false\"}"}} 1

雖然戰利品表如下所示:

{
 "type": "minecraft:item",
 "conditions": [
   {
     "condition": "random_chance",
     "chance": 0.75
   }
 ],
 "functions": [
   {
     "function": "set_name",
     "name": {"text":"Dark Quartz","color":"dark_purple","italic":"false"}
   },
   {
     "function": "set_nbt",
     "tag": "{dmd_dark_quartz:1b,CustomModelData:256}"
   },
   {
      "function": "minecraft:explosion_decay"
   }
 ],
 "name": "minecraft:quartz"
}

當我將這兩個物品握在手中並使用/data get entity @s SelectedItem時,唯一的區別是在戰利品表版本中斜體的錯誤值周圍沒有引號。這是一張圖片以進一步澄清我的意思: 我強調了不同的價值觀。有誰知道這是一個錯誤還是什麼原因造成的?我認為這可能是一個錯誤,因為所有其他值(例如)都有引號,但那個單數沒有。是因為它是真/假值並且不需要引號嗎?如果它們堆疊起來,我會更喜歡,因為這樣測試會更容易,而且我不必測試兩個版本的所有內容,但是在命令中不包括引號似乎有點褻瀆神明。

數據獲取截圖
false``"dark_purple"``/give

經過進一步測試,不包括/give命令中的引號會給出與戰利品表版本具有完全相同的nbt(因此/data get看起來完全相同)但仍不與任何一個堆疊的項目。

關於為什麼會發生這種情況的任何答案?

false不應該在引號中。

嘗試僅使用 set_nbt 函式,例如:

 "function": "set_nbt",
 "tag": "{display:{Name:'{\"text\":\"Dark Quartz\",\"color\":\"dark_purple\",\"italic\":false}'},CustomModelData:1}"

我在流浪交易者交易中測試它,它奏效了!名稱、顏色和斜體選項與 /give 命令中的參數完全相同。

引用自:https://gaming.stackexchange.com/questions/355758