From 6f9e98f10440386f3e9ce083f83bc2c014eb3a91 Mon Sep 17 00:00:00 2001 From: szymon Date: Mon, 30 Nov 2020 10:35:27 +0100 Subject: [PATCH] File -> RestoreableFile --- .../commands/restore/ListBackupsCommand.java | 6 ++---- .../commands/restore/RestoreBackupCommand.java | 5 ++--- .../core/restore/RestoreBackupRunnable.java | 18 +++++++++--------- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/src/main/java/net/szum123321/textile_backup/commands/restore/ListBackupsCommand.java b/src/main/java/net/szum123321/textile_backup/commands/restore/ListBackupsCommand.java index dfbde8a..390d32e 100644 --- a/src/main/java/net/szum123321/textile_backup/commands/restore/ListBackupsCommand.java +++ b/src/main/java/net/szum123321/textile_backup/commands/restore/ListBackupsCommand.java @@ -24,9 +24,7 @@ import net.minecraft.server.command.ServerCommandSource; import net.szum123321.textile_backup.Statics; import net.szum123321.textile_backup.core.restore.RestoreHelper; -import java.util.Comparator; -import java.util.Iterator; -import java.util.List; +import java.util.*; public class ListBackupsCommand { public static LiteralArgumentBuilder register() { @@ -40,7 +38,7 @@ public class ListBackupsCommand { builder.append("There is only one backup available: "); builder.append(backups.get(0).toString()); } else { - backups.sort(Comparator.comparing(RestoreHelper.RestoreableFile::getCreationTime)); + backups.sort(null); Iterator iterator = backups.iterator(); builder.append("Available backups: "); diff --git a/src/main/java/net/szum123321/textile_backup/commands/restore/RestoreBackupCommand.java b/src/main/java/net/szum123321/textile_backup/commands/restore/RestoreBackupCommand.java index c25dc4f..b6dcefd 100644 --- a/src/main/java/net/szum123321/textile_backup/commands/restore/RestoreBackupCommand.java +++ b/src/main/java/net/szum123321/textile_backup/commands/restore/RestoreBackupCommand.java @@ -34,7 +34,6 @@ import net.minecraft.text.LiteralText; import net.szum123321.textile_backup.Statics; import net.szum123321.textile_backup.core.restore.RestoreHelper; -import java.io.File; import java.time.LocalDateTime; import java.time.format.DateTimeParseException; import java.util.Optional; @@ -88,10 +87,10 @@ public class RestoreBackupCommand { throw new CommandSyntaxException(new SimpleCommandExceptionType(message), message); } - Optional backupFile = RestoreHelper.findFileAndLockIfPresent(dateTime, source.getMinecraftServer()); + Optional backupFile = RestoreHelper.findFileAndLockIfPresent(dateTime, source.getMinecraftServer()); if(backupFile.isPresent()) { - Statics.LOGGER.info("Found file to restore {}", backupFile.get().getName()); + Statics.LOGGER.info("Found file to restore {}", backupFile.get().getFile().getName()); } else { Statics.LOGGER.sendInfo(source, "No file created on {} was found!", dateTime.format(Statics.defaultDateTimeFormatter)); diff --git a/src/main/java/net/szum123321/textile_backup/core/restore/RestoreBackupRunnable.java b/src/main/java/net/szum123321/textile_backup/core/restore/RestoreBackupRunnable.java index 8336591..2b70cc5 100644 --- a/src/main/java/net/szum123321/textile_backup/core/restore/RestoreBackupRunnable.java +++ b/src/main/java/net/szum123321/textile_backup/core/restore/RestoreBackupRunnable.java @@ -29,14 +29,13 @@ import net.szum123321.textile_backup.core.restore.decompressors.GenericTarDecomp import net.szum123321.textile_backup.core.restore.decompressors.ZipDecompressor; import java.io.File; -import java.util.NoSuchElementException; public class RestoreBackupRunnable implements Runnable { private final MinecraftServer server; - private final File backupFile; + private final RestoreHelper.RestoreableFile backupFile; private final String finalBackupComment; - public RestoreBackupRunnable(MinecraftServer server, File backupFile, String finalBackupComment) { + public RestoreBackupRunnable(MinecraftServer server, RestoreHelper.RestoreableFile backupFile, String finalBackupComment) { this.server = server; this.backupFile = backupFile; this.finalBackupComment = finalBackupComment; @@ -45,6 +44,7 @@ public class RestoreBackupRunnable implements Runnable { @Override public void run() { Statics.LOGGER.info("Shutting down server..."); + server.stop(false); awaitServerShutdown(); @@ -61,6 +61,7 @@ public class RestoreBackupRunnable implements Runnable { File worldFile = Utilities.getWorldFolder(server); Statics.LOGGER.info("Deleting old world..."); + if(!deleteDirectory(worldFile)) Statics.LOGGER.error("Something went wrong while deleting old world!"); @@ -68,16 +69,15 @@ public class RestoreBackupRunnable implements Runnable { Statics.LOGGER.info("Starting decompression..."); - if(Utilities.getFileExtension(backupFile).orElseThrow(() -> new NoSuchElementException("Couldn't get file extension!")) == ConfigHandler.ArchiveFormat.ZIP) { - ZipDecompressor.decompress(backupFile, worldFile); - } else { - GenericTarDecompressor.decompress(backupFile, worldFile); - } + if(backupFile.getArchiveFormat() == ConfigHandler.ArchiveFormat.ZIP) + ZipDecompressor.decompress(backupFile.getFile(), worldFile); + else + GenericTarDecompressor.decompress(backupFile.getFile(), worldFile); if(Statics.CONFIG.deleteOldBackupAfterRestore) { Statics.LOGGER.info("Deleting old backup"); - if(!backupFile.delete()) + if(!backupFile.getFile().delete()) Statics.LOGGER.info("Something went wrong while deleting old backup"); }