diff --git a/core/src/main/java/com/volmit/iris/core/nms/INMSBinding.java b/core/src/main/java/com/volmit/iris/core/nms/INMSBinding.java index 25e5f688b..d7a28f822 100644 --- a/core/src/main/java/com/volmit/iris/core/nms/INMSBinding.java +++ b/core/src/main/java/com/volmit/iris/core/nms/INMSBinding.java @@ -135,4 +135,6 @@ public interface INMSBinding { Pair injectUncached(boolean overworld, boolean nether, boolean end); boolean missingDimensionTypes(boolean overworld, boolean nether, boolean end); + + void removeCustomDimensions(World world); } diff --git a/core/src/main/java/com/volmit/iris/core/nms/v1X/NMSBinding1X.java b/core/src/main/java/com/volmit/iris/core/nms/v1X/NMSBinding1X.java index 33f83ddd4..ec0626403 100644 --- a/core/src/main/java/com/volmit/iris/core/nms/v1X/NMSBinding1X.java +++ b/core/src/main/java/com/volmit/iris/core/nms/v1X/NMSBinding1X.java @@ -135,6 +135,11 @@ public class NMSBinding1X implements INMSBinding { return false; } + @Override + public void removeCustomDimensions(World world) { + + } + @Override public CompoundTag serializeEntity(Entity location) { return null; diff --git a/core/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java b/core/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java index 863d7d268..9b57072c2 100644 --- a/core/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java +++ b/core/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java @@ -127,6 +127,7 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun try { if (initialized || !world.name().equals(event.getWorld().getName())) return; + INMS.get().removeCustomDimensions(event.getWorld()); world.setRawWorldSeed(event.getWorld().getSeed()); Engine engine = getEngine(event.getWorld()); if (engine == null) { diff --git a/nms/v1_20_R1/src/main/java/com/volmit/iris/core/nms/v1_20_R1/NMSBinding.java b/nms/v1_20_R1/src/main/java/com/volmit/iris/core/nms/v1_20_R1/NMSBinding.java index 66723b82a..2e79fabf0 100644 --- a/nms/v1_20_R1/src/main/java/com/volmit/iris/core/nms/v1_20_R1/NMSBinding.java +++ b/nms/v1_20_R1/src/main/java/com/volmit/iris/core/nms/v1_20_R1/NMSBinding.java @@ -687,6 +687,11 @@ public class NMSBinding implements INMSBinding { return overworld || nether || end; } + @Override + public void removeCustomDimensions(World world) { + ((CraftWorld) world).getHandle().K.customDimensions = null; + } + private WorldLoader.DataLoadContext supplier(WorldLoader.DataLoadContext old) { return dataLoadContext.aquire(() -> new WorldLoader.DataLoadContext( old.resources(), diff --git a/nms/v1_20_R2/src/main/java/com/volmit/iris/core/nms/v1_20_R2/NMSBinding.java b/nms/v1_20_R2/src/main/java/com/volmit/iris/core/nms/v1_20_R2/NMSBinding.java index 6ef8bd4a8..b587280d4 100644 --- a/nms/v1_20_R2/src/main/java/com/volmit/iris/core/nms/v1_20_R2/NMSBinding.java +++ b/nms/v1_20_R2/src/main/java/com/volmit/iris/core/nms/v1_20_R2/NMSBinding.java @@ -688,6 +688,11 @@ public class NMSBinding implements INMSBinding { return overworld || nether || end; } + @Override + public void removeCustomDimensions(World world) { + ((CraftWorld) world).getHandle().K.customDimensions = null; + } + private WorldLoader.DataLoadContext supplier(WorldLoader.DataLoadContext old) { return dataLoadContext.aquire(() -> new WorldLoader.DataLoadContext( old.resources(), diff --git a/nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/NMSBinding.java b/nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/NMSBinding.java index 84eec1ff5..63efb9984 100644 --- a/nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/NMSBinding.java +++ b/nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/NMSBinding.java @@ -689,6 +689,11 @@ public class NMSBinding implements INMSBinding { return overworld || nether || end; } + @Override + public void removeCustomDimensions(World world) { + ((CraftWorld) world).getHandle().K.customDimensions = null; + } + private WorldLoader.DataLoadContext supplier(WorldLoader.DataLoadContext old) { return dataLoadContext.aquire(() -> new WorldLoader.DataLoadContext( old.resources(), diff --git a/nms/v1_20_R4/src/main/java/com/volmit/iris/core/nms/v1_20_R4/NMSBinding.java b/nms/v1_20_R4/src/main/java/com/volmit/iris/core/nms/v1_20_R4/NMSBinding.java index 0dffeb195..db25b3bc7 100644 --- a/nms/v1_20_R4/src/main/java/com/volmit/iris/core/nms/v1_20_R4/NMSBinding.java +++ b/nms/v1_20_R4/src/main/java/com/volmit/iris/core/nms/v1_20_R4/NMSBinding.java @@ -714,6 +714,11 @@ public class NMSBinding implements INMSBinding { return overworld || nether || end; } + @Override + public void removeCustomDimensions(World world) { + ((CraftWorld) world).getHandle().K.customDimensions = null; + } + private WorldLoader.DataLoadContext supplier(WorldLoader.DataLoadContext old) { return dataLoadContext.aquire(() -> new WorldLoader.DataLoadContext( old.resources(), diff --git a/nms/v1_21_R1/src/main/java/com/volmit/iris/core/nms/v1_21_R1/NMSBinding.java b/nms/v1_21_R1/src/main/java/com/volmit/iris/core/nms/v1_21_R1/NMSBinding.java index 71b59e65a..09380f1d4 100644 --- a/nms/v1_21_R1/src/main/java/com/volmit/iris/core/nms/v1_21_R1/NMSBinding.java +++ b/nms/v1_21_R1/src/main/java/com/volmit/iris/core/nms/v1_21_R1/NMSBinding.java @@ -718,6 +718,11 @@ public class NMSBinding implements INMSBinding { return overworld || nether || end; } + @Override + public void removeCustomDimensions(World world) { + ((CraftWorld) world).getHandle().K.customDimensions = null; + } + private WorldLoader.DataLoadContext supplier(WorldLoader.DataLoadContext old) { return dataLoadContext.aquire(() -> new WorldLoader.DataLoadContext( old.resources(), diff --git a/nms/v1_21_R2/src/main/java/com/volmit/iris/core/nms/v1_21_R2/NMSBinding.java b/nms/v1_21_R2/src/main/java/com/volmit/iris/core/nms/v1_21_R2/NMSBinding.java index 27a379228..0447a4b11 100644 --- a/nms/v1_21_R2/src/main/java/com/volmit/iris/core/nms/v1_21_R2/NMSBinding.java +++ b/nms/v1_21_R2/src/main/java/com/volmit/iris/core/nms/v1_21_R2/NMSBinding.java @@ -708,6 +708,11 @@ public class NMSBinding implements INMSBinding { return overworld || nether || end; } + @Override + public void removeCustomDimensions(World world) { + ((CraftWorld) world).getHandle().L.customDimensions = null; + } + private WorldLoader.DataLoadContext supplier(WorldLoader.DataLoadContext old) { return dataLoadContext.aquire(() -> new WorldLoader.DataLoadContext( old.resources(), diff --git a/nms/v1_21_R3/src/main/java/com/volmit/iris/core/nms/v1_21_R3/NMSBinding.java b/nms/v1_21_R3/src/main/java/com/volmit/iris/core/nms/v1_21_R3/NMSBinding.java index efb282d86..80a3fdc69 100644 --- a/nms/v1_21_R3/src/main/java/com/volmit/iris/core/nms/v1_21_R3/NMSBinding.java +++ b/nms/v1_21_R3/src/main/java/com/volmit/iris/core/nms/v1_21_R3/NMSBinding.java @@ -707,6 +707,11 @@ public class NMSBinding implements INMSBinding { return overworld || nether || end; } + @Override + public void removeCustomDimensions(World world) { + ((CraftWorld) world).getHandle().L.customDimensions = null; + } + private WorldLoader.DataLoadContext supplier(WorldLoader.DataLoadContext old) { return dataLoadContext.aquire(() -> new WorldLoader.DataLoadContext( old.resources(),