From d17dc7e298c7e8e3d7d0536fdb479e62a372644a Mon Sep 17 00:00:00 2001 From: LMBishop <13875753+LMBishop@users.noreply.github.com> Date: Mon, 21 Jun 2021 01:05:46 +0100 Subject: Save data on disable --- .../quests/bukkit/BukkitQuestsPlugin.java | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'bukkit/src/main/java') 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; @@ -316,6 +317,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()) { -- cgit v1.2.3-70-g09d2