aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
index eeb359bc..8790d341 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
@@ -65,6 +65,7 @@ import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.config.ConfigProblemDescriptions;
import com.leonardobishop.quests.common.config.QuestsConfig;
import com.leonardobishop.quests.common.logger.QuestsLogger;
+import com.leonardobishop.quests.common.player.QPlayer;
import com.leonardobishop.quests.common.player.QPlayerManager;
import com.leonardobishop.quests.common.plugin.Quests;
import com.leonardobishop.quests.common.quest.QuestCompleter;
@@ -317,6 +318,31 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
}
@Override
+ public void onDisable() {
+ for (TaskType taskType : getTaskTypeManager().getTaskTypes()) {
+ try {
+ taskType.onDisable();
+ } catch (Exception ignored) { }
+ }
+ for (QPlayer qPlayer : qPlayerManager.getQPlayers()) {
+ try {
+ qPlayerManager.savePlayerSync(qPlayer.getPlayerUUID());
+ } catch (Exception ignored) { }
+ }
+ if (placeholderAPIHook != null) {
+ try {
+ placeholderAPIHook.unregisterExpansion();
+ } catch (Exception e) {
+ questsLogger.warning("You need to update PlaceholderAPI for Quests to exit gracefully:");
+ e.printStackTrace();
+ }
+ }
+ try {
+ qPlayerManager.getStorageProvider().shutdown();
+ } catch (Exception ignored) { }
+ }
+
+ @Override
public void reloadQuests() {
if (this.reloadBaseConfiguration()) {
BukkitQuestsLoader questsLoader = new BukkitQuestsLoader(this);