Duplicate a world

Discussion in 'Plugin Development' started by dillyg10, May 20, 2012.

Thread Status:
Not open for further replies.
  1. Offline

    dillyg10

    Hi, So I was wondering if there is any way to "duplicate" a world. Basically, I'm going to have a defalt world, and it is going to be duplicated, the duped version will be edited and such, then i want to get rid of the duped version, but still keep the original... any way to do this?
     
  2. Offline

    Mike111177

    Does java have a copy folder function? ill check...

    i found a snippet that might be helpfull to you
    Code:
    package com.mkyong.file;
     
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
     
    public class CopyDirectoryExample
    {
        public static void main(String[] args)
        {	
        	File srcFolder = new File("c:\\mkyong");
        	File destFolder = new File("c:\\mkyong-new");
     
        	//make sure source exists
        	if(!srcFolder.exists()){
     
               System.out.println("Directory does not exist.");
               //just exit
               System.exit(0);
     
            }else{
     
               try{
            	copyFolder(srcFolder,destFolder);
               }catch(IOException e){
            	e.printStackTrace();
            	//error, just exit
                    System.exit(0);
               }
            }
     
        	System.out.println("Done");
        }
     
        public static void copyFolder(File src, File dest)
        	throws IOException{
     
        	if(src.isDirectory()){
     
        		//if directory not exists, create it
        		if(!dest.exists()){
        		   dest.mkdir();
        		   System.out.println("Directory copied from " 
                                  + src + "  to " + dest);
        		}
     
        		//list all the directory contents
        		String files[] = src.list();
     
        		for (String file : files) {
        		   //construct the src and dest file structure
        		   File srcFile = new File(src, file);
        		   File destFile = new File(dest, file);
        		   //recursive copy
        		   copyFolder(srcFile,destFile);
        		}
     
        	}else{
        		//if file, then copy it
        		//Use bytes stream to support all file types
        		InputStream in = new FileInputStream(src);
        	        OutputStream out = new FileOutputStream(dest); 
     
        	        byte[] buffer = new byte[1024];
     
        	        int length;
        	        //copy the file content in bytes 
        	        while ((length = in.read(buffer)) > 0){
        	    	   out.write(buffer, 0, length);
        	        }
     
        	        in.close();
        	        out.close();
        	        System.out.println("File copied from " + src + " to " + dest);
        	}
        }
    }
    
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 25, 2016
  3. Offline

    dillyg10

    Hmm, let me do a little modding and see if I can get this to work... will post sometime tomorrow :D

    BTW I'm just throwing this out there, java should implement this in the java.io , seems like something basic that is really useful :D.
     
  4. Offline

    Mike111177

    all right i hope it helps you
     
  5. wont work 100% you also copiing the uuid.dat, 2 world cannot have the same uuid
     
  6. Offline

    pasow

    The problem is that the UIDs are duplicate.

    Is there a way to fix this?
    EDIT:
    nvm, found a way to fix it.
    The trick is to delete the world's uid.dat after you created the new world folder, so bukkit will make a new UUID when you load the world.
    :D
     
Thread Status:
Not open for further replies.

Share This Page