{
    net.minecraft.server.v1_13_R2.WorldServer[] defaultWorlds = (net.minecraft.server.v1_13_R2.WorldServer[]) com.grinderwolf.swm.clsm.ClassModifier.getDefaultWorlds();
    
    if (defaultWorlds != null) {
        System.out.println("Overriding default worlds");
        
        for (int index = 0; index < 3; index++) {
            if (index == 1 && !getAllowNether()) {
                continue;
            }

            if (index == 2 && !server.getAllowEnd()) {
                continue;
            }

            net.minecraft.server.v1_13_R2.WorldServer world = defaultWorlds[index];
            byte dimension = (index == 1 ? -1 : (index == 2 ? 1 : 0));
            
            net.minecraft.server.v1_13_R2.WorldSettings worldSettings = new net.minecraft.server.v1_13_R2.WorldSettings($3, $0.getGamemode(), $0.getGenerateStructures(), $0.isHardcore(), $4);
            java.lang.String worldTypeString = org.bukkit.World.Environment.getEnvironment(dimension).toString().toLowerCase();
            java.lang.String name;
            
            if (dimension == 0) {
                name = $1;
            } else {
                name = $1 + "_" + worldTypeString;
            }
            
            if (world == null) {
                $0.convertWorld(name);
                
                worldSettings.setGeneratorSettings($5);
            }
            
            if (index == 0) {
                if (world == null) {
                    net.minecraft.server.v1_13_R2.ServerNBTManager nbtStorage = new net.minecraft.server.v1_13_R2.ServerNBTManager(server.getWorldContainer(), $2, $0, $0.dataConverterManager);
                    net.minecraft.server.v1_13_R2.WorldData worldData = nbtStorage.getWorldData();
                    
                    if (worldData == null) {
                        worldData = new net.minecraft.server.v1_13_R2.WorldData(worldSettings, $2);
                    }
                    
                    worldData.checkName($2);
                    $0.a(nbtStorage.getDirectory(), worldData);
                    world = new net.minecraft.server.v1_13_R2.WorldServer($0, nbtStorage, new net.minecraft.server.v1_13_R2.PersistentCollection(nbtStorage), worldData, net.minecraft.server.v1_13_R2.DimensionManager.OVERWORLD, $0.methodProfiler, org.bukkit.World.Environment.getEnvironment(dimension), $0.server.getGenerator(name)).i_();
                    world.a(worldSettings);
                } else {
                    org.spigotmc.SpigotConfig.disableStatSaving = true;
                    org.spigotmc.SpigotConfig.disableAdvancementSaving = true;
                    $0.a(new java.io.File("."), world.getWorldData());
                }
                
                $0.server.scoreboardManager = new org.bukkit.craftbukkit.v1_13_R2.scoreboard.CraftScoreboardManager($0, world.getScoreboard());
            } else if (world == null) {
                net.minecraft.server.v1_13_R2.ServerNBTManager nbtStorage = new net.minecraft.server.v1_13_R2.ServerNBTManager(server.getWorldContainer(), name, $0, $0.dataConverterManager);
                net.minecraft.server.v1_13_R2.WorldData worldData = nbtStorage.getWorldData();
                
                if (worldData == null) {
                    worldData = new net.minecraft.server.v1_13_R2.WorldData(worldSettings, name);
                }
                
                worldData.checkName(name);
                world = new net.minecraft.server.v1_13_R2.SecondaryWorldServer($0, nbtStorage, net.minecraft.server.v1_13_R2.DimensionManager.a(dimension), $0.getWorldServer(net.minecraft.server.v1_13_R2.DimensionManager.OVERWORLD), $0.methodProfiler, worldData, org.bukkit.World.Environment.getEnvironment(dimension), $0.server.getGenerator(name)).i_();
            }
            
            $0.server.getPluginManager().callEvent(new org.bukkit.event.world.WorldInitEvent(world.getWorld()));
            
            if (defaultWorlds[index] == null) {
                world.addIWorldAccess(new net.minecraft.server.v1_13_R2.WorldManager($0, world));
            }
            
            if (!$0.H()) {
                world.getWorldData().setGameType($0.getGamemode());
            }
            
            $0.worldServer.put(world.dimension, world);
            $0.getPlayerList().setPlayerFileData(world);
            
            if (world.getWorldData().P() != null) {
                $0.getBossBattleCustomData().a(world.getWorldData().P());
            }
        }
        
        $0.a($0.getDifficulty());
        $0.a($0.getWorldServer(net.minecraft.server.v1_13_R2.DimensionManager.OVERWORLD).worldMaps);
        
        return;
    }
}