From 948c0da731eec4387c3d7f1e92a230f50f5cd9d3 Mon Sep 17 00:00:00 2001 From: Jinks Date: Fri, 10 Apr 2020 02:13:36 +0200 Subject: [PATCH] World saving has to go on the main thread --- .../github/jinks/extbackup/BackupHandler.java | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/github/jinks/extbackup/BackupHandler.java b/src/main/java/com/github/jinks/extbackup/BackupHandler.java index 53fbefc..18b0d89 100644 --- a/src/main/java/com/github/jinks/extbackup/BackupHandler.java +++ b/src/main/java/com/github/jinks/extbackup/BackupHandler.java @@ -64,6 +64,25 @@ public enum BackupHandler { doingBackup = 1; + try { + if (server.getPlayerList() != null) { + server.getPlayerList().saveAllPlayerData(); + } + + for (WorldServer world : server.worlds) { + if (world != null) { + world.saveAllChunks(true, null); + world.flushToDisk(); + world.disableLevelSaving = true; + } + } + } catch (Exception ex) { + ExtBackup.logger.error("Saving the world failed!"); + enableSaving(server); + ex.printStackTrace(); + return false; + } + ThreadedFileIOBase.getThreadedIOInstance().queueIO(() -> { try { doBackup(server, script); @@ -81,26 +100,7 @@ public enum BackupHandler { private void doBackup(MinecraftServer server, File script) { ExtBackup.logger.info("Starting backup."); - PlayerList pl = server.getPlayerList(); ExtBackupUtil.broadcast(server, "Starting Backup!"); - try { - if (server.getPlayerList() != null) { - server.getPlayerList().saveAllPlayerData(); - } - - for (WorldServer world : server.worlds) { - if (world != null) { - world.saveAllChunks(true, null); - world.flushToDisk(); - world.disableLevelSaving = true; - } - } - } catch (Exception ex) { - ExtBackup.logger.error("Saving the world failed!"); - enableSaving(server); - ex.printStackTrace(); - return; - } ProcessBuilder pb = new ProcessBuilder(script.getAbsolutePath()); int returnValue = -1; @@ -147,4 +147,4 @@ public enum BackupHandler { } } } -} \ No newline at end of file +}