mojira.dev
MC-191076

"inventory_changed" advancement trigger with "items" condition does not work anymore if having the specified item beforehand and then obtaining or consuming a different item

The bug

When using an items condition in the inventory_changed advancement trigger to detect for a specific item in the inventory, the advancement does not work anymore if the player has that item beforehand and then obtains or consumes a different item. This is not the case in 1.15.2 and older versions.

How to reproduce

  1. Install the data pack below in a world for easier reproduction.

  2. Obtain a Crafting Table.
    → ✔ A ding sound event plays.

  3. Update the inventory keeping the Crafting Table intact.
    → ❌ The ding sound event does not play even if the inventory changes and preserves the Crafting Table.

Attachments

Comments 4

The bug should be assigned to the Data Packs category.

Here is an example advancement:

{
  "criteria": {
    "crafting_table": {
      "trigger": "inventory_changed",
      "conditions": {
        "items": [
          {
            "item": "crafting_table"
          }
        ]
      }
    }
  },
  "rewards": {
    "function": "game:root"
  }
}
# root.mcfunction
tellraw @a ["",{"selector":"@s"}," has a Crafting Table"]
advancement revoke @s only game:root

Obtain a Crafting Table, and a message is shown in chat. Obtain another item, and the message is not shown in chat although you have the Crafting Table intact. This does not happen in older versions.

The bug should also be assigned to the Advancements category.

user-a4a49

(Unassigned)

Confirmed

Advancements, Data Packs

inventory, inventory_changed, items

1.16 Release Candidate 1, 1.16, 1.16.1, 20w27a, 20w28a, ..., 21w39a, 21w41a, 21w42a, 1.20.6, 1.21.4

Retrieved