diff --git a/src/main/java/net/minecraftforge/common/DimensionManager.java b/src/main/java/net/minecraftforge/common/DimensionManager.java index 82b3587..8f49358 100644 --- a/src/main/java/net/minecraftforge/common/DimensionManager.java +++ b/src/main/java/net/minecraftforge/common/DimensionManager.java @@ -239,13 +239,18 @@ return; // If a provider hasn't been registered then we can't hotload the dim } MinecraftServer mcServer = overworld.func_73046_m(); - mcServer.getMultiWorld().initDimension(dim); - /* + if(!mcServer.isSinglePlayer()) + { + mcServer.getMultiWorld().initDimension(dim); + return; + } + ISaveHandler savehandler = overworld.getSaveHandler(); WorldSettings worldSettings = new WorldSettings(overworld.getWorldInfo()); WorldServer world = (dim == 0 ? overworld : new WorldServerMulti(mcServer, savehandler, overworld.getWorldInfo().getWorldName(), dim, worldSettings, overworld, mcServer.theProfiler)); world.addWorldAccess(new WorldManager(mcServer, world)); + mcServer.getMultiWorld().onClientInitDimension(world); MinecraftForge.EVENT_BUS.post(new WorldEvent.Load(world)); if (!mcServer.isSinglePlayer()) { @@ -253,7 +258,6 @@ } mcServer.func_147139_a(mcServer.func_147135_j()); - */ } public static WorldServer getWorld(int id) diff --git a/src/main/java/org/ultramine/server/MultiWorld.java b/src/main/java/org/ultramine/server/MultiWorld.java index 1a9e965..c194f4f 100644 --- a/src/main/java/org/ultramine/server/MultiWorld.java +++ b/src/main/java/org/ultramine/server/MultiWorld.java @@ -191,6 +191,23 @@ initWorld(world, conf); } + @SideOnly(Side.CLIENT) + public void onClientInitDimension(WorldServer world) + { + WorldConfig conf = new WorldConfig(); + conf.mobSpawn = new WorldConfig.MobSpawn(); + conf.settings = new WorldConfig.Settings(); + conf.chunkLoading = new WorldConfig.ChunkLoading(); + + world.setConfig(conf); + String name = world.getWorldInfo().getWorldName(); + dimToWorldMap.put(world.provider.dimensionId, world); + if(nameToWorldMap.containsKey(name)) + nameToWorldMap.put(name + world.provider.dimensionId, world); + else + nameToWorldMap.put(name, world); + } + @SideOnly(Side.SERVER) private WorldSettings makeSettings(ISaveHandler save, WorldConfig conf) {