-
Bug
-
Resolution: Fixed
-
Minecraft 18w07c, Minecraft 18w16a, Minecraft 18w20c, Minecraft 18w21a, Minecraft 18w21b
-
Confirmed
The bug
The following advancement will not be granted due to the lack of a type string:
{ "criteria": { "run": { "trigger": "minecraft:player_hurt_entity", "conditions": { "damage": { "source_entity": { "nbt": "{SelectedItem:{}}" } } } } } }
Adding type will allow all checks to function correctly:
{ "criteria": { "run": { "trigger": "minecraft:player_hurt_entity", "conditions": { "damage": { "source_entity": { "type": "minecraft:player", "nbt": "{SelectedItem:{}}" } } } } } }
Code analysis
In 1.12 MCP, net.minecraft.advancements.critereon.EntityPredicate(), the method to compare the incoming entity to the data contains this line, which first ensures that type was specified before comparing it to the incoming entity:
else if (this.field_192484_b != null && !EntityList.isStringEntityName(p_192482_2_, this.field_192484_b)) { return false; }
However, in 1.13, the check for null does not exist, meaning the whole predicate fails at this point (preventing all other options from working).
- is duplicated by
-
MC-124432 Some advancements do not work when specifying NBT
- Resolved
-
MC-124748 Entity NBT as Advancement Criteria doesn't work
- Resolved
-
MC-126413 Entity conditions for advancements triggers which can only be one type no longer allow you do omit the type condition
- Resolved
-
MC-128135 the "nbt" in advancement doesn`t work
- Resolved