diff --git a/pom.xml b/pom.xml index 5db210b7c..d4c3651df 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ me.blackvein.quests quests - 3.3.2 + 3.3.3 quests https://github.com/FlyingPikachu/Quests/ jar diff --git a/src/main/java/me/blackvein/quests/EventFactory.java b/src/main/java/me/blackvein/quests/EventFactory.java index 6528ab059..b88637439 100644 --- a/src/main/java/me/blackvein/quests/EventFactory.java +++ b/src/main/java/me/blackvein/quests/EventFactory.java @@ -52,7 +52,6 @@ import me.blackvein.quests.util.ItemUtil; import me.blackvein.quests.util.Lang; import me.blackvein.quests.util.MiscUtil; import me.blackvein.quests.util.QuestMob; -import net.citizensnpcs.api.CitizensAPI; public class EventFactory implements ConversationAbandonedListener { @@ -935,27 +934,6 @@ public class EventFactory implements ConversationAbandonedListener { } } - @SuppressWarnings("unused") - private class SetNpcStartPrompt extends NumericPrompt { - - @Override - public String getPromptText(ConversationContext context) { - return ChatColor.YELLOW + Lang.get("eventEditorEnterNPCId"); - } - - @Override - protected Prompt acceptValidatedInput(ConversationContext context, Number input) { - if (input.intValue() != -1) { - if (CitizensAPI.getNPCRegistry().getById(input.intValue()) == null) { - context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("eventEditorNoNPCExists")); - return new SetNpcStartPrompt(); - } - context.setSessionData("npcStart", input.intValue()); - } - return new CreateMenuPrompt(); - } - } - private class ExplosionPrompt extends StringPrompt { @Override @@ -2080,7 +2058,7 @@ public class EventFactory implements ConversationAbandonedListener { } } - private class HungerPrompt extends NumericPrompt { + private class HungerPrompt extends StringPrompt { @Override public String getPromptText(ConversationContext context) { @@ -2088,13 +2066,20 @@ public class EventFactory implements ConversationAbandonedListener { } @Override - protected Prompt acceptValidatedInput(ConversationContext context, Number input) { - if (input.intValue() != -1) { - if (input.intValue() < 0) { - ((Player) context.getForWhom()).sendMessage(ChatColor.RED + Lang.get("invalidMinimum").replace("", "0")); + public Prompt acceptInput(ConversationContext context, String input) { + if (input.equalsIgnoreCase(Lang.get("cmdClear")) == false) { + try { + int i = Integer.parseInt(input); + if (i < 0) { + ((Player) context.getForWhom()).sendMessage(ChatColor.RED + Lang.get("invalidMinimum").replace("", "0")); + return new HungerPrompt(); + } else { + context.setSessionData(CK.E_HUNGER, (Integer) i); + } + } catch (NumberFormatException e) { + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + + Lang.get("stageEditorInvalidNumber")); return new HungerPrompt(); - } else { - context.setSessionData(CK.E_HUNGER, (Integer) input.intValue()); } } else { context.setSessionData(CK.E_HUNGER, null); @@ -2103,7 +2088,7 @@ public class EventFactory implements ConversationAbandonedListener { } } - private class SaturationPrompt extends NumericPrompt { + private class SaturationPrompt extends StringPrompt { @Override public String getPromptText(ConversationContext context) { @@ -2111,13 +2096,20 @@ public class EventFactory implements ConversationAbandonedListener { } @Override - protected Prompt acceptValidatedInput(ConversationContext context, Number input) { - if (input.intValue() != -1) { - if (input.intValue() < 0) { - ((Player) context.getForWhom()).sendMessage(ChatColor.RED + Lang.get("invalidMinimum").replace("", "0")); + public Prompt acceptInput(ConversationContext context, String input) { + if (input.equalsIgnoreCase(Lang.get("cmdClear")) == false) { + try { + int i = Integer.parseInt(input); + if (i < 0) { + ((Player) context.getForWhom()).sendMessage(ChatColor.RED + Lang.get("invalidMinimum").replace("", "0")); + return new SaturationPrompt(); + } else { + context.setSessionData(CK.E_SATURATION, (Integer) i); + } + } catch (NumberFormatException e) { + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + + Lang.get("stageEditorInvalidNumber")); return new SaturationPrompt(); - } else { - context.setSessionData(CK.E_SATURATION, (Integer) input.intValue()); } } else { context.setSessionData(CK.E_SATURATION, null); @@ -2126,7 +2118,7 @@ public class EventFactory implements ConversationAbandonedListener { } } - private class HealthPrompt extends NumericPrompt { + private class HealthPrompt extends StringPrompt { @Override public String getPromptText(ConversationContext context) { @@ -2134,13 +2126,20 @@ public class EventFactory implements ConversationAbandonedListener { } @Override - protected Prompt acceptValidatedInput(ConversationContext context, Number input) { - if (input.intValue() != -1) { - if (input.intValue() < 0) { - ((Player) context.getForWhom()).sendMessage(ChatColor.RED + Lang.get("invalidMinimum").replace("", "0")); + public Prompt acceptInput(ConversationContext context, String input) { + if (input.equalsIgnoreCase(Lang.get("cmdClear")) == false) { + try { + int i = Integer.parseInt(input); + if (i < 0) { + ((Player) context.getForWhom()).sendMessage(ChatColor.RED + Lang.get("invalidMinimum").replace("", "0")); + return new HealthPrompt(); + } else { + context.setSessionData(CK.E_HEALTH, (Integer) i); + } + } catch (NumberFormatException e) { + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + + Lang.get("stageEditorInvalidNumber")); return new HealthPrompt(); - } else { - context.setSessionData(CK.E_HEALTH, (Integer) input.intValue()); } } else { context.setSessionData(CK.E_HEALTH, null); diff --git a/src/main/java/me/blackvein/quests/QuestFactory.java b/src/main/java/me/blackvein/quests/QuestFactory.java index e4530d6d7..cc65dfecb 100644 --- a/src/main/java/me/blackvein/quests/QuestFactory.java +++ b/src/main/java/me/blackvein/quests/QuestFactory.java @@ -37,7 +37,6 @@ import org.bukkit.conversations.ConversationAbandonedListener; import org.bukkit.conversations.ConversationContext; import org.bukkit.conversations.ConversationFactory; import org.bukkit.conversations.FixedSetPrompt; -import org.bukkit.conversations.NumericPrompt; import org.bukkit.conversations.Prompt; import org.bukkit.conversations.StringPrompt; import org.bukkit.enchantments.Enchantment; @@ -324,7 +323,7 @@ public class QuestFactory implements ConversationAbandonedListener { } } - private class SetNpcStartPrompt extends NumericPrompt { + private class SetNpcStartPrompt extends StringPrompt { @Override public String getPromptText(ConversationContext context) { @@ -333,26 +332,29 @@ public class QuestFactory implements ConversationAbandonedListener { } @Override - protected Prompt acceptValidatedInput(ConversationContext context, Number input) { - if (input.intValue() > -1) { - if (CitizensAPI.getNPCRegistry().getById(input.intValue()) == null) { - context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("questEditorInvalidNPC")); + public Prompt acceptInput(ConversationContext context, String input) { + if (input.equalsIgnoreCase(Lang.get("cmdCancel")) == false && input.equalsIgnoreCase(Lang.get("cmdClear")) == false) { + try { + int i = Integer.parseInt(input); + if (i > -1) { + if (CitizensAPI.getNPCRegistry().getById(i) == null) { + context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("questEditorInvalidNPC")); + return new SetNpcStartPrompt(); + } + context.setSessionData(CK.Q_START_NPC, i); + selectingNPCs.remove((Player) context.getForWhom()); + return new CreateMenuPrompt(); + } + } catch (NumberFormatException e) { + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + + Lang.get("stageEditorInvalidNumber")); return new SetNpcStartPrompt(); } - context.setSessionData(CK.Q_START_NPC, input.intValue()); - selectingNPCs.remove((Player) context.getForWhom()); - return new CreateMenuPrompt(); - } else if (input.intValue() == -1) { + } else if (input.equalsIgnoreCase(Lang.get("cmdClear"))) { context.setSessionData(CK.Q_START_NPC, null); - selectingNPCs.remove((Player) context.getForWhom()); - return new CreateMenuPrompt(); - } else if (input.intValue() == -2) { - selectingNPCs.remove((Player) context.getForWhom()); - return new CreateMenuPrompt(); - } else { - context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("questEditorInvalidNPC")); - return new SetNpcStartPrompt(); } + selectingNPCs.remove((Player) context.getForWhom()); + return new CreateMenuPrompt(); } } diff --git a/src/main/java/me/blackvein/quests/prompts/CreateStagePrompt.java b/src/main/java/me/blackvein/quests/prompts/CreateStagePrompt.java index e667ecf8e..7564563bd 100644 --- a/src/main/java/me/blackvein/quests/prompts/CreateStagePrompt.java +++ b/src/main/java/me/blackvein/quests/prompts/CreateStagePrompt.java @@ -25,7 +25,6 @@ import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.conversations.ConversationContext; import org.bukkit.conversations.FixedSetPrompt; -import org.bukkit.conversations.NumericPrompt; import org.bukkit.conversations.Prompt; import org.bukkit.conversations.StringPrompt; import org.bukkit.enchantments.Enchantment; @@ -759,7 +758,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new BreakBlockNamesPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("stageEditorNotListofNumbers") + "\n" + ChatColor.LIGHT_PURPLE + s); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new BreakBlockNamesPrompt(); } } @@ -790,7 +789,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new BreakBlockAmountsPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new BreakBlockAmountsPrompt(); } } @@ -821,7 +820,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new BreakBlockDurabilityPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new BreakBlockDurabilityPrompt(); } } @@ -977,7 +976,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new DamageBlockNamesPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new DamageBlockNamesPrompt(); } } @@ -1008,7 +1007,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new DamageBlockAmountsPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new DamageBlockAmountsPrompt(); } } @@ -1039,7 +1038,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new DamageBlockDurabilityPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new DamageBlockDurabilityPrompt(); } } @@ -1195,7 +1194,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new PlaceBlockNamesPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new PlaceBlockNamesPrompt(); } } @@ -1226,7 +1225,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new PlaceBlockAmountsPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new PlaceBlockAmountsPrompt(); } } @@ -1257,7 +1256,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new PlaceBlockDurabilityPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new PlaceBlockDurabilityPrompt(); } } @@ -1413,7 +1412,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new UseBlockNamesPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new UseBlockNamesPrompt(); } } @@ -1444,7 +1443,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new UseBlockAmountsPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new UseBlockAmountsPrompt(); } } @@ -1475,7 +1474,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new UseBlockDurabilityPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new UseBlockDurabilityPrompt(); } } @@ -1631,7 +1630,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new CutBlockNamesPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new CutBlockNamesPrompt(); } } @@ -1662,7 +1661,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new CutBlockAmountsPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new CutBlockAmountsPrompt(); } } @@ -1693,7 +1692,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new CutBlockDurabilityPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new CutBlockDurabilityPrompt(); } } @@ -1703,7 +1702,7 @@ public class CreateStagePrompt extends FixedSetPrompt { } } - private class FishPrompt extends NumericPrompt { + private class FishPrompt extends StringPrompt { @Override public String getPromptText(ConversationContext context) { @@ -1711,22 +1710,29 @@ public class CreateStagePrompt extends FixedSetPrompt { } @Override - protected Prompt acceptValidatedInput(ConversationContext context, Number number) { - int num = number.intValue(); - Player player = (Player) context.getForWhom(); - if (num < -1) { - player.sendMessage(ChatColor.RED + Lang.get("stageEditorPositiveAmount")); - return new FishPrompt(); - } else if (num == 0) { + public Prompt acceptInput(ConversationContext context, String input) { + if (input.equalsIgnoreCase(Lang.get("cmdCancel")) == false && input.equalsIgnoreCase(Lang.get("cmdClear")) == false) { + try { + int i = Integer.parseInt(input); + if (i < 0) { + context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("stageEditorPositiveAmount")); + return new FishPrompt(); + } else if (i > 0) { + context.setSessionData(pref + CK.S_FISH, i); + } + } catch (NumberFormatException e) { + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + + Lang.get("stageEditorInvalidNumber")); + return new FishPrompt(); + } + } else if (input.equalsIgnoreCase(Lang.get("cmdClear"))) { context.setSessionData(pref + CK.S_FISH, null); - } else if (num > 0) { - context.setSessionData(pref + CK.S_FISH, num); } return new CreateStagePrompt(stageNum, questFactory, citizens); } } - private class KillPlayerPrompt extends NumericPrompt { + private class KillPlayerPrompt extends StringPrompt { @Override public String getPromptText(ConversationContext context) { @@ -1734,16 +1740,23 @@ public class CreateStagePrompt extends FixedSetPrompt { } @Override - protected Prompt acceptValidatedInput(ConversationContext context, Number number) { - int num = number.intValue(); - Player player = (Player) context.getForWhom(); - if (num < -1) { - player.sendMessage(ChatColor.RED + Lang.get("stageEditorPositiveAmount")); - return new KillPlayerPrompt(); - } else if (num == 0) { + public Prompt acceptInput(ConversationContext context, String input) { + if (input.equalsIgnoreCase(Lang.get("cmdCancel")) == false && input.equalsIgnoreCase(Lang.get("cmdClear")) == false) { + try { + int i = Integer.parseInt(input); + if (i < 0) { + context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("stageEditorPositiveAmount")); + return new FishPrompt(); + } else if (i > 0) { + context.setSessionData(pref + CK.S_PLAYER_KILL, i); + } + } catch (NumberFormatException e) { + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + + Lang.get("stageEditorInvalidNumber")); + return new FishPrompt(); + } + } else if (input.equalsIgnoreCase(Lang.get("cmdClear"))) { context.setSessionData(pref + CK.S_PLAYER_KILL, null); - } else if (num > 0) { - context.setSessionData(pref + CK.S_PLAYER_KILL, num); } return new CreateStagePrompt(stageNum, questFactory, citizens); } @@ -1936,7 +1949,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new EnchantItemsPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new EnchantItemsPrompt(); } } @@ -1967,7 +1980,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new EnchantAmountsPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new EnchantAmountsPrompt(); } } @@ -2126,7 +2139,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new DeliveryNPCsPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new DeliveryNPCsPrompt(); } } @@ -2180,7 +2193,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new NPCIDsToTalkToPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new NPCIDsToTalkToPrompt(); } } @@ -2300,7 +2313,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new NpcIdsToKillPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new NpcIdsToKillPrompt(); } } @@ -2332,7 +2345,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new NpcAmountsToKillPrompt(); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorNotListofNumbers")); return new NpcAmountsToKillPrompt(); } } @@ -3640,7 +3653,7 @@ public class CreateStagePrompt extends FixedSetPrompt { int i = Integer.parseInt(input); stageDelay = i * 1000; } catch (NumberFormatException e) { - player.sendMessage(ChatColor.RED + Lang.get("stageEditorNoNumber")); + player.sendMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + Lang.get("stageEditorInvalidNumber")); return new DelayPrompt(); } if (stageDelay < 1000) { @@ -3907,7 +3920,7 @@ public class CreateStagePrompt extends FixedSetPrompt { return new CreateStagePrompt(stageNum, questFactory, citizens); } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("stageEditorNoNumber")); + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + Lang.get("stageEditorInvalidNumber")); return new CustomObjectiveCountPrompt(); } } diff --git a/src/main/java/me/blackvein/quests/prompts/PlannerPrompt.java b/src/main/java/me/blackvein/quests/prompts/PlannerPrompt.java index fa8387f8d..b6c854b13 100644 --- a/src/main/java/me/blackvein/quests/prompts/PlannerPrompt.java +++ b/src/main/java/me/blackvein/quests/prompts/PlannerPrompt.java @@ -113,18 +113,16 @@ public class PlannerPrompt extends FixedSetPrompt { try { int i = Integer.parseInt(input); delay = i * 1000; + if (delay < 1) { + context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("questEditorPositiveAmount")); + } else { + context.setSessionData(CK.PLN_REPEAT_CYCLE, delay); + } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.ITALIC + "" + ChatColor.RED + input + ChatColor.RESET + ChatColor.RED + " " + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + Lang.get("stageEditorInvalidNumber")); return new RepeatPrompt(); } - if (delay < -1) { - context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("questEditorPositiveAmount")); - } else if (delay == 0) { - context.setSessionData(CK.PLN_REPEAT_CYCLE, null); - } else if (delay != -1) { - context.setSessionData(CK.PLN_REPEAT_CYCLE, delay); - } return new PlannerPrompt(quests, factory); } } @@ -148,18 +146,16 @@ public class PlannerPrompt extends FixedSetPrompt { try { int i = Integer.parseInt(input); delay = i * 1000; + if (delay < 1) { + context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("questEditorPositiveAmount")); + } else { + context.setSessionData(CK.PLN_COOLDOWN, delay); + } } catch (NumberFormatException e) { - context.getForWhom().sendRawMessage(ChatColor.ITALIC + "" + ChatColor.RED + input + ChatColor.RESET + ChatColor.RED + " " + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + Lang.get("stageEditorInvalidNumber")); return new CooldownPrompt(); } - if (delay < -1) { - context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("questEditorPositiveAmount")); - } else if (delay == 0) { - context.setSessionData(CK.PLN_COOLDOWN, null); - } else if (delay != -1) { - context.setSessionData(CK.PLN_COOLDOWN, delay); - } return new PlannerPrompt(quests, factory); } } diff --git a/src/main/java/me/blackvein/quests/prompts/RequirementsPrompt.java b/src/main/java/me/blackvein/quests/prompts/RequirementsPrompt.java index baf46e4c1..4155d0bf0 100644 --- a/src/main/java/me/blackvein/quests/prompts/RequirementsPrompt.java +++ b/src/main/java/me/blackvein/quests/prompts/RequirementsPrompt.java @@ -22,7 +22,6 @@ import java.util.Map; import org.bukkit.ChatColor; import org.bukkit.conversations.ConversationContext; import org.bukkit.conversations.FixedSetPrompt; -import org.bukkit.conversations.NumericPrompt; import org.bukkit.conversations.Prompt; import org.bukkit.conversations.StringPrompt; import org.bukkit.inventory.ItemStack; @@ -187,7 +186,7 @@ public class RequirementsPrompt extends FixedSetPrompt { return null; } - private class MoneyPrompt extends NumericPrompt { + private class MoneyPrompt extends StringPrompt { @Override public String getPromptText(ConversationContext context) { @@ -201,40 +200,56 @@ public class RequirementsPrompt extends FixedSetPrompt { } @Override - protected Prompt acceptValidatedInput(ConversationContext context, Number input) { - if (input.intValue() < -1) { - context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqGreaterThanZero")); - return new MoneyPrompt(); - } else if (input.intValue() == -1) { - return new RequirementsPrompt(quests, factory); - } else if (input.intValue() == 0) { + public Prompt acceptInput(ConversationContext context, String input) { + if (input.equalsIgnoreCase(Lang.get("cmdCancel")) == false && input.equalsIgnoreCase(Lang.get("cmdClear")) == false) { + try { + int i = Integer.parseInt(input); + if (i > 0) { + context.setSessionData(CK.REQ_MONEY, i); + } else { + context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("inputPosNum")); + return new MoneyPrompt(); + } + } catch (NumberFormatException e) { + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + + Lang.get("stageEditorInvalidNumber")); + return new MoneyPrompt(); + } + } else if (input.equalsIgnoreCase(Lang.get("cmdClear"))) { context.setSessionData(CK.REQ_MONEY, null); return new RequirementsPrompt(quests, factory); } - context.setSessionData(CK.REQ_MONEY, input.intValue()); return new RequirementsPrompt(quests, factory); } } - private class QuestPointsPrompt extends NumericPrompt { + private class QuestPointsPrompt extends StringPrompt { @Override public String getPromptText(ConversationContext context) { return ChatColor.YELLOW + Lang.get("reqQuestPointsPrompt"); } - + @Override - protected Prompt acceptValidatedInput(ConversationContext context, Number input) { - if (input.intValue() < -1) { - context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("invalidMinimum").replace("", "0")); - return new QuestPointsPrompt(); - } else if (input.intValue() == -1) { - return new RequirementsPrompt(quests, factory); - } else if (input.intValue() == 0) { + public Prompt acceptInput(ConversationContext context, String input) { + if (input.equalsIgnoreCase(Lang.get("cmdCancel")) == false && input.equalsIgnoreCase(Lang.get("cmdClear")) == false) { + try { + int i = Integer.parseInt(input); + if (i > 0) { + context.setSessionData(CK.REQ_QUEST_POINTS, i); + } else { + context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("inputPosNum")); + return new QuestPointsPrompt(); + } + } catch (NumberFormatException e) { + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + + Lang.get("stageEditorInvalidNumber")); + return new QuestPointsPrompt(); + } + } else if (input.equalsIgnoreCase(Lang.get("cmdClear"))) { context.setSessionData(CK.REQ_QUEST_POINTS, null); return new RequirementsPrompt(quests, factory); } - context.setSessionData(CK.REQ_QUEST_POINTS, input.intValue()); return new RequirementsPrompt(quests, factory); } } diff --git a/src/main/java/me/blackvein/quests/prompts/RewardsPrompt.java b/src/main/java/me/blackvein/quests/prompts/RewardsPrompt.java index 050f7933e..71597c979 100644 --- a/src/main/java/me/blackvein/quests/prompts/RewardsPrompt.java +++ b/src/main/java/me/blackvein/quests/prompts/RewardsPrompt.java @@ -21,7 +21,6 @@ import java.util.Map; import org.bukkit.ChatColor; import org.bukkit.conversations.ConversationContext; import org.bukkit.conversations.FixedSetPrompt; -import org.bukkit.conversations.NumericPrompt; import org.bukkit.conversations.Prompt; import org.bukkit.conversations.StringPrompt; import org.bukkit.inventory.ItemStack; @@ -186,7 +185,7 @@ public class RewardsPrompt extends FixedSetPrompt { return null; } - private class MoneyPrompt extends NumericPrompt { + private class MoneyPrompt extends StringPrompt { @Override public String getPromptText(ConversationContext context) { @@ -199,58 +198,88 @@ public class RewardsPrompt extends FixedSetPrompt { } return ChatColor.YELLOW + text; } - + @Override - protected Prompt acceptValidatedInput(ConversationContext context, Number input) { - if (input.intValue() < -1) { - context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("inputPosNum")); - return new MoneyPrompt(); - } else if (input.intValue() == 0) { + public Prompt acceptInput(ConversationContext context, String input) { + if (input.equalsIgnoreCase(Lang.get("cmdCancel")) == false && input.equalsIgnoreCase(Lang.get("cmdClear")) == false) { + try { + int i = Integer.parseInt(input); + if (i > 0) { + context.setSessionData(CK.REW_MONEY, i); + } else { + context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("inputPosNum")); + return new MoneyPrompt(); + } + } catch (NumberFormatException e) { + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + + Lang.get("stageEditorInvalidNumber")); + return new MoneyPrompt(); + } + } else if (input.equalsIgnoreCase(Lang.get("cmdClear"))) { context.setSessionData(CK.REW_MONEY, null); - } else if (input.intValue() != -1) { - context.setSessionData(CK.REW_MONEY, input.intValue()); + return new RewardsPrompt(quests, factory); } return new RewardsPrompt(quests, factory); } } - private class ExperiencePrompt extends NumericPrompt { + private class ExperiencePrompt extends StringPrompt { @Override public String getPromptText(ConversationContext context) { return ChatColor.YELLOW + Lang.get("rewExperiencePrompt"); } - + @Override - protected Prompt acceptValidatedInput(ConversationContext context, Number input) { - if (input.intValue() < -1) { - context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("inputPosNum")); - return new ExperiencePrompt(); - } else if (input.intValue() == -1) { + public Prompt acceptInput(ConversationContext context, String input) { + if (input.equalsIgnoreCase(Lang.get("cmdCancel")) == false && input.equalsIgnoreCase(Lang.get("cmdClear")) == false) { + try { + int i = Integer.parseInt(input); + if (i > 0) { + context.setSessionData(CK.REW_EXP, i); + } else { + context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("inputPosNum")); + return new ExperiencePrompt(); + } + } catch (NumberFormatException e) { + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + + Lang.get("stageEditorInvalidNumber")); + return new ExperiencePrompt(); + } + } else if (input.equalsIgnoreCase(Lang.get("cmdClear"))) { context.setSessionData(CK.REW_EXP, null); - } else if (input.intValue() != 0) { - context.setSessionData(CK.REW_EXP, input.intValue()); + return new RewardsPrompt(quests, factory); } return new RewardsPrompt(quests, factory); } } - private class QuestPointsPrompt extends NumericPrompt { + private class QuestPointsPrompt extends StringPrompt { @Override public String getPromptText(ConversationContext context) { return ChatColor.YELLOW + Lang.get("rewQuestPointsPrompt"); } - + @Override - protected Prompt acceptValidatedInput(ConversationContext context, Number input) { - if (input.intValue() < -1) { - context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("inputPosNum")); - return new QuestPointsPrompt(); - } else if (input.intValue() == -1) { + public Prompt acceptInput(ConversationContext context, String input) { + if (input.equalsIgnoreCase(Lang.get("cmdCancel")) == false && input.equalsIgnoreCase(Lang.get("cmdClear")) == false) { + try { + int i = Integer.parseInt(input); + if (i > 0) { + context.setSessionData(CK.REW_QUEST_POINTS, i); + } else { + context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("inputPosNum")); + return new QuestPointsPrompt(); + } + } catch (NumberFormatException e) { + context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + + Lang.get("stageEditorInvalidNumber")); + return new QuestPointsPrompt(); + } + } else if (input.equalsIgnoreCase(Lang.get("cmdClear"))) { context.setSessionData(CK.REW_QUEST_POINTS, null); - } else if (input.intValue() != 0) { - context.setSessionData(CK.REW_QUEST_POINTS, input.intValue()); + return new RewardsPrompt(quests, factory); } return new RewardsPrompt(quests, factory); } diff --git a/src/main/resources/strings.yml b/src/main/resources/strings.yml index 933b1598b..230362e80 100644 --- a/src/main/resources/strings.yml +++ b/src/main/resources/strings.yml @@ -69,7 +69,7 @@ questEditorEnterQuestName: "Enter Quest name ()" questEditorEditEnterQuestName: "Enter Quest name to edit ()" questEditorEnterAskMessage: "Enter ask message ()" questEditorEnterFinishMessage: "Enter finish message ()" -questEditorEnterNPCStart: "Enter NPC ID, -1 to clear the NPC start or -2 to cancel" +questEditorEnterNPCStart: "Enter NPC ID, , " questEditorEnterBlockStart: "Right-click on a block to use as a start point, , , " questEditorEnterInitialEvent: "Enter an Event name, , " questRequiredNoneSet: "Required, none set" @@ -192,8 +192,8 @@ stageEditorPlaceBlocksPrompt: "Enter place amounts (numbers), , " stageEditorUseBlocksPrompt: "Enter use amounts (numbers), , " stageEditorCutBlocksPrompt: "Enter cut amounts (numbers), , " stageEditorEnterBlockDurability: "Enter block durability (numbers), , " -stageEditorCatchFishPrompt: "Enter number of fish to catch, or 0 to clear the fish catch objective, or -1 to cancel" -stageEditorKillPlayerPrompt: "Enter number of players to kill, or 0 to clear the player kill objective, or -1 to cancel" +stageEditorCatchFishPrompt: "Enter number of fish to catch, , " +stageEditorKillPlayerPrompt: "Enter number of players to kill, , " stageEditorEnchantTypePrompt: "Enter enchantment names, , " stageEditorEnchantAmountsPrompt: "Enter enchant amounts (numbers), , " stageEditorItemNamesPrompt: "Enter item names, , " @@ -246,8 +246,7 @@ stageEditorInvalidScript: "Denizen script not found!" stageEditorNoCitizens: "Citizens is not installed!" stageEditorNoDenizen: "Denizen is not installed!" stageEditorPositiveAmount: "You must enter a positive number!" -stageEditorNoNumber: "Input was not a number!" -stageEditorNotListofNumbers: "Invalid entry, input was not a list of numbers!" +stageEditorNotListofNumbers: "is not a list of numbers!" stageEditorNoDelaySet: "You must set a delay first!" stageEditorNoBlockNames: "You must set block names first!" stageEditorNoEnchantments: "You must set enchantments first!" @@ -422,8 +421,6 @@ eventEditorNoDurationsSet: "(No durations set)" eventEditorSetPotionMagnitudes: "Set potion effect magnitudes" eventEditorPotionsCleared: "Potion effects cleared." eventEditorInvalidPotionType: "is not a valid potion effect type!" -eventEditorEnterNPCId: "Enter NPC ID (or -1 to cancel)" -eventEditorNoNPCExists: "No NPC exists with that id!" eventEditorLightningPrompt: "Right-click on a block to spawn a lightning strike at, , , " eventEditorExplosionPrompt: "Right-click on a block to spawn an explosion at, , , " eventEditorSelectBlockFirst: "You must select a block first." @@ -435,9 +432,9 @@ eventEditorSetMobLocationPrompt: "Right-click on a block to select it, , , " eventEditorSetPotionDurationsPrompt: "Enter potion effect durations (in seconds), , " eventEditorSetPotionMagnitudesPrompt: "Enter potion effect magnitudes, , " -eventEditorSetHungerPrompt: "Enter hunger level, or -1 to clear" -eventEditorSetSaturationPrompt: "Enter saturation level, or -1 to clear" -eventEditorSetHealthPrompt: "Enter health level, or -1 to clear" +eventEditorSetHungerPrompt: "Enter hunger level, " +eventEditorSetSaturationPrompt: "Enter saturation level, " +eventEditorSetHealthPrompt: "Enter health level, " eventEditorSetTeleportPrompt: "Right-click on a block to teleport the player to, , , " eventEditorCommandsNote: "Note: You may use to refer to the player's name." eventEditorSetCommandsPrompt: "Enter commands, , , " @@ -455,8 +452,8 @@ reqSetSkills: "Set skills" reqSetSkillAmounts: "Set skill amounts" reqHeroesSetPrimary: "Set Primary Class" reqHeroesSetSecondary: "Set Secondary Class" -reqMoneyPrompt: "Enter amount of , or 0 to clear the money requirement, or -1 to cancel" -reqQuestPointsPrompt: "Enter amount of Quest Points, or 0 to clear the Quest Point requirement, or -1 to cancel" +reqMoneyPrompt: "Enter amount of , , " +reqQuestPointsPrompt: "Enter amount of Quest Points, , " reqQuestListTitle: "- Quests Available -" reqQuestPrompt: "Enter a list of Quest names, , , " reqRemoveItemsPrompt: "Enter a list of true/false values, , " @@ -498,10 +495,8 @@ plnStart: "Set start date" plnEnd: "Set end date" plnRepeat: "Set repeat cycle" plnCooldown: "Set player cooldown" -plnStartPrompt: "Enter amount of time (in seconds), 0 to clear the start date or -1 to cancel" -plnEndPrompt: "Enter amount of time (in seconds), 0 to clear the end date or -1 to cancel" -plnRepeatPrompt: "Enter amount of time (in seconds), 0 to clear the repeat or -1 to cancel" -plnCooldownPrompt: "Enter amount of time (in seconds), 0 to clear the cooldown or -1 to cancel" +plnRepeatPrompt: "Enter amount of time (in seconds), , " +plnCooldownPrompt: "Enter amount of time (in seconds), , " plnTooEarly: " will be active in