package pl.redstonefun.plugin; import java.io.File; import java.io.IOException; import java.util.Date; import java.util.List; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.World; import org.rauschig.jarchivelib.ArchiveFormat; import org.rauschig.jarchivelib.Archiver; import org.rauschig.jarchivelib.ArchiverFactory; import org.rauschig.jarchivelib.CompressionType; public class BackupWorlds extends Thread { long k; boolean run = false; long interval; public Archiver archiver; public BackupWorlds(long k, long interval) { this.k = k * 60000; this.interval = interval*60; run = true; } public void exit() { run = false; } @Override public void run() { while (run) { for (long inter = 0; inter <= k / 1000; inter++) { if (!run) { return; } if (inter == k / 1000) { if (Save.instance.getConfig().getBoolean("spam")) { Save.instance.getServer().broadcastMessage(ChatColor.translateAlternateColorCodes('&',"&9[&7Bot&9] &bSaveWorld&7: &fZaczynam tworzenie backupa!")); } backup(); } try { sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } } public void change(long k, long interval) { this.k = k * 60000; this.interval = interval*60; } public void backup(){ Save.instance.getLogger().info("Tworzenie backupa..."); List list = Bukkit.getWorlds(); Date date = new Date(); long j = date.getTime() / 1000; String gu = System.getProperty("user.dir") + "//backups//"+ j; File file = new File(gu); file.mkdirs(); for (File h : new File(System.getProperty("user.dir")+ "//backups//").listFiles()) { if ((j - Long.parseLong(h.getName())) >= interval) { if (h.listFiles() != null) { for (File k : h.listFiles()) { k.delete(); } } h.delete(); } } for (World world : list) { File path = new File(world.getWorldFolder().getAbsolutePath().replace(".\\", "")); archiver = ArchiverFactory.createArchiver(ArchiveFormat.TAR, CompressionType.GZIP); try { @SuppressWarnings("unused") File archive = archiver.create(world.getName(),new File(gu), path.getAbsoluteFile()); } catch (IOException e) { if (Save.instance.getConfig().getBoolean("spam")) { Save.instance.getServer().broadcastMessage(ChatColor.translateAlternateColorCodes('&',"&9[&7Bot&9] &bSaveWorld&7: &fProblem ze zrobieniem backupa!")); } e.printStackTrace(); } } Save.instance.getLogger().info("Stworzono backupa!"); if (Save.instance.getConfig().getBoolean("spam")) { Save.instance.getServer().broadcastMessage(ChatColor.translateAlternateColorCodes('&',"&9[&7Bot&9] &bSaveWorld&7: &fZrobiono backupa!")); } } }