The bug
When a villager is killed by a zombie and converts to a zombie villager, the zombie villager will have PersistenceRequired
set depending on whether the attacking zombie had it.
This is incorrect, it should be set depending on whether the villager which was killed had it set.
Reproduction steps
Summon a villager with
PersistenceRequired:0b
(encase it, to make the next steps easier)/summon villager ~ ~ ~ {PersistenceRequired:0b,Health:1f}
Set the difficult to Normal or Hard
Summon a zombie or subtype which has
PersistenceRequired:1b
/summon husk ~ ~ ~ {PersistenceRequired:1b}
Wait until the villager was killed
Inspect the NBT data of the new zombie villager
/data get entity @e[type=zombie_villager,limit=1,sort=nearest] PersistenceRequired
❌ It has
PersistenceRequired:1b
Code analysis
20w19a, Mojang names
The check in Zombie.killed(LivingEntity)
is incorrect:
if (this.isPersistenceRequired()) {
zombieVillager.setPersistenceRequired();
}
This should be if (villager.isPersistenceRequired())
instead.
Linked issues
Comments
No comments.