Mojira Archive
MC-183860

Zombie villager converted from villager gets PersistenceRequired depending on whether attacking zombie had it

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

  1. Summon a villager with PersistenceRequired:0b (encase it, to make the next steps easier)
    /summon villager ~ ~ ~ {PersistenceRequired:0b,Health:1f}
    
  2. Set the difficult to Normal or Hard
  3. Summon a zombie or subtype which has PersistenceRequired:1b
    /summon husk ~ ~ ~ {PersistenceRequired:1b}
    
  4. Wait until the villager was killed
  5. 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.

Fixed

Marcono1234

[Mojang] Cory Scheviak

2020-05-14, 01:49 AM

2020-05-29, 01:36 PM

2020-05-28, 03:54 PM

2

1

Plausible

Normal

Mob behaviour, Mob spawning

20w20a

20w22a