diff options
-rw-r--r-- | src/main/java/net/minecraft/server/World.java | 2 | ||||
-rw-r--r-- | src/main/java/org/bukkit/craftbukkit/CraftWorld.java | 17 |
2 files changed, 11 insertions, 8 deletions
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java index 9f698e23..a5f954b2 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -47,7 +47,7 @@ public class World implements IBlockAccess { public int spawnMonsters; public Random random = new Random(); public boolean s = false; - public final WorldProvider worldProvider; + public WorldProvider worldProvider; // Craftbukkit - remove final protected List u = new ArrayList(); public IChunkProvider chunkProvider; // CraftBukkit - protected -> public protected final IDataManager w; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java index 2b38b2bb..a942e743 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -26,7 +26,7 @@ import org.bukkit.World; public class CraftWorld implements World { private final WorldServer world; - private final Environment environment; + private Environment environment; private final CraftServer server; private final ChunkProviderServer provider; private HashMap<Integer,CraftChunk> unloadedChunks = new HashMap<Integer, CraftChunk>(); @@ -37,12 +37,8 @@ public class CraftWorld implements World { this.world = world; this.server = world.getServer(); this.provider = world.chunkProviderServer; - - if (world.worldProvider instanceof WorldProviderHell) { - environment = Environment.NETHER; - } else { - environment = Environment.NORMAL; - } + + environment = Environment.getEnvironment(world.worldProvider.dimension); server.addWorld(this); } @@ -443,6 +439,13 @@ public class CraftWorld implements World { public Environment getEnvironment() { return environment; } + + public void setEnvironment(Environment env) { + if (environment != env) { + environment = env; + world.worldProvider = WorldProvider.a(environment.getId()); + } + } public Block getBlockAt(Location location) { return getBlockAt(location.getBlockX(), location.getBlockY(), location.getBlockZ()); |