summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/net/minecraft/server/SpawnerCreature.java5
-rw-r--r--src/main/java/org/bukkit/craftbukkit/CraftServer.java7
-rw-r--r--src/main/java/org/bukkit/craftbukkit/CraftWorld.java14
-rw-r--r--src/main/resources/configurations/bukkit.yml1
4 files changed, 26 insertions, 1 deletions
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
index 52f9323e..3ae2e830 100644
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
@@ -69,7 +69,7 @@ public final class SpawnerCreature {
EnumCreatureType enumcreaturetype = aenumcreaturetype[j1];
// CraftBukkit start - use per-world spawn limits
- int limit = 0;
+ int limit = enumcreaturetype.b();
switch (enumcreaturetype) {
case MONSTER:
limit = worldserver.getWorld().getMonsterSpawnLimit();
@@ -80,6 +80,9 @@ public final class SpawnerCreature {
case WATER_CREATURE:
limit = worldserver.getWorld().getWaterAnimalSpawnLimit();
break;
+ case AMBIENT:
+ limit = worldserver.getWorld().getAmbientSpawnLimit();
+ break;
}
if (limit == 0) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 33bdc122..94b2c760 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -155,6 +155,7 @@ public final class CraftServer implements Server {
private int monsterSpawn = -1;
private int animalSpawn = -1;
private int waterAnimalSpawn = -1;
+ private int ambientSpawn = -1;
private File container;
private WarningState warningState = WarningState.DEFAULT;
@@ -190,6 +191,7 @@ public final class CraftServer implements Server {
monsterSpawn = configuration.getInt("spawn-limits.monsters");
animalSpawn = configuration.getInt("spawn-limits.animals");
waterAnimalSpawn = configuration.getInt("spawn-limits.water-animals");
+ ambientSpawn = configuration.getInt("spawn-limits.ambient");
console.autosavePeriod = configuration.getInt("ticks-per.autosave");
warningState = WarningState.value(configuration.getString("settings.deprecated-verbose"));
@@ -526,6 +528,7 @@ public final class CraftServer implements Server {
monsterSpawn = configuration.getInt("spawn-limits.monsters");
animalSpawn = configuration.getInt("spawn-limits.animals");
waterAnimalSpawn = configuration.getInt("spawn-limits.water-animals");
+ ambientSpawn = configuration.getInt("spawn-limits.ambient");
warningState = WarningState.value(configuration.getString("settings.deprecated-verbose"));
console.autosavePeriod = configuration.getInt("ticks-per.autosave");
@@ -1236,6 +1239,10 @@ public final class CraftServer implements Server {
return waterAnimalSpawn;
}
+ public int getAmbientSpawnLimit() {
+ return ambientSpawn;
+ }
+
public boolean isPrimaryThread() {
return Thread.currentThread().equals(console.primaryThread);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 5855b549..45091168 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -57,6 +57,7 @@ public class CraftWorld implements World {
private int monsterSpawn = -1;
private int animalSpawn = -1;
private int waterAnimalSpawn = -1;
+ private int ambientSpawn = -1;
private static final Random rand = new Random();
@@ -1188,6 +1189,19 @@ public class CraftWorld implements World {
waterAnimalSpawn = limit;
}
+ public int getAmbientSpawnLimit() {
+ if (ambientSpawn < 0) {
+ return server.getAmbientSpawnLimit();
+ }
+
+ return ambientSpawn;
+ }
+
+ public void setAmbientSpawnLimit(int limit) {
+ ambientSpawn = limit;
+ }
+
+
public void playSound(Location loc, Sound sound, float volume, float pitch) {
if (loc == null || sound == null) return;
diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml
index 2f587dd2..5307abe4 100644
--- a/src/main/resources/configurations/bukkit.yml
+++ b/src/main/resources/configurations/bukkit.yml
@@ -28,6 +28,7 @@ spawn-limits:
monsters: 70
animals: 15
water-animals: 5
+ ambient: 15
ticks-per:
animal-spawns: 400
monster-spawns: 1