From 3a419481ea87eaebc99cb853fca9d128dfb518c9 Mon Sep 17 00:00:00 2001 From: Eric Stokes Date: Sun, 29 Jan 2012 10:40:45 -0700 Subject: [PATCH] Added 'generate-structure' setting support and WorldCreator property. Fixes BUKKIT-655 and BUKKIT-592 --- src/main/java/net/minecraft/server/MinecraftServer.java | 3 ++- src/main/java/org/bukkit/craftbukkit/CraftServer.java | 4 +++- src/main/java/org/bukkit/craftbukkit/CraftWorld.java | 4 ++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index fc844a3a44..5e29a71dc9 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -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 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java index a7e98d74a5..07ab830f09 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -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; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java index 969e25e916..5962004bfe 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -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(); + } }