diff options
author | EvilSeph <evilseph@gmail.com> | 2011-09-19 22:53:36 -0400 |
---|---|---|
committer | EvilSeph <evilseph@gmail.com> | 2011-09-20 01:20:05 -0400 |
commit | 167febd8e69d3e53f584f0a3d39e02dec2353bc5 (patch) | |
tree | b86b217572af2888712960fcec558fb5768da59e /src/main/java/net/minecraft/server/World.java | |
parent | d01a3acd827201aad5be65a557725ab6ce465221 (diff) | |
download | craftbukkit-167febd8e69d3e53f584f0a3d39e02dec2353bc5.tar craftbukkit-167febd8e69d3e53f584f0a3d39e02dec2353bc5.tar.gz craftbukkit-167febd8e69d3e53f584f0a3d39e02dec2353bc5.tar.lz craftbukkit-167febd8e69d3e53f584f0a3d39e02dec2353bc5.tar.xz craftbukkit-167febd8e69d3e53f584f0a3d39e02dec2353bc5.zip |
Fixed allow-animals not applying to chunk generation.
Moved the legitimacy checking into World.addEntity for better organisation and to better account for future methods being added that control whether or not an entity should spawn.
Diffstat (limited to 'src/main/java/net/minecraft/server/World.java')
-rw-r--r-- | src/main/java/net/minecraft/server/World.java | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java index 4814f90d..f4cf254d 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -839,6 +839,13 @@ public class World implements IBlockAccess { // CraftBukkit start if (entity instanceof EntityLiving && !(entity instanceof EntityPlayer)) { + boolean isAnimal = entity instanceof EntityAnimal || entity instanceof EntityWaterAnimal; + boolean isMonster = entity instanceof EntityMonster || entity instanceof EntityGhast || entity instanceof EntitySlime; + + if (spawnReason == SpawnReason.NATURAL || spawnReason == SpawnReason.SPAWNER || spawnReason == SpawnReason.BED || spawnReason == SpawnReason.EGG) { + if (isAnimal && !allowAnimals || isMonster && !allowMonsters) return false; + } + CreatureSpawnEvent event = CraftEventFactory.callCreatureSpawnEvent((EntityLiving) entity, spawnReason); if (event.isCancelled()) { |