diff options
Diffstat (limited to 'src/main/java/com/leonardobishop')
5 files changed, 23 insertions, 0 deletions
diff --git a/src/main/java/com/leonardobishop/quests/Quests.java b/src/main/java/com/leonardobishop/quests/Quests.java index 7d74283f..5400c265 100644 --- a/src/main/java/com/leonardobishop/quests/Quests.java +++ b/src/main/java/com/leonardobishop/quests/Quests.java @@ -307,6 +307,9 @@ public class Quests extends JavaPlugin { } catch (Exception ignored) { } } if (placeholderAPIHook != null) placeholderAPIHook.unregisterExpansion(); + try { + qPlayerManager.getStorageProvider().shutdown(); + } catch (Exception ignored) { } } public void reloadQuests() { diff --git a/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java b/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java index 836479a1..0509799f 100644 --- a/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java +++ b/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java @@ -119,4 +119,13 @@ public class QPlayerManager { return new QPlayer(uuid, questProgressFile, new QPlayerPreferences(null), plugin); }); } + + /** + * Gets the current storage provider which loads and saves players. + * + * @return {@link StorageProvider} + */ + public StorageProvider getStorageProvider() { + return storageProvider; + } } diff --git a/src/main/java/com/leonardobishop/quests/storage/MySqlStorageProvider.java b/src/main/java/com/leonardobishop/quests/storage/MySqlStorageProvider.java index 6a69a3a9..5789d8a0 100644 --- a/src/main/java/com/leonardobishop/quests/storage/MySqlStorageProvider.java +++ b/src/main/java/com/leonardobishop/quests/storage/MySqlStorageProvider.java @@ -120,6 +120,11 @@ public class MySqlStorageProvider implements StorageProvider { } @Override + public void shutdown() { + if (hikari != null) hikari.close(); + } + + @Override public QuestProgressFile loadProgressFile(UUID uuid) { QuestProgressFile questProgressFile = new QuestProgressFile(uuid, plugin); try (Connection connection = hikari.getConnection()) { diff --git a/src/main/java/com/leonardobishop/quests/storage/StorageProvider.java b/src/main/java/com/leonardobishop/quests/storage/StorageProvider.java index 78f27f54..f1d00203 100644 --- a/src/main/java/com/leonardobishop/quests/storage/StorageProvider.java +++ b/src/main/java/com/leonardobishop/quests/storage/StorageProvider.java @@ -7,6 +7,7 @@ import java.util.UUID; public interface StorageProvider { void init(); + void shutdown(); QuestProgressFile loadProgressFile(UUID uuid); void saveProgressFile(UUID uuid, QuestProgressFile questProgressFile); diff --git a/src/main/java/com/leonardobishop/quests/storage/YamlStorageProvider.java b/src/main/java/com/leonardobishop/quests/storage/YamlStorageProvider.java index 950f6d6e..4c803baa 100644 --- a/src/main/java/com/leonardobishop/quests/storage/YamlStorageProvider.java +++ b/src/main/java/com/leonardobishop/quests/storage/YamlStorageProvider.java @@ -37,6 +37,11 @@ public class YamlStorageProvider implements StorageProvider { directory.mkdirs(); } + @Override + public void shutdown() { + // no impl + } + public QuestProgressFile loadProgressFile(UUID uuid) { ReentrantLock lock = lock(uuid); QuestProgressFile questProgressFile = new QuestProgressFile(uuid, plugin); |
