diff options
Diffstat (limited to 'bukkit')
| -rw-r--r-- | bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java | 26 |
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); |
