diff options
| author | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2021-07-05 11:00:19 +0100 |
|---|---|---|
| committer | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2021-07-05 11:00:19 +0100 |
| commit | aa175bcfeaeed5960028517572d8f17e43a2aab3 (patch) | |
| tree | f2f8462d891dc5efd3a0e3f5aa21c422fdda2d6d /bukkit/src/main | |
| parent | 8645e88c5cb5132bfe8824b7f814e23a60b0f5c0 (diff) | |
Add toggleable cancel menu (closes #199)
Diffstat (limited to 'bukkit/src/main')
4 files changed, 15 insertions, 7 deletions
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(); + } + } } } diff --git a/bukkit/src/main/resources/resources/bukkit/config.yml b/bukkit/src/main/resources/resources/bukkit/config.yml index bc7cd0f9..a97e4afd 100644 --- a/bukkit/src/main/resources/resources/bukkit/config.yml +++ b/bukkit/src/main/resources/resources/bukkit/config.yml @@ -209,6 +209,8 @@ options: show-quest-registrations: true # Hide locked quests, quests on cooldown and completed (but not repeatable) quests gui-hide-locked: false + # Confirm quest cancellation with a separate menu + gui-confirm-cancel: true # Hide quests which a player cannot start due to permissions. gui-hide-quests-nopermission: false # Hide categories which a player cannot open due to permissions. |
