Skip to content

Commit cd06bb7

Browse files
committed
Allow CVWs to work in multiple dimensions
1 parent f5248c9 commit cd06bb7

File tree

1 file changed

+11
-16
lines changed

1 file changed

+11
-16
lines changed

src/main/java/net/earthcomputer/clientcommands/cvw/ClientVirtualServer.java

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
11
package net.earthcomputer.clientcommands.cvw;
22

3-
import org.apache.logging.log4j.LogManager;
4-
import org.apache.logging.log4j.Logger;
5-
63
import com.mojang.authlib.GameProfileRepository;
74
import com.mojang.authlib.minecraft.MinecraftSessionService;
85
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
96

107
import it.unimi.dsi.fastutil.longs.Long2ObjectArrayMap;
118
import it.unimi.dsi.fastutil.longs.Long2ObjectMap;
12-
import net.earthcomputer.clientcommands.ClientCommandsMod;
139
import net.minecraft.client.Minecraft;
1410
import net.minecraft.crash.CrashReport;
1511
import net.minecraft.crash.CrashReportCategory;
@@ -23,13 +19,12 @@
2319
import net.minecraft.world.WorldType;
2420
import net.minecraft.world.chunk.storage.AnvilSaveConverter;
2521
import net.minecraft.world.storage.ISaveFormat;
22+
import net.minecraftforge.common.DimensionManager;
2623
import net.minecraftforge.common.MinecraftForge;
2724
import net.minecraftforge.event.world.WorldEvent;
2825

2926
public class ClientVirtualServer extends IntegratedServer {
3027

31-
private static final Logger LOGGER = LogManager.getLogger(ClientCommandsMod.MODID);
32-
3328
private int dimensionId;
3429
private GameType gameType;
3530
private ServerConnector previousServer;
@@ -74,15 +69,16 @@ public void loadAllWorlds(String saveName, String worldNameIn, long seed, WorldT
7469
dimensionId == 0 ? chunks : new Long2ObjectArrayMap<>(0), playerTag);
7570
overworld.init();
7671
overworld.initialize(worldSettings);
77-
overworld.addEventListener(new ServerWorldEventHandler(this, overworld));
78-
MinecraftForge.EVENT_BUS.post(new WorldEvent.Load(overworld));
79-
80-
ClientVirtualWorld world;
81-
if (dimensionId == 0) {
82-
world = overworld;
83-
} else {
84-
world = new ClientVirtualWorldMulti(this, dimensionId, worldSettings, chunks, playerTag, overworld);
85-
world.init();
72+
73+
for (int dim : DimensionManager.getStaticDimensionIDs()) {
74+
ClientVirtualWorld world;
75+
if (dim == 0) {
76+
world = overworld;
77+
} else {
78+
world = new ClientVirtualWorldMulti(this, dim, worldSettings,
79+
dimensionId == dim ? chunks : new Long2ObjectArrayMap<>(0), playerTag, overworld);
80+
world.init();
81+
}
8682
world.addEventListener(new ServerWorldEventHandler(this, world));
8783
MinecraftForge.EVENT_BUS.post(new WorldEvent.Load(world));
8884
}
@@ -96,7 +92,6 @@ public void loadAllWorlds(String saveName, String worldNameIn, long seed, WorldT
9692

9793
@Override
9894
public void saveAllWorlds(boolean isSilent) {
99-
LOGGER.info("Skipping world saving of CVW");
10095
}
10196

10297
@Override

0 commit comments

Comments
 (0)