From 13436baaecae41a29690d55fea573f5f4362ff88 Mon Sep 17 00:00:00 2001 From: Szum123321 Date: Fri, 3 Apr 2020 00:37:45 +0200 Subject: [PATCH] Repaired Backups have a "." directory #7, and updated minecraft version. --- gradle.properties | 10 ++--- .../textile_backup/core/BackupHelper.java | 2 +- .../textile_backup/core/Compressor.java | 45 ++++++++++--------- .../textile_backup/core/MakeBackupThread.java | 8 ++-- .../textile_backup/core/Utilities.java | 8 +++- 5 files changed, 40 insertions(+), 33 deletions(-) diff --git a/gradle.properties b/gradle.properties index 7168448..6d2e753 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,14 +1,14 @@ # Done to increase the memory available to gradle. org.gradle.jvmargs=-Xmx1G -minecraft_version=20w12a -yarn_mappings=20w12a+build.19 -loader_version=0.7.8+build.189 +minecraft_version=20w14a +yarn_mappings=20w14a+build.1 +loader_version=0.7.9+build.190 #Fabric api -fabric_version=0.5.5+build.311-1.16 +fabric_version=0.5.7+build.314-1.16 # Mod Properties - mod_version = 1.1.0-1.16 + mod_version = 1.1.1-1.15 maven_group = net.szum123321 archives_base_name = textile_backup \ No newline at end of file diff --git a/src/main/java/net/szum123321/textile_backup/core/BackupHelper.java b/src/main/java/net/szum123321/textile_backup/core/BackupHelper.java index 356c556..1a33e5c 100644 --- a/src/main/java/net/szum123321/textile_backup/core/BackupHelper.java +++ b/src/main/java/net/szum123321/textile_backup/core/BackupHelper.java @@ -52,7 +52,7 @@ public class BackupHelper { if(save) server.save(true, false, false); - MakeBackupThread thread = new MakeBackupThread(server, ctx, comment); + Thread thread = new Thread(new MakeBackupThread(server, ctx, comment)); thread.start(); } diff --git a/src/main/java/net/szum123321/textile_backup/core/Compressor.java b/src/main/java/net/szum123321/textile_backup/core/Compressor.java index 6d84ebf..f4f4031 100644 --- a/src/main/java/net/szum123321/textile_backup/core/Compressor.java +++ b/src/main/java/net/szum123321/textile_backup/core/Compressor.java @@ -26,7 +26,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; -import java.util.Objects; +import java.nio.file.Files; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -34,31 +34,34 @@ public class Compressor { public static void createArchive(File in, File out, ServerCommandSource ctx){ Utilities.log("Starting compression...", ctx); - try(ZipOutputStream arc = new ZipOutputStream(new FileOutputStream(out))) { + try { + File input = in.getCanonicalFile(); + + ZipOutputStream arc = new ZipOutputStream(new FileOutputStream(out)); + arc.setLevel(TextileBackup.config.compression); - addToArchive(arc, in, "."); + + int rootPathLength = input.toString().length() + 1; + + Files.walk(input.toPath()).filter(path -> !path.equals(input.toPath()) && path.toFile().isFile()).forEach(path -> { + try{ + File file = path.toAbsolutePath().toFile(); + + ZipEntry entry = new ZipEntry(file.getAbsolutePath().substring(rootPathLength)); + arc.putNextEntry(entry); + entry.setSize(file.length()); + IOUtils.copy(new FileInputStream(file), arc); + arc.closeEntry(); + }catch (IOException e){ + TextileBackup.logger.error(e.getMessage()); + } + }); + + arc.close(); } catch (IOException e) { TextileBackup.logger.error(e.getMessage()); } Utilities.log("Compression finished", ctx); } - - private static void addToArchive(ZipOutputStream out, File file, String dir) throws IOException { - String name = dir + File.separator + file.getName(); - - if(file.isFile()){ - ZipEntry entry = new ZipEntry(name); - out.putNextEntry(entry); - entry.setSize(file.length()); - IOUtils.copy(new FileInputStream(file), out); - out.closeEntry(); - }else if(file.isDirectory() && file.listFiles() != null){ - for(File f: Objects.requireNonNull(file.listFiles())){ - if(f != null){ - addToArchive(out, f, name); - } - } - } - } } diff --git a/src/main/java/net/szum123321/textile_backup/core/MakeBackupThread.java b/src/main/java/net/szum123321/textile_backup/core/MakeBackupThread.java index 1893789..f5e941a 100644 --- a/src/main/java/net/szum123321/textile_backup/core/MakeBackupThread.java +++ b/src/main/java/net/szum123321/textile_backup/core/MakeBackupThread.java @@ -26,10 +26,10 @@ import java.io.File; import java.io.IOException; import java.time.LocalDateTime; -public class MakeBackupThread extends Thread { - MinecraftServer server; - ServerCommandSource ctx; - String comment; +public class MakeBackupThread implements Runnable { + private MinecraftServer server; + private ServerCommandSource ctx; + private String comment; public MakeBackupThread(MinecraftServer server, ServerCommandSource ctx, String comment){ this.server = server; diff --git a/src/main/java/net/szum123321/textile_backup/core/Utilities.java b/src/main/java/net/szum123321/textile_backup/core/Utilities.java index 9e3491e..66ade81 100644 --- a/src/main/java/net/szum123321/textile_backup/core/Utilities.java +++ b/src/main/java/net/szum123321/textile_backup/core/Utilities.java @@ -7,6 +7,11 @@ import net.szum123321.textile_backup.TextileBackup; import java.time.format.DateTimeFormatter; public class Utilities { + public static boolean isWindows(){ + String os = System.getProperty("os.name"); + return os.toLowerCase().startsWith("win"); + } + public static DateTimeFormatter getDateTimeFormatter(){ if(!TextileBackup.config.dateTimeFormat.equals("")) return DateTimeFormatter.ofPattern(TextileBackup.config.dateTimeFormat); @@ -15,8 +20,7 @@ public class Utilities { } public static DateTimeFormatter getBackupDateTimeFormatter(){ - String os = System.getProperty("os.name"); - if(os.toLowerCase().startsWith("win")){ + if(isWindows()){ return DateTimeFormatter.ofPattern("dd.MM.yyyy_HH-mm-ss"); } else { return DateTimeFormatter.ofPattern("dd.MM.yyyy_HH:mm:ss");