From aa175bcfeaeed5960028517572d8f17e43a2aab3 Mon Sep 17 00:00:00 2001 From: LMBishop <13875753+LMBishop@users.noreply.github.com> Date: Mon, 5 Jul 2021 11:00:19 +0100 Subject: Add toggleable cancel menu (closes #199) --- .../com/leonardobishop/quests/bukkit/menu/QuestQMenu.java | 5 ++--- .../com/leonardobishop/quests/bukkit/menu/StartedQMenu.java | 3 +-- .../com/leonardobishop/quests/bukkit/util/MenuUtils.java | 12 ++++++++++-- 3 files changed, 13 insertions(+), 7 deletions(-) (limited to 'bukkit/src/main/java') diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/QuestQMenu.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/QuestQMenu.java index 2bd15d6c..74b694b9 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/QuestQMenu.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/QuestQMenu.java @@ -229,11 +229,10 @@ public class QuestQMenu implements QMenu { event.getWhoClicked().closeInventory(); //TODO Option to keep the menu open } return true; - } else if (event.getClick() == ClickType.MIDDLE && config.getBoolean("options.quest-autostart")) { + } else if (event.getClick() == ClickType.MIDDLE) { MenuUtils.handleMiddleClick(plugin, this, quest, Bukkit.getPlayer(owner.getPlayerUUID()), controller); return true; - } else if (event.getClick() == ClickType.RIGHT && config.getBoolean("options.allow-quest-cancel") - && owner.hasStartedQuest(quest)) { + } else if (event.getClick() == ClickType.RIGHT) { MenuUtils.handleRightClick(plugin, this, quest, Bukkit.getPlayer(owner.getPlayerUUID()), controller); return true; } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/StartedQMenu.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/StartedQMenu.java index 8646a91a..66ef4744 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/StartedQMenu.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/StartedQMenu.java @@ -167,8 +167,7 @@ public class StartedQMenu implements QMenu { if (event.getClick() == ClickType.MIDDLE && config.getBoolean("options.allow-quest-track")) { MenuUtils.handleMiddleClick(plugin, this, quest, Bukkit.getPlayer(owner.getPlayerUUID()), controller); return true; - } else if (event.getClick() == ClickType.RIGHT && config.getBoolean("options.allow-quest-cancel") - && owner.hasStartedQuest(quest)) { + } else if (event.getClick() == ClickType.RIGHT) { MenuUtils.handleRightClick(plugin, this, quest, Bukkit.getPlayer(owner.getPlayerUUID()), controller); return true; } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/MenuUtils.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/MenuUtils.java index f020564b..8ddf8493 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/MenuUtils.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/MenuUtils.java @@ -52,6 +52,8 @@ public class MenuUtils { public static void handleMiddleClick(BukkitQuestsPlugin plugin, QMenu menu, Quest quest, Player player, MenuController controller) { if (menu.getOwner().hasStartedQuest(quest)) { + if (!plugin.getQuestsConfig().getBoolean("options.allow-quest-track")) return; + String tracked = menu.getOwner().getPlayerPreferences().getTrackedQuestId(); if (quest.getId().equals(tracked)) { @@ -66,8 +68,14 @@ public class MenuUtils { public static void handleRightClick(BukkitQuestsPlugin plugin, QMenu menu, Quest quest, Player player, MenuController controller) { if (menu.getOwner().hasStartedQuest(quest)) { if (!plugin.getQuestsConfig().getBoolean("options.allow-quest-cancel")) return; - CancelQMenu cancelQMenu = new CancelQMenu(plugin, menu, menu.getOwner(), quest); - controller.openMenu(player, cancelQMenu, 1); + if (plugin.getQuestsConfig().getBoolean("options.gui-confirm-cancel", true)) { + CancelQMenu cancelQMenu = new CancelQMenu(plugin, menu, menu.getOwner(), quest); + controller.openMenu(player, cancelQMenu, 1); + } else { + if (menu.getOwner().cancelQuest(quest)) { + player.closeInventory(); + } + } } } -- cgit v1.2.3-70-g09d2