13
0
geforkt von Mirrors/Paper

Added configurable animal and monster ticks per spawn setting.

Dieser Commit ist enthalten in:
EvilSeph 2012-02-10 10:23:52 -05:00
Ursprung c38fcb360a
Commit 63b9ed9ab4
4 geänderte Dateien mit 44 neuen und 1 gelöschten Zeilen

Datei anzeigen

@ -77,6 +77,8 @@ public class World implements IBlockAccess {
public boolean allowMonsters; // CraftBukkit - private -> public
public boolean allowAnimals; // CraftBukkit - private -> public
private LongHashset chunkTickList; // CraftBukkit
public long ticksPerAnimalSpawns; // CraftBukkit
public long ticksPerMonsterSpawns; // CraftBukkit
private int U;
int[] H;
private List V;
@ -148,6 +150,8 @@ public class World implements IBlockAccess {
this.allowMonsters = true;
this.allowAnimals = true;
this.chunkTickList = new LongHashset(); // CraftBukkit
this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit
this.ticksPerMonsterSpawns = this.getServer().getTicksPerMonsterSpawns(); // CraftBukkit
this.U = this.random.nextInt(12000);
this.H = new int['\u8000'];
this.V = new ArrayList();
@ -1722,8 +1726,9 @@ public class World implements IBlockAccess {
// MethodProfiler.a("mobSpawner"); // CraftBukkit - not in production code
// CraftBukkit start - Only call spawner if we have players online and the world allows for mobs or animals
long time = this.worldData.getTime();
if ((this.allowMonsters || this.allowAnimals) && (this instanceof WorldServer && this.getServer().getHandle().players.size() > 0)) {
SpawnerCreature.spawnEntities(this, this.allowMonsters, this.allowAnimals && this.worldData.getTime() % 400L == 0L);
SpawnerCreature.spawnEntities(this, this.allowMonsters && (this.ticksPerMonsterSpawns != 0 && time % this.ticksPerMonsterSpawns == 0L), this.allowAnimals && (this.ticksPerAnimalSpawns != 0 && time % this.ticksPerAnimalSpawns == 0L));
}
// CraftBukkit end
// MethodProfiler.b("chunkSource"); // CraftBukkit - not in production code

Datei anzeigen

@ -357,6 +357,14 @@ public final class CraftServer implements Server {
return this.configuration.getInt("settings.ping-packet-limit", 100);
}
public int getTicksPerAnimalSpawns() {
return this.configuration.getInt("ticks-per.animal-spawns");
}
public int getTicksPerMonsterSpawns() {
return this.configuration.getInt("ticks-per.monster-spawns");
}
public PluginManager getPluginManager() {
return pluginManager;
}
@ -410,6 +418,17 @@ public final class CraftServer implements Server {
for (WorldServer world : console.worlds) {
world.difficulty = difficulty;
world.setSpawnFlags(monsters, animals);
if (this.getTicksPerAnimalSpawns() < 0) {
world.ticksPerAnimalSpawns = 400;
} else {
world.ticksPerAnimalSpawns = this.getTicksPerAnimalSpawns();
}
if (this.getTicksPerMonsterSpawns() < 0) {
world.ticksPerMonsterSpawns = 1;
} else {
world.ticksPerMonsterSpawns = this.getTicksPerMonsterSpawns();
}
}
pluginManager.clearPlugins();

Datei anzeigen

@ -982,4 +982,20 @@ public class CraftWorld implements World {
public boolean canGenerateStructures() {
return world.getWorldData().o();
}
public long getTicksPerAnimalSpawns() {
return world.ticksPerAnimalSpawns;
}
public void setTicksPerAnimalSpawns(int ticksPerAnimalSpawns) {
world.ticksPerAnimalSpawns = ticksPerAnimalSpawns;
}
public long getTicksPerMonsterSpawns() {
return world.ticksPerMonsterSpawns;
}
public void setTicksPerMonsterSpawns(int ticksPerMonsterSpawns) {
world.ticksPerMonsterSpawns = ticksPerMonsterSpawns;
}
}

Datei anzeigen

@ -21,6 +21,9 @@ settings:
update-folder: update
ping-packet-limit: 100
use-exact-login-location: false
ticks-per:
animal-spawns: 400
monster-spawns: 1
aliases:
icanhasbukkit:
- version