From c5a753e19eaf70f1e32a0d32e13b4d8e4a527147 Mon Sep 17 00:00:00 2001 From: PikaMug <2267126+PikaMug@users.noreply.github.com> Date: Sun, 19 Mar 2023 15:29:45 -0400 Subject: [PATCH] Cleaner quest accept prompt input --- .../me/blackvein/quests/player/IQuester.java | 3 +- .../main/java/me/blackvein/quests/Quests.java | 36 ++++++------------- .../convo/misc/NpcOfferQuestPrompt.java | 3 +- 3 files changed, 13 insertions(+), 29 deletions(-) diff --git a/api/src/main/java/me/blackvein/quests/player/IQuester.java b/api/src/main/java/me/blackvein/quests/player/IQuester.java index 7dd6d2f0b..731d2da31 100644 --- a/api/src/main/java/me/blackvein/quests/player/IQuester.java +++ b/api/src/main/java/me/blackvein/quests/player/IQuester.java @@ -172,8 +172,7 @@ public interface IQuester extends Comparable { void smeltItem(final IQuest quest, final ItemStack itemStack); - void enchantBook(final IQuest quest, final ItemStack itemStack, - final Map enchantsToAdd); + void enchantBook(final IQuest quest, final ItemStack itemStack, final Map enchantsToAdd); void enchantItem(final IQuest quest, final ItemStack itemStack); diff --git a/core/src/main/java/me/blackvein/quests/Quests.java b/core/src/main/java/me/blackvein/quests/Quests.java index 46f2168ed..5ff9be6f3 100644 --- a/core/src/main/java/me/blackvein/quests/Quests.java +++ b/core/src/main/java/me/blackvein/quests/Quests.java @@ -492,12 +492,9 @@ public class Quests extends JavaPlugin implements QuestsAPI { * Get Quester from player UUID * * @param id Player UUID - * @return Quester, or null if UUID is null + * @return new or existing Quester */ - public Quester getQuester(final UUID id) { - if (id == null) { - return null; - } + public Quester getQuester(final @NotNull UUID id) { final ConcurrentSkipListSet set = (ConcurrentSkipListSet) questers; for (final IQuester q : set) { if (q != null && q.getUUID().equals(id)) { @@ -738,28 +735,15 @@ public class Quests extends JavaPlugin implements QuestsAPI { final Player player = (Player) context.getForWhom(); if (input.equalsIgnoreCase("1") || input.equalsIgnoreCase("y") || input.equalsIgnoreCase(Lang.get(player, "yesWord"))) { - IQuester quester = getQuester(player.getUniqueId()); - if (quester == null) { - // Must be new player - quester = new Quester(Quests.this, player.getUniqueId()); - if (quester.saveData()) { - getLogger().info("Created new data for player " + player.getName()); - } else { - Lang.send(player, ChatColor.RED + Lang.get(player, "questSaveError")); - } - } + final IQuester quester = getQuester(player.getUniqueId()); final String questIdToTake = quester.getQuestIdToTake(); - try { - if (getQuestByIdTemp(questIdToTake) == null) { - getLogger().info(player.getName() + " attempted to take quest ID \"" + questIdToTake - + "\" but something went wrong"); - player.sendMessage(ChatColor.RED - + "Something went wrong! Please report issue to an administrator."); - } else { - getQuester(player.getUniqueId()).takeQuest(getQuestByIdTemp(questIdToTake), false); - } - } catch (final Exception e) { - e.printStackTrace(); + if (getQuestByIdTemp(questIdToTake) == null) { + getLogger().warning(player.getName() + " attempted to take quest ID \"" + questIdToTake + + "\" but something went wrong"); + player.sendMessage(ChatColor.RED + + "Something went wrong! Please report issue to an administrator."); + } else { + quester.takeQuest(getQuestByIdTemp(questIdToTake), false); } return Prompt.END_OF_CONVERSATION; } else if (input.equalsIgnoreCase("2") || input.equalsIgnoreCase("n") diff --git a/core/src/main/java/me/blackvein/quests/convo/misc/NpcOfferQuestPrompt.java b/core/src/main/java/me/blackvein/quests/convo/misc/NpcOfferQuestPrompt.java index 13c696e63..25ed23841 100644 --- a/core/src/main/java/me/blackvein/quests/convo/misc/NpcOfferQuestPrompt.java +++ b/core/src/main/java/me/blackvein/quests/convo/misc/NpcOfferQuestPrompt.java @@ -27,6 +27,7 @@ import org.bukkit.ChatColor; import org.bukkit.conversations.ConversationContext; import org.bukkit.conversations.Prompt; import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import java.text.MessageFormat; @@ -132,7 +133,7 @@ public class NpcOfferQuestPrompt extends MiscStringPrompt { @SuppressWarnings("unchecked") @Override - public @Nonnull String getPromptText(final ConversationContext context) { + public @NotNull String getPromptText(final ConversationContext context) { this.context = context; final LinkedList quests = (LinkedList) context.getSessionData("npcQuests"); final String npc = (String) context.getSessionData("npc");