From dfd987dd320c64c259e8a0fea0adf19ebfb78bd5 Mon Sep 17 00:00:00 2001 From: PikaMug <2267126+PikaMug@users.noreply.github.com> Date: Sun, 3 Dec 2023 22:39:00 -0500 Subject: [PATCH] Target quest points must be positive, fixes #2167 --- .../BukkitQuestadminTakepointsCommand.java | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/core/src/main/java/me/pikamug/quests/commands/questadmin/subcommands/BukkitQuestadminTakepointsCommand.java b/core/src/main/java/me/pikamug/quests/commands/questadmin/subcommands/BukkitQuestadminTakepointsCommand.java index 59647e702..a1ce99944 100644 --- a/core/src/main/java/me/pikamug/quests/commands/questadmin/subcommands/BukkitQuestadminTakepointsCommand.java +++ b/core/src/main/java/me/pikamug/quests/commands/questadmin/subcommands/BukkitQuestadminTakepointsCommand.java @@ -86,19 +86,24 @@ public class BukkitQuestadminTakepointsCommand extends BukkitQuestsSubCommand { return; } final Quester quester = plugin.getQuester(target.getUniqueId()); - quester.setQuestPoints(quester.getQuestPoints() - Math.abs(points)); - String msg1 = BukkitLang.get("takeQuestPoints").replace("", BukkitLang.get("questPoints")); - msg1 = msg1.replace("", ChatColor.GREEN + target.getName() + ChatColor.GOLD); - msg1 = msg1.replace("", ChatColor.DARK_PURPLE + "" + points + ChatColor.GOLD); - cs.sendMessage(ChatColor.GOLD + msg1); - if (target.isOnline()) { - final Player p = (Player)target; - String msg2 = BukkitLang.get(p, "questPointsTaken").replace("", BukkitLang.get("questPoints")); - msg2 = msg2.replace("", ChatColor.GREEN + cs.getName() + ChatColor.GOLD); - msg2 = msg2.replace("", ChatColor.DARK_PURPLE + "" + points + ChatColor.GOLD); - p.sendMessage(ChatColor.GREEN + msg2); + final int newPoints = quester.getQuestPoints() - Math.abs(points); + if (newPoints < 0) { + cs.sendMessage(ChatColor.RED + BukkitLang.get("questEditorPositiveAmount")); + } else { + quester.setQuestPoints(quester.getQuestPoints() - Math.abs(points)); + String msg1 = BukkitLang.get("takeQuestPoints").replace("", BukkitLang.get("questPoints")); + msg1 = msg1.replace("", ChatColor.GREEN + target.getName() + ChatColor.GOLD); + msg1 = msg1.replace("", ChatColor.DARK_PURPLE + "" + points + ChatColor.GOLD); + cs.sendMessage(ChatColor.GOLD + msg1); + if (target.isOnline()) { + final Player p = (Player)target; + String msg2 = BukkitLang.get(p, "questPointsTaken").replace("", BukkitLang.get("questPoints")); + msg2 = msg2.replace("", ChatColor.GREEN + cs.getName() + ChatColor.GOLD); + msg2 = msg2.replace("", ChatColor.DARK_PURPLE + "" + points + ChatColor.GOLD); + p.sendMessage(ChatColor.GREEN + msg2); + } + quester.saveData(); } - quester.saveData(); } else { cs.sendMessage(ChatColor.RED + BukkitLang.get("noPermission")); }