-
Bug
-
Resolution: Fixed
-
Minecraft 1.14.2
-
None
-
Plausible
-
(Unassigned)
-
Normal
In 1.14.2, the Village Siege seems to never happen and by looking the code, the method used to find a random position for a zombie (and for the initial test of position) always return null (because of the test about "creature can spawn" with null entityType provided).
In MCP mappings, it looks like this :
@Nullable private Vec3d findRandomSpawnPos(BlockPos pos) { for(int i = 0; i < 10; ++i) { BlockPos blockpos = pos.add(this.world.rand.nextInt(16) - 8, this.world.rand.nextInt(6) - 3, this.world.rand.nextInt(16) - 8); if (this.world.func_217483_b_(blockpos) && WorldEntitySpawner.canCreatureTypeSpawnAtLocation(EntitySpawnPlacementRegistry.PlacementType.ON_GROUND, this.world, blockpos, (EntityType<?>)null)) { return new Vec3d((double)blockpos.getX(), (double)blockpos.getY(), (double)blockpos.getZ()); } } return null; }
and the method related for the WorldEntitySpawner.canCreatureTypeSpawnAtLocation() return false, as the method above is using a null entityType :
public static boolean canCreatureTypeSpawnAtLocation(EntitySpawnPlacementRegistry.PlacementType placeType, IWorldReader worldIn, BlockPos pos, @Nullable EntityType<?> entityTypeIn) { if (entityTypeIn != null && worldIn.getWorldBorder().contains(pos)) { return placeType.canSpawnAt(worldIn, pos, entityTypeIn); } return false; }