diff options
Diffstat (limited to 'src/main/java/net/minecraft/server/SpawnerCreature.java')
-rw-r--r-- | src/main/java/net/minecraft/server/SpawnerCreature.java | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java index 1090c0da..4f4d6c0a 100644 --- a/src/main/java/net/minecraft/server/SpawnerCreature.java +++ b/src/main/java/net/minecraft/server/SpawnerCreature.java @@ -93,7 +93,23 @@ public final class SpawnerCreature { for (int j1 = 0; j1 < j; ++j1) { EnumCreatureType enumcreaturetype = aenumcreaturetype[j1]; - if ((!enumcreaturetype.d() || flag1) && (enumcreaturetype.d() || flag) && world.a(enumcreaturetype.a()) <= enumcreaturetype.b() * b.size() / 256) { + // CraftBukkit start - use per-world spawn limits + int limit = 0; + switch(enumcreaturetype) { + case MONSTER: + limit = world.getWorld().getMonsterSpawnLimit(); + case CREATURE: + limit = world.getWorld().getAnimalSpawnLimit(); + case WATER_CREATURE: + limit = world.getWorld().getWaterAnimalSpawnLimit(); + } + + if (limit == 0) { + return 0; + } + // CraftBukkit end + + if ((!enumcreaturetype.d() || flag1) && (enumcreaturetype.d() || flag) && world.a(enumcreaturetype.a()) <= limit * b.size() / 256) { // CraftBukkit - use per-world limits // CraftBukkit start label108: |