diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8438ab80..5836e1d2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,15 +15,6 @@ jobs: distribution: 'temurin' java-version: 17 check-latest: true - - name: Cache Dependencies - uses: actions/cache@v3 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - ${{ runner.os }}-gradle- - name: Build with Gradle run: ./gradlew build - name: Upload Artifacts diff --git a/src/main/java/de/florianmichael/viafabricplus/save/AbstractSave.java b/src/main/java/de/florianmichael/viafabricplus/save/AbstractSave.java index e0234460..066b5c46 100644 --- a/src/main/java/de/florianmichael/viafabricplus/save/AbstractSave.java +++ b/src/main/java/de/florianmichael/viafabricplus/save/AbstractSave.java @@ -45,7 +45,6 @@ public abstract class AbstractSave { /** * This method should be called when the file should be initialized. * It will read the file and call the {@link #read(JsonObject)} method. - * It will also write the file when the program is closed using the {@link #write(JsonObject)}. */ public void init() { if (file.exists()) { @@ -59,24 +58,27 @@ public abstract class AbstractSave { read(parentNode); } } + } - Runtime.getRuntime().addShutdownHook(new Thread(() -> { - try { - file.delete(); - file.createNewFile(); - } catch (IOException e) { - ViaFabricPlus.global().getLogger().error("Failed to create file: " + file.getName() + "!"); - } + /** + * This method should be called when the file should be saved. + */ + public void save() { + try { + file.delete(); + file.createNewFile(); + } catch (IOException e) { + ViaFabricPlus.global().getLogger().error("Failed to create file: " + file.getName() + "!"); + } - try (final FileWriter fw = new FileWriter(file)) { - final JsonObject parentNode = new JsonObject(); - write(parentNode); - fw.write(GSON.toJson(parentNode)); - fw.flush(); - } catch (IOException e) { - ViaFabricPlus.global().getLogger().error("Failed to write file: " + file.getName() + "!"); - } - })); + try (final FileWriter fw = new FileWriter(file)) { + final JsonObject parentNode = new JsonObject(); + write(parentNode); + fw.write(GSON.toJson(parentNode)); + fw.flush(); + } catch (IOException e) { + ViaFabricPlus.global().getLogger().error("Failed to write file: " + file.getName() + "!"); + } } public abstract void write(final JsonObject object); diff --git a/src/main/java/de/florianmichael/viafabricplus/save/SaveManager.java b/src/main/java/de/florianmichael/viafabricplus/save/SaveManager.java index 4bfa4ab8..0996873e 100644 --- a/src/main/java/de/florianmichael/viafabricplus/save/SaveManager.java +++ b/src/main/java/de/florianmichael/viafabricplus/save/SaveManager.java @@ -44,6 +44,12 @@ public class SaveManager { for (AbstractSave save : saves) { save.init(); } + + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + for (AbstractSave save : saves) { + save.save(); + } + })); } public void add(final AbstractSave... saves) {