Advancement trigger item_durability_changed doesn't trigger with mending
The Bug
The minecraft:item_durability_changed advancement trigger doesn't trigger when the mending enchantment repairs items.
Steps to Reproduce:
- Download the attached data pack. mc-127340.zip
- Create a new world using this data pack.
- Once you've entered the world, reload all data packs.
/reload
- Give yourself a wooden shovel enchanted with mending that is slightly damaged.
/give @s minecraft:wooden_shovel{Damage:30,Enchantments:[{id:"mending",lvl:1}]}- Switch into survival mode and use the shovel.
- → Notice how the scoreboard increases, therefore indicating that the minecraft:item_durability_changed advancement trigger was triggered.
- Make sure you're holding the shovel and summon an experience orb at your position so that the mending enchantment repairs it.
/summon minecraft:experience_orb ~ ~ ~ {Value:1}- → Notice how the scoreboard doesn't increase, therefore indicating that the minecraft:item_durability_changed advancement trigger doesn't trigger when the mending enchantment repairs items.
Expected Behavior
The expected behavior would be that the minecraft:item_durability_changed advancement trigger would trigger when the mending enchantment repairs items.
Code analysis and fix
Code analysis and fix by [Mod] Avoma can be found in this comment.