summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/net/minecraft/server/World.java2
-rw-r--r--src/main/java/org/bukkit/craftbukkit/CraftWorld.java17
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());