diff options
author | Travis Watkins <amaranth@ubuntu.com> | 2012-04-23 19:01:22 -0500 |
---|---|---|
committer | EvilSeph <evilseph@gmail.com> | 2012-04-23 22:54:43 -0400 |
commit | edfc8ba92fb5aaf3ffb8419cd70548ba076a2d3f (patch) | |
tree | 31ce6908cdb0f08979499b7d580b1777b668a0dd /src/main/java/net/minecraft/server/SpawnerCreature.java | |
parent | b7376e08651e32addce2ba986d02f6e53e3ecdf2 (diff) | |
download | craftbukkit-edfc8ba92fb5aaf3ffb8419cd70548ba076a2d3f.tar craftbukkit-edfc8ba92fb5aaf3ffb8419cd70548ba076a2d3f.tar.gz craftbukkit-edfc8ba92fb5aaf3ffb8419cd70548ba076a2d3f.tar.lz craftbukkit-edfc8ba92fb5aaf3ffb8419cd70548ba076a2d3f.tar.xz craftbukkit-edfc8ba92fb5aaf3ffb8419cd70548ba076a2d3f.zip |
Add per-world spawn limits with fallback to server-wide bukkit.yml settings.
Fixes BUKKIT-1565
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: |