From 0869861dd4017ba7af6afdea647bdcef4f522287 Mon Sep 17 00:00:00 2001 From: Jon Healy Date: Fri, 23 Sep 2022 12:22:30 -0400 Subject: [PATCH] Add option to disable autoSaving PlayerData database classes --- src/main/java/com/kmecpp/osmium/api/database/api/DBTable.java | 2 ++ src/main/java/com/kmecpp/osmium/core/PlayerDataManager.java | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/kmecpp/osmium/api/database/api/DBTable.java b/src/main/java/com/kmecpp/osmium/api/database/api/DBTable.java index bd6d979..6677831 100644 --- a/src/main/java/com/kmecpp/osmium/api/database/api/DBTable.java +++ b/src/main/java/com/kmecpp/osmium/api/database/api/DBTable.java @@ -14,5 +14,7 @@ DatabaseType[] type() default DatabaseType.SQLITE; boolean autoCreate() default true; + + boolean autoSave() default true; } diff --git a/src/main/java/com/kmecpp/osmium/core/PlayerDataManager.java b/src/main/java/com/kmecpp/osmium/core/PlayerDataManager.java index 5bb01b0..507f34e 100644 --- a/src/main/java/com/kmecpp/osmium/core/PlayerDataManager.java +++ b/src/main/java/com/kmecpp/osmium/core/PlayerDataManager.java @@ -236,7 +236,9 @@ public void savePlayer(Player player) { HashMap, Object> playerData = this.data.get(player.getUniqueId()); if (playerData != null) { playerData.entrySet().forEach(e -> { - if (e.getValue() instanceof PlayerData) { + DBTable table = e.getKey().getAnnotation(DBTable.class); + + if (e.getValue() instanceof PlayerData && table.autoSave()) { ((PlayerData) e.getValue()).save(); } });