Added 'generate-structure' setting support and WorldCreator property.

Fixes BUKKIT-655 and BUKKIT-592
This commit is contained in:
Eric Stokes 2012-01-29 10:40:45 -07:00 committed by EvilSeph
parent f1a35effb0
commit 3a419481ea
3 changed files with 9 additions and 2 deletions

View File

@ -217,6 +217,7 @@ public class MinecraftServer implements Runnable, ICommandListener, IMinecraftSe
j = WorldSettings.a(j);
log.info("Default game type: " + j);
// CraftBukkit start (+ removed worldsettings and servernbtmanager)
boolean generateStructures = this.propertyManager.getBoolean("generate-structures", true);
int worldCount = 3;
for (int k = 0; k < worldCount; ++k) {
@ -244,7 +245,7 @@ public class MinecraftServer implements Runnable, ICommandListener, IMinecraftSe
String name = (dimension == 0) ? s : s + "_" + worldType;
ChunkGenerator gen = this.server.getGenerator(name);
WorldSettings settings = new WorldSettings(i, j, true, false, worldtype);
WorldSettings settings = new WorldSettings(i, j, generateStructures, false, worldtype);
if (k == 0) {
world = new WorldServer(this, new ServerNBTManager(server.getWorldContainer(), s, true), s, dimension, settings, org.bukkit.World.Environment.getEnvironment(dimension), gen); // CraftBukkit

View File

@ -521,6 +521,7 @@ public final class CraftServer implements Server {
File folder = new File(getWorldContainer(), name);
World world = getWorld(name);
WorldType type = WorldType.a(creator.type().getName());
boolean generateStructures = creator.generateStructures();
if (world != null) {
return world;
@ -552,7 +553,8 @@ public final class CraftServer implements Server {
}
} while(used);
boolean hardcore = false;
WorldServer internal = new WorldServer(console, new ServerNBTManager(getWorldContainer(), name, true), name, dimension, new WorldSettings(creator.seed(), getDefaultGameMode().getValue(), true, hardcore, type), creator.environment(), generator);
WorldServer internal = new WorldServer(console, new ServerNBTManager(getWorldContainer(), name, true), name, dimension, new WorldSettings(creator.seed(), getDefaultGameMode().getValue(), generateStructures, hardcore, type), creator.environment(), generator);
if (!(worlds.containsKey(name.toLowerCase()))) {
return null;

View File

@ -978,4 +978,8 @@ public class CraftWorld implements World {
public org.bukkit.WorldType getWorldType() {
return org.bukkit.WorldType.getByName(world.getWorldData().getType().name());
}
public boolean canGenerateStructures() {
return world.getWorldData().o();
}
}