From ef1413beab93bc01c068def61bb652f6d9188606 Mon Sep 17 00:00:00 2001 From: Atomic-Laboratory <146392884+Atomic-Laboratory@users.noreply.github.com> Date: Sat, 14 Oct 2023 22:18:13 -0400 Subject: [PATCH] Add "loadautosave" server command. (#9169) * Add "loadautosave" server command. A command that loads the last auto-save. This command can be placed inside `config startcommands` to automatically load the last save when the server starts. * autosaves config is actually autosave. use first() not get(0) * Get most recent autosave w/o sorting * Remove left over debug oops.... --- .../src/mindustry/server/ServerControl.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/server/src/mindustry/server/ServerControl.java b/server/src/mindustry/server/ServerControl.java index a26507d857..e6ab76fb7a 100644 --- a/server/src/mindustry/server/ServerControl.java +++ b/server/src/mindustry/server/ServerControl.java @@ -910,6 +910,37 @@ public class ServerControl implements ApplicationListener{ } }); + handler.register("loadautosave", "Loads the last auto-save.", arg -> { + if(state.isGame()){ + err("Already hosting. Type 'stop' to stop hosting first."); + return; + } + + Fi newestSave = saveDirectory.findAll(f -> f.name().startsWith("auto_")).min(Fi::lastModified); + + if(newestSave == null){ + err("No auto-saves found! Type `config autosave true` to enable auto-saves."); + return; + } + + if(!SaveIO.isSaveValid(newestSave)){ + err("No (valid) save data found for slot."); + return; + } + + Core.app.post(() -> { + try{ + SaveIO.load(newestSave); + state.rules.sector = null; + info("Save loaded."); + state.set(State.playing); + netServer.openServer(); + }catch(Throwable t){ + err("Failed to load save. Outdated or corrupt file."); + } + }); + }); + handler.register("load", "", "Load a save from a slot.", arg -> { if(state.isGame()){ err("Already hosting. Type 'stop' to stop hosting first.");