summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/SpawnerCreature.java
diff options
context:
space:
mode:
authorTravis Watkins <amaranth@ubuntu.com>2012-04-23 19:01:22 -0500
committerEvilSeph <evilseph@gmail.com>2012-04-23 22:54:43 -0400
commitedfc8ba92fb5aaf3ffb8419cd70548ba076a2d3f (patch)
tree31ce6908cdb0f08979499b7d580b1777b668a0dd /src/main/java/net/minecraft/server/SpawnerCreature.java
parentb7376e08651e32addce2ba986d02f6e53e3ecdf2 (diff)
downloadcraftbukkit-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.java18
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: