Browse Source

void worlds (using the world config), moved world info swapping

Kajetan Johannes Hammerle 4 years ago
parent
commit
b7d012f645

+ 23 - 0
src/main/java/me/km/CommonEvents.java

@@ -1,6 +1,9 @@
 package me.km;
 
 import me.km.utils.ExplosionUtils;
+import net.minecraft.nbt.CompoundNBT;
+import net.minecraft.nbt.ListNBT;
+import net.minecraft.util.text.StringTextComponent;
 import net.minecraftforge.event.world.ExplosionEvent;
 import net.minecraftforge.eventbus.api.SubscribeEvent;
 
@@ -14,4 +17,24 @@ public class CommonEvents
             ExplosionUtils.explosion(e.getExplosion(), e.getWorld());
         }
     }
+    
+    /*@SubscribeEvent
+    public void gdfg(net.minecraftforge.event.ServerChatEvent e)
+    {
+        CompoundNBT base = new CompoundNBT();
+        
+        base.putString("biome", "minecraft:the_void");
+       
+        ListNBT list = new ListNBT();
+        
+        base.put("layers", list);
+        
+        CompoundNBT layer = new CompoundNBT();
+        layer.putString("block", "minecraft:air");
+        layer.putByte("height", (byte) 1);
+        
+        list.add(layer);
+        
+        e.setComponent(new StringTextComponent(base.toString() + "   " + e.getPlayer().world.getWorldInfo().getGeneratorOptions().toString()));
+    }*/
 }

+ 7 - 1
src/main/java/me/km/Server.java

@@ -1,5 +1,6 @@
 package me.km;
 
+import me.hammerle.snuviscript.code.ISnuviLogger;
 import me.hammerle.snuviscript.config.SnuviConfig;
 import me.kcm.events.Hooks;
 import me.km.blockprotections.BlockProtectionBank;
@@ -139,7 +140,7 @@ public class Server
                 scripts.getScriptManager(), scripts, perms, scheduler, server, playerBank, 
                 customEventCaller, scriptBank, databank, blockProtection, protection);
         
-        MinecraftForge.EVENT_BUS.register(new WorldEvents(logger));
+        MinecraftForge.EVENT_BUS.register(new WorldEvents());
         scripts.startScript("startscript");
     }
     
@@ -155,4 +156,9 @@ public class Server
     {
         commands.handleCommand(server.getCommandSource(), s);
     }
+    
+    public static ISnuviLogger getLogger()
+    {
+        return logger;
+    }
 }

+ 1 - 0
src/main/java/me/km/overrides/ModEntityPlayerMP.java

@@ -37,6 +37,7 @@ public class ModEntityPlayerMP extends ServerPlayerEntity
         this.board = old.board;
         this.timedData = old.timedData;
         this.data = old.data;
+        this.id = old.id;
     }
 
     @Override

+ 13 - 13
src/main/java/me/km/snuviscript/IScriptBank.java

@@ -2,17 +2,17 @@ package me.km.snuviscript;
 
 public interface IScriptBank
 {
-    public void setVar(String value, String var, int playerId);
-    public void deleteVar(String var, int playerId);
-    public Object getVar(String var, int playerId, Object error);
-    public Object getVar(String var, int playerId);    
-    public void addMapElement(String map, String key, String value);
-    public void removeMapElement(String map, String key);
-    public void removeMap(String map);   
-    public Object getMapValue(String map, String key);
-    public void addDualMapElement(String map, String key, String key2, String value);
-    public void removeDualMapElement(String map, String key);
-    public void removeDualMap(String map);
-    public void removeDualMapElement(String map, String key, String key2);
-    public Object getDualMapValue(String map, String key, String key2);
+    public void setVar(String value, String var, int playerId) throws Exception;
+    public void deleteVar(String var, int playerId) throws Exception;
+    public Object getVar(String var, int playerId, Object error) throws Exception;
+    public Object getVar(String var, int playerId) throws Exception;    
+    public void addMapElement(String map, String key, String value) throws Exception;
+    public void removeMapElement(String map, String key) throws Exception;
+    public void removeMap(String map) throws Exception;   
+    public Object getMapValue(String map, String key) throws Exception;
+    public void addDualMapElement(String map, String key, String key2, String value) throws Exception;
+    public void removeDualMapElement(String map, String key) throws Exception;
+    public void removeDualMap(String map) throws Exception;
+    public void removeDualMapElement(String map, String key, String key2) throws Exception;
+    public Object getDualMapValue(String map, String key, String key2) throws Exception;
 }

+ 99 - 9
src/main/java/me/km/snuviscript/MinecraftFunctions.java

@@ -1528,7 +1528,17 @@ public class MinecraftFunctions
             final String map = in[0].getString(sc);
             scheduler.getWorker().add(() -> 
             {
-                scriptBank.removeMap(map); 
+                try
+                {
+                    scriptBank.removeMap(map);         
+                }
+                catch(Exception ex)
+                {
+                    scheduler.scheduleTask(() -> 
+                    {
+                        sc.getScriptManager().getLogger().print("Worker error", ex, null, sc.getName(), sc, -1);
+                    });
+                }
             });
             return Void.TYPE; 
         });
@@ -1539,7 +1549,17 @@ public class MinecraftFunctions
             final String value = in[2].getString(sc);
             scheduler.getWorker().add(() -> 
             {
-                scriptBank.addMapElement(map, key, value); 
+                try
+                {
+                    scriptBank.addMapElement(map, key, value);        
+                }
+                catch(Exception ex)
+                {
+                    scheduler.scheduleTask(() -> 
+                    {
+                        sc.getScriptManager().getLogger().print("Worker error", ex, null, sc.getName(), sc, -1);
+                    });
+                }
             });
             return Void.TYPE; 
         });
@@ -1549,7 +1569,17 @@ public class MinecraftFunctions
             final String key = in[1].getString(sc);
             scheduler.getWorker().add(() -> 
             {
-                scriptBank.removeMapElement(map, key); 
+                try
+                {
+                    scriptBank.removeMapElement(map, key);      
+                }
+                catch(Exception ex)
+                {
+                    scheduler.scheduleTask(() -> 
+                    {
+                        sc.getScriptManager().getLogger().print("Worker error", ex, null, sc.getName(), sc, -1);
+                    });
+                }
             });
             return Void.TYPE; 
         });
@@ -1575,7 +1605,17 @@ public class MinecraftFunctions
                 final String key = in[1].getString(sc);
                 scheduler.getWorker().add(() -> 
                 {
-                    scriptBank.removeDualMapElement(map, key); 
+                    try
+                    {
+                        scriptBank.removeDualMapElement(map, key);      
+                    }
+                    catch(Exception ex)
+                    {
+                        scheduler.scheduleTask(() -> 
+                        {
+                            sc.getScriptManager().getLogger().print("Worker error", ex, null, sc.getName(), sc, -1);
+                        });
+                    }
                 });
             }
             else
@@ -1583,7 +1623,17 @@ public class MinecraftFunctions
                 final String map = in[0].getString(sc);
                 scheduler.getWorker().add(() -> 
                 {
-                    scriptBank.removeDualMap(map); 
+                    try
+                    {
+                        scriptBank.removeDualMap(map); 
+                    }
+                    catch(Exception ex)
+                    {
+                        scheduler.scheduleTask(() -> 
+                        {
+                            sc.getScriptManager().getLogger().print("Worker error", ex, null, sc.getName(), sc, -1);
+                        });
+                    }
                 });
             }
             return Void.TYPE; 
@@ -1596,7 +1646,17 @@ public class MinecraftFunctions
             final String value = in[3].getString(sc);
             scheduler.getWorker().add(() -> 
             {
-                scriptBank.addDualMapElement(map, key1, key2, value);  
+                try
+                {
+                    scriptBank.addDualMapElement(map, key1, key2, value);  
+                }
+                catch(Exception ex)
+                {
+                    scheduler.scheduleTask(() -> 
+                    {
+                        sc.getScriptManager().getLogger().print("Worker error", ex, null, sc.getName(), sc, -1);
+                    });
+                }
             });
             return Void.TYPE; 
         });
@@ -1607,7 +1667,17 @@ public class MinecraftFunctions
             final String key2 = in[2].getString(sc);
             scheduler.getWorker().add(() -> 
             {
-                scriptBank.removeDualMapElement(map, key1, key2); 
+                try
+                {
+                    scriptBank.removeDualMapElement(map, key1, key2); 
+                }
+                catch(Exception ex)
+                {
+                    scheduler.scheduleTask(() -> 
+                    {
+                        sc.getScriptManager().getLogger().print("Worker error", ex, null, sc.getName(), sc, -1);
+                    });
+                }
             });
             return Void.TYPE; 
         });
@@ -2274,7 +2344,17 @@ public class MinecraftFunctions
             final int id = getId(playerBank, in[0].get(sc));
             scheduler.getWorker().add(() -> 
             {
-                scriptBank.setVar(value, var, id);
+                try
+                {
+                    scriptBank.setVar(value, var, id);
+                }
+                catch(Exception ex)
+                {
+                    scheduler.scheduleTask(() -> 
+                    {
+                        sc.getScriptManager().getLogger().print("Worker error", ex, null, sc.getName(), sc, -1);
+                    });
+                }
             });
             return Void.TYPE; 
         });                          
@@ -2285,7 +2365,17 @@ public class MinecraftFunctions
             final int id = getId(playerBank, in[0].get(sc));
             scheduler.getWorker().add(() -> 
             {
-                scriptBank.deleteVar(var, id);
+                try
+                {
+                    scriptBank.deleteVar(var, id);
+                }
+                catch(Exception ex)
+                {
+                    scheduler.scheduleTask(() -> 
+                    {
+                        sc.getScriptManager().getLogger().print("Worker error", ex, null, sc.getName(), sc, -1);
+                    });
+                }
             });
             return Void.TYPE; 
         }); 

+ 32 - 107
src/main/java/me/km/snuviscript/ScriptBank.java

@@ -2,10 +2,7 @@ package me.km.snuviscript;
 
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.UUID;
 import me.hammerle.snuviscript.code.SnuviUtils;
-import me.km.KajetansMod;
 import me.km.databank.DataBank;
 import me.km.playerbank.PlayerManager;
 
@@ -50,7 +47,7 @@ public class ScriptBank implements IScriptBank
     }
 
     @Override
-    public void setVar(String value, String var, int playerId)
+    public void setVar(String value, String var, int playerId) throws Exception
     {
         try(PreparedStatement setVar = databank.prepareStatement(
                 "INSERT INTO scriptdata (player_id,var,value) SELECT ?, ?, ? ON DUPLICATE KEY UPDATE scriptdata.value=?;"))
@@ -61,14 +58,10 @@ public class ScriptBank implements IScriptBank
             setVar.setString(4, value);
             setVar.executeUpdate();
         }
-        catch(SQLException ex)
-        {
-            ex.printStackTrace();
-        }
     }
 
     @Override
-    public void deleteVar(String var, int playerId)
+    public void deleteVar(String var, int playerId) throws Exception
     {
         try(PreparedStatement deleteVar = databank.prepareStatement(
                 "DELETE FROM scriptdata WHERE player_id = ? AND var = ?;"))
@@ -77,47 +70,31 @@ public class ScriptBank implements IScriptBank
             deleteVar.setString(2, var);
             deleteVar.executeUpdate();
         }
-        catch(SQLException ex)
-        {
-            ex.printStackTrace();
-        }
     }
     
     @Override
-    public Object getVar(String var, int playerId, Object error)
+    public Object getVar(String var, int playerId, Object error) throws Exception
     {
-        try
+        getVar.setInt(1, playerId);
+        getVar.setString(2, var);
+        try(ResultSet rs = getVar.executeQuery())
         {
-            getVar.setInt(1, playerId);
-            getVar.setString(2, var);
-            try(ResultSet rs = getVar.executeQuery())
+            if(rs.next())
             {
-                if(rs.next())
-                {
-                    return SnuviUtils.convert(rs.getString(1));
-                }
-                return error;
+                return SnuviUtils.convert(rs.getString(1));
             }
-            catch(SQLException ex)
-            {
-                ex.printStackTrace();
-            }
-        }
-        catch(SQLException ex)
-        {
-            ex.printStackTrace();
+            return error;
         }
-        return error;
     } 
     
     @Override
-    public Object getVar(String var, int playerId)
+    public Object getVar(String var, int playerId) throws Exception
     {
         return getVar(var, playerId, null);
     }    
     
     @Override
-    public void addMapElement(String map, String key, String value)
+    public void addMapElement(String map, String key, String value) throws Exception
     {
         try(PreparedStatement addMapElement = databank.prepareStatement(
                 "INSERT INTO scriptmaps (map,keyname,value) SELECT ?, ?, ? ON DUPLICATE KEY UPDATE value=?;"))
@@ -128,14 +105,10 @@ public class ScriptBank implements IScriptBank
             addMapElement.setString(4, value);
             addMapElement.executeUpdate();
         }
-        catch(SQLException ex)
-        {
-            ex.printStackTrace();
-        }
     }
     
     @Override
-    public void removeMapElement(String map, String key)
+    public void removeMapElement(String map, String key) throws Exception
     {
         try(PreparedStatement removeMapElement = databank.prepareStatement(
                 "DELETE FROM scriptmaps WHERE map = ? AND keyname = ?;"))
@@ -144,14 +117,10 @@ public class ScriptBank implements IScriptBank
             removeMapElement.setString(2, key);
             removeMapElement.executeUpdate();
         }
-        catch(SQLException ex)
-        {
-            ex.printStackTrace();
-        }
     }
     
     @Override
-    public void removeMap(String map)
+    public void removeMap(String map) throws Exception
     {
         try(PreparedStatement removeMap = databank.prepareStatement(
                 "DELETE FROM scriptmaps WHERE map = ?;"))
@@ -159,41 +128,25 @@ public class ScriptBank implements IScriptBank
             removeMap.setString(1, map);
             removeMap.executeUpdate();
         }
-        catch(SQLException ex)
-        {
-            ex.printStackTrace();
-        }
     }
     
     @Override
-    public Object getMapValue(String map, String key)
+    public Object getMapValue(String map, String key) throws Exception
     {
-        try
+        getMapValue.setString(1, map);
+        getMapValue.setString(2, key);
+        try(ResultSet rs = getMapValue.executeQuery())
         {
-            getMapValue.setString(1, map);
-            getMapValue.setString(2, key);
-            try(ResultSet rs = getMapValue.executeQuery())
-            {
-                if(rs.next())
-                {
-                    return SnuviUtils.convert(rs.getString(1));
-                }
-                return null;
-            }
-            catch(SQLException ex)
+            if(rs.next())
             {
-                ex.printStackTrace();
+                return SnuviUtils.convert(rs.getString(1));
             }
+            return null;
         }
-        catch(SQLException ex)
-        {
-            ex.printStackTrace();
-        }
-        return null;
     } 
     
     @Override
-    public void addDualMapElement(String map, String key, String key2, String value)
+    public void addDualMapElement(String map, String key, String key2, String value) throws Exception
     {
         try(PreparedStatement addDualMapElement = databank.prepareStatement(
                 "INSERT INTO scriptdualmaps (map,keyname,seckeyname,value) SELECT ?, ?, ?, ? ON DUPLICATE KEY UPDATE value=?;"))
@@ -205,14 +158,10 @@ public class ScriptBank implements IScriptBank
             addDualMapElement.setString(5, value);
             addDualMapElement.executeUpdate();
         }
-        catch(SQLException ex)
-        {
-            ex.printStackTrace();
-        }
     }
     
     @Override
-    public void removeDualMapElement(String map, String key)
+    public void removeDualMapElement(String map, String key) throws Exception
     {
         try(PreparedStatement removeDualMapElement = databank.prepareStatement(
                 "DELETE FROM scriptdualmaps WHERE map = ? AND keyname = ?;"))
@@ -221,14 +170,10 @@ public class ScriptBank implements IScriptBank
             removeDualMapElement.setString(2, key);
             removeDualMapElement.executeUpdate();
         }
-        catch(SQLException ex)
-        {
-            ex.printStackTrace();
-        }
     }
     
     @Override
-    public void removeDualMap(String map)
+    public void removeDualMap(String map) throws Exception
     {
         try(PreparedStatement removeDualMap = databank.prepareStatement(
                 "DELETE FROM scriptdualmaps WHERE map = ?;"))
@@ -236,14 +181,10 @@ public class ScriptBank implements IScriptBank
             removeDualMap.setString(1, map);
             removeDualMap.executeUpdate();
         }
-        catch(SQLException ex)
-        {
-            ex.printStackTrace();
-        }
     }
     
     @Override
-    public void removeDualMapElement(String map, String key, String key2)
+    public void removeDualMapElement(String map, String key, String key2) throws Exception
     {
         try(PreparedStatement removeDualMapElement2 = databank.prepareStatement(
                 "DELETE FROM scriptdualmaps WHERE map = ? AND keyname = ? AND seckeyname = ?;"))
@@ -253,37 +194,21 @@ public class ScriptBank implements IScriptBank
             removeDualMapElement2.setString(3, key2);
             removeDualMapElement2.executeUpdate();
         }
-        catch(SQLException ex)
-        {
-            ex.printStackTrace();
-        }
     } 
 
     @Override
-    public Object getDualMapValue(String map, String key, String key2)
+    public Object getDualMapValue(String map, String key, String key2) throws Exception
     {
-        try
+        getDualMapValue.setString(1, map);
+        getDualMapValue.setString(2, key);
+        getDualMapValue.setString(3, key2);
+        try(ResultSet rs = getDualMapValue.executeQuery())
         {
-            getDualMapValue.setString(1, map);
-            getDualMapValue.setString(2, key);
-            getDualMapValue.setString(3, key2);
-            try(ResultSet rs = getDualMapValue.executeQuery())
+            if(rs.next())
             {
-                if(rs.next())
-                {
-                    return SnuviUtils.convert(rs.getString(1));
-                }
-                return null;
+                return SnuviUtils.convert(rs.getString(1));
             }
-            catch(SQLException ex)
-            {
-                ex.printStackTrace();
-            }
-        }
-        catch(SQLException ex)
-        {
-            ex.printStackTrace();
+            return null;
         }
-        return null;
     } 
 }

+ 1 - 2
src/main/java/me/km/world/ModDimensionFactory.java

@@ -4,7 +4,6 @@ import java.util.function.BiFunction;
 import net.minecraft.world.World;
 import net.minecraft.world.dimension.Dimension;
 import net.minecraft.world.dimension.DimensionType;
-import net.minecraft.world.dimension.OverworldDimension;
 import net.minecraftforge.common.ModDimension;
 
 public class ModDimensionFactory extends ModDimension
@@ -12,6 +11,6 @@ public class ModDimensionFactory extends ModDimension
     @Override
     public BiFunction<World, DimensionType, ? extends Dimension> getFactory()
     {
-        return (w, type) -> new OverworldDimension(w, type);
+        return (w, type) -> new ModOverworldDimension(w, type);
     }
 }

+ 15 - 6
src/main/java/me/km/world/ModOverworldDimension.java

@@ -1,8 +1,12 @@
 package me.km.world;
 
+import me.km.utils.ReflectionUtils;
 import net.minecraft.world.World;
 import net.minecraft.world.dimension.DimensionType;
 import net.minecraft.world.dimension.OverworldDimension;
+import net.minecraft.world.gen.ChunkGenerator;
+import net.minecraft.world.gen.GenerationSettings;
+import org.apache.logging.log4j.LogManager;
 
 public class ModOverworldDimension extends OverworldDimension
 {
@@ -12,13 +16,18 @@ public class ModOverworldDimension extends OverworldDimension
     }
 
     @Override
-    public void tick()
+    public ChunkGenerator<? extends GenerationSettings> createChunkGenerator()
     {
+        LogManager.getLogger().warn("Try swapping " + world + " " + world.getDimension().getType());
         
-    }
-
-    @Override
-    public void onWorldSave() 
-    {
+        if(world.getDimension().getType().isVanilla())
+        {
+            LogManager.getLogger().warn("no swap in vanilla world");
+            return super.createChunkGenerator();
+        }
+        
+        ReflectionUtils.setWorldInfo(world, new ModWorldInfo(world.getWorldInfo(), WorldManager.getName(world), world.getServer()));
+        
+        return super.createChunkGenerator();
     }
 }

+ 48 - 3
src/main/java/me/km/world/ModWorldInfo.java

@@ -1,14 +1,17 @@
 package me.km.world;
 
-import me.hammerle.snuviscript.code.ISnuviLogger;
 import net.minecraft.world.Difficulty;
 import net.minecraft.world.storage.DerivedWorldInfo;
 import net.minecraft.world.storage.WorldInfo;
 import me.hammerle.snuviscript.config.SnuviConfig;
+import me.km.Server;
 import me.km.utils.ReflectionUtils;
+import net.minecraft.nbt.CompoundNBT;
+import net.minecraft.nbt.ListNBT;
 import net.minecraft.server.MinecraftServer;
 import net.minecraft.world.GameRules;
 import static net.minecraft.world.GameRules.*;
+import net.minecraft.world.WorldType;
 
 public class ModWorldInfo extends DerivedWorldInfo
 {
@@ -23,17 +26,21 @@ public class ModWorldInfo extends DerivedWorldInfo
     private int thunderTime;
     private Difficulty difficulty;
     private final GameRules gameRules = new GameRules();
+    
+    private boolean voidWorld;
    
-    public ModWorldInfo(WorldInfo info, String name, ISnuviLogger logger, MinecraftServer server)
+    public ModWorldInfo(WorldInfo info, String name, MinecraftServer server)
     {
         super(info);
         
-        config = new SnuviConfig(logger, "worlddata", name);
+        config = new SnuviConfig(Server.getLogger(), "worlddata", name);
         if(config.exists())
         {
             config.load();
         }
         onLoad(info, server);
+        
+        org.apache.logging.log4j.LogManager.getLogger().warn("status: " + voidWorld);
     }
     
     private void onLoad(WorldInfo info, MinecraftServer server)
@@ -88,6 +95,8 @@ public class ModWorldInfo extends DerivedWorldInfo
         ReflectionUtils.setIntegerValue(gameRules.get(MAX_COMMAND_CHAIN_LENGTH), config.getInt("maxCommandChainLength", rules.getInt(MAX_COMMAND_CHAIN_LENGTH)));
         gameRules.get(ANNOUNCE_ADVANCEMENTS).set(config.getBoolean("announceAdvancements", rules.getBoolean(ANNOUNCE_ADVANCEMENTS)), server);
         gameRules.get(DISABLE_RAIDS).set(config.getBoolean("disableRaids", rules.getBoolean(DISABLE_RAIDS)), server);
+        
+        voidWorld = config.getBoolean("voidWorld", false);
     }
     
     public void onSave()
@@ -126,6 +135,8 @@ public class ModWorldInfo extends DerivedWorldInfo
         config.set("announceAdvancements", gameRules.getBoolean(ANNOUNCE_ADVANCEMENTS));
         config.set("disableRaids", gameRules.getBoolean(DISABLE_RAIDS));
         
+        config.set("voidWorld", voidWorld);
+        
         config.save();
     }
 
@@ -230,4 +241,38 @@ public class ModWorldInfo extends DerivedWorldInfo
     {
         return gameRules;
     }
+
+    @Override
+    public WorldType getGenerator()
+    {
+        if(voidWorld)
+        {
+            return WorldType.FLAT;
+        }
+        return super.getGenerator();
+    }
+
+    @Override
+    public CompoundNBT getGeneratorOptions()
+    {
+        if(voidWorld)
+        {
+            CompoundNBT base = new CompoundNBT();
+        
+            base.putString("biome", "minecraft:the_void");
+
+            ListNBT list = new ListNBT();
+
+            base.put("layers", list);
+
+            CompoundNBT layer = new CompoundNBT();
+            layer.putString("block", "minecraft:air");
+            layer.putByte("height", (byte) 1);
+
+            list.add(layer);
+            
+            return base;
+        }
+        return super.getGeneratorOptions();
+    }
 }

+ 1 - 30
src/main/java/me/km/world/WorldEvents.java

@@ -1,47 +1,18 @@
 package me.km.world;
 
-import me.hammerle.snuviscript.code.ISnuviLogger;
-import me.km.utils.ReflectionUtils;
-import net.minecraft.server.MinecraftServer;
 import net.minecraft.world.World;
-import net.minecraft.world.dimension.DimensionType;
-import net.minecraft.world.server.ServerWorld;
 import net.minecraft.world.storage.WorldInfo;
 import net.minecraftforge.common.DimensionManager;
 import net.minecraftforge.event.world.WorldEvent;
 import net.minecraftforge.eventbus.api.SubscribeEvent;
 
 public class WorldEvents
-{
-    private final ISnuviLogger logger;
-    
-    public WorldEvents(ISnuviLogger logger)
-    {
-        this.logger = logger;
-    }
-    
+{    
     @SubscribeEvent
     public void onWorldLoad(WorldEvent.Load e)
     {      
         World w = e.getWorld().getWorld();
-        
-        org.apache.logging.log4j.LogManager.getLogger().warn("Try swapping " + w + " " + w.getDimension().getType());
-        
-        if(w.getDimension().getType().isVanilla())
-        {
-            org.apache.logging.log4j.LogManager.getLogger().warn("no swap in vanilla world");
-            return;
-        }
-        
-        ServerWorld overworld = DimensionManager.getWorld(w.getServer(), DimensionType.OVERWORLD, false, false);
-        if(overworld == null)
-        {
-            org.apache.logging.log4j.LogManager.getLogger().warn("cannot get overworld");
-            return;
-        }
-        
         DimensionManager.keepLoaded(w.getDimension().getType(), true);
-        ReflectionUtils.setWorldInfo(w, new ModWorldInfo(overworld.getWorldInfo(), WorldManager.getName(w), logger, w.getServer()));
     }
     
     @SubscribeEvent