aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/leonardobishop/quests/Quests.java3
-rw-r--r--src/main/java/com/leonardobishop/quests/player/QPlayerManager.java9
-rw-r--r--src/main/java/com/leonardobishop/quests/storage/MySqlStorageProvider.java5
-rw-r--r--src/main/java/com/leonardobishop/quests/storage/StorageProvider.java1
-rw-r--r--src/main/java/com/leonardobishop/quests/storage/YamlStorageProvider.java5
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);