diff options
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/net/minecraft/server/SpawnerCreature.java | 5 | ||||
-rw-r--r-- | src/main/java/org/bukkit/craftbukkit/CraftServer.java | 7 | ||||
-rw-r--r-- | src/main/java/org/bukkit/craftbukkit/CraftWorld.java | 14 |
3 files changed, 25 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; |