From edfc8ba92fb5aaf3ffb8419cd70548ba076a2d3f Mon Sep 17 00:00:00 2001 From: Travis Watkins Date: Mon, 23 Apr 2012 19:01:22 -0500 Subject: Add per-world spawn limits with fallback to server-wide bukkit.yml settings. Fixes BUKKIT-1565 --- .../java/net/minecraft/server/SpawnerCreature.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'src/main/java/net/minecraft/server/SpawnerCreature.java') 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: -- cgit v1.2.3