diff options
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/command/SaveMap.java')
-rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/command/SaveMap.java | 68 |
1 files changed, 4 insertions, 64 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/SaveMap.java b/src/main/java/net/tylermurphy/hideAndSeek/command/SaveMap.java index a2554d1..2befd73 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/SaveMap.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/SaveMap.java @@ -2,15 +2,6 @@ package net.tylermurphy.hideAndSeek.command; import static net.tylermurphy.hideAndSeek.configuration.Config.*; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.ArrayList; -import java.util.Arrays; - import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.scheduler.BukkitRunnable; @@ -36,66 +27,15 @@ public class SaveMap implements ICommand { Bukkit.getServer().getWorld(spawnWorld).save(); BukkitRunnable runnable = new BukkitRunnable() { public void run() { - File current = new File(Main.root+File.separator+spawnWorld); - if(current.exists()) { - File temp_destenation = new File(Main.root+File.separator+"temp_hideandseek_"+spawnWorld); - File destenation = new File(Main.root+File.separator+"hideandseek_"+spawnWorld); - copyFileStructure(current, temp_destenation); - if(destenation.exists()) { - deleteDirectory(destenation); - destenation.mkdir(); - } - temp_destenation.renameTo(destenation); - sender.sendMessage(messagePrefix + message("MAPSAVE_END")); - runningBackup = false; - } else { - sender.sendMessage(errorPrefix + message("MAPSAVE_ERROR")); - } + sender.sendMessage( + Main.plugin.worldLoader.save() + ); + runningBackup = false; } }; runnable.runTaskAsynchronously(Main.plugin); runningBackup = true; } - - private static void copyFileStructure(File source, File target){ - try { - ArrayList<String> ignore = new ArrayList<>(Arrays.asList("uid.dat", "session.lock")); - if(!ignore.contains(source.getName())) { - if(source.isDirectory()) { - if(!target.exists()) - if (!target.mkdirs()) - throw new IOException("Couldn't create world directory!"); - String files[] = source.list(); - for (String file : files) { - File srcFile = new File(source, file); - File destFile = new File(target, file); - copyFileStructure(srcFile, destFile); - } - } else { - InputStream in = new FileInputStream(source); - OutputStream out = new FileOutputStream(target); - byte[] buffer = new byte[1024]; - int length; - while ((length = in.read(buffer)) > 0) - out.write(buffer, 0, length); - in.close(); - out.close(); - } - } - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - private boolean deleteDirectory(File directoryToBeDeleted) { - File[] allContents = directoryToBeDeleted.listFiles(); - if (allContents != null) { - for (File file : allContents) { - deleteDirectory(file); - } - } - return directoryToBeDeleted.delete(); - } public String getLabel() { return "saveMap"; |