From 81ed73fbd109f7b7669516bc111e8ceb72cda844 Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Thu, 18 Apr 2024 20:49:05 +0200 Subject: [PATCH] Add new responses to handle quest reroll situations This commit fixes a bug where the quest reroll feature could be used repeatedly without restrictions. Now, appropriate responses will be given in cases where the quest is still loading or if the daily quest has already been completed. This ensures that the player cannot misuse the reroll functionality. --- .../commands/subcommands/CommandReRoll.java | 13 ++++++++++++- .../alttd/altitudequests/config/MessagesConfig.java | 5 +++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/alttd/altitudequests/commands/subcommands/CommandReRoll.java b/src/main/java/com/alttd/altitudequests/commands/subcommands/CommandReRoll.java index e707351..b5e6463 100644 --- a/src/main/java/com/alttd/altitudequests/commands/subcommands/CommandReRoll.java +++ b/src/main/java/com/alttd/altitudequests/commands/subcommands/CommandReRoll.java @@ -21,10 +21,21 @@ public class CommandReRoll extends SubCommand { commandSender.sendMiniMessage(MessagesConfig.NO_RE_ROLL_YET, null); return true; } + + Quest dailyQuest = Quest.getDailyQuest(player.getUniqueId()); + if (dailyQuest == null) { + commandSender.sendMiniMessage(MessagesConfig.WAIT_FOR_QUEST, null); + return true; + } + if (dailyQuest.isDone()) { + commandSender.sendMiniMessage(MessagesConfig.QUEST_ALREADY_FINISHED, null); + return true; + } + Quest.createDailyQuest(player); commandSender.sendMiniMessage(MessagesConfig.QUEST_RE_ROLLED, null); ConsoleCommandSender consoleSender = Bukkit.getConsoleSender(); - Bukkit.dispatchCommand(consoleSender, "lp user %s permission settemp aquest.reroll.on-cooldown true 7d"); + Bukkit.dispatchCommand(consoleSender, String.format("lp user %s permission settemp aquest.reroll.on-cooldown true 7d", player.getName())); return true; } diff --git a/src/main/java/com/alttd/altitudequests/config/MessagesConfig.java b/src/main/java/com/alttd/altitudequests/config/MessagesConfig.java index d2b6492..99f024d 100644 --- a/src/main/java/com/alttd/altitudequests/config/MessagesConfig.java +++ b/src/main/java/com/alttd/altitudequests/config/MessagesConfig.java @@ -42,6 +42,9 @@ public class MessagesConfig extends AbstractConfig{ public static String NOT_FINISHED_QUEST = "You have not finished this quest yet."; public static String QUEST_RE_ROLLED = "[Mascot] Scruff: I see, that last quest was too much for you, that's okay I have given you another one!"; public static String NO_RE_ROLL_YET = "[Mascot] Scruff: Sorry, you already rerolled your quest within the last 7 days. I can't give you a different quest quite yet."; + public static String WAIT_FOR_QUEST = "[Mascot] Scruff: You don't seem to have any quest, please wait for it to load!"; + public static String QUEST_ALREADY_FINISHED = "[Mascot] Scruff: You already finished your quest today. You will get a new one tomorrow."; + private static void loadMessages() { TOO_FAR_FROM_NPC = config.getString("messages.too-far-from-npc", TOO_FAR_FROM_NPC); DAILY_ALREADY_DONE = config.getString("messages.daily-already-done", DAILY_ALREADY_DONE); @@ -52,6 +55,8 @@ public class MessagesConfig extends AbstractConfig{ NOT_FINISHED_QUEST = config.getString("messages.not-finished-quest", NOT_FINISHED_QUEST); QUEST_RE_ROLLED = config.getString("messages.re-rolled-quest", QUEST_RE_ROLLED); NO_RE_ROLL_YET = config.getString("messages.no-re-rolled-yet", NO_RE_ROLL_YET); + WAIT_FOR_QUEST = config.getString("messages.wait-for-yet", WAIT_FOR_QUEST); + QUEST_ALREADY_FINISHED = config.getString("messages.quest-already-finished", QUEST_ALREADY_FINISHED); } public static String NO_PERMISSION = "You do not have permission to do that.";