From 0d7e282807e233db9e7b73553aa2c4e91f2f9fff Mon Sep 17 00:00:00 2001 From: PikaMug <2267126+PikaMug@users.noreply.github.com> Date: Wed, 15 Apr 2020 03:40:24 -0400 Subject: [PATCH] Save proper Action effect name, fixes #1199 --- .../me/blackvein/quests/actions/Action.java | 8 +- .../quests/actions/ActionFactory.java | 92 +++++++++---------- 2 files changed, 51 insertions(+), 49 deletions(-) diff --git a/main/src/main/java/me/blackvein/quests/actions/Action.java b/main/src/main/java/me/blackvein/quests/actions/Action.java index 58184a110..fc48b99ed 100644 --- a/main/src/main/java/me/blackvein/quests/actions/Action.java +++ b/main/src/main/java/me/blackvein/quests/actions/Action.java @@ -493,15 +493,17 @@ public class Action { List effectList = data.getStringList(actionKey + "effects"); List effectLocs = data.getStringList(actionKey + "effect-locations"); for (String s : effectList) { - Effect effect = Effect.valueOf(s.toUpperCase()); - Location l = ConfigUtil.getLocation(effectLocs.get(effectList.indexOf(s))); - if (effect == null) { + Effect effect = null; + try { + effect = Effect.valueOf(s.toUpperCase()); + } catch (IllegalArgumentException e) { plugin.getLogger().severe(ChatColor.GOLD + "[Quests] " + ChatColor.RED + s + ChatColor.GOLD + " inside " + ChatColor.GREEN + "effects: " + ChatColor.GOLD + "inside Action " + ChatColor.DARK_PURPLE + name + ChatColor.GOLD + " is not a valid effect name!"); return null; } + Location l = ConfigUtil.getLocation(effectLocs.get(effectList.indexOf(s))); if (l == null) { plugin.getLogger().severe(ChatColor.GOLD + "[Quests] " + ChatColor.RED + effectLocs.get(effectList.indexOf(s)) + ChatColor.GOLD + " inside " diff --git a/main/src/main/java/me/blackvein/quests/actions/ActionFactory.java b/main/src/main/java/me/blackvein/quests/actions/ActionFactory.java index 3d6364e5d..11fefce68 100644 --- a/main/src/main/java/me/blackvein/quests/actions/ActionFactory.java +++ b/main/src/main/java/me/blackvein/quests/actions/ActionFactory.java @@ -1599,6 +1599,52 @@ public class ActionFactory implements ConversationAbandonedListener { } } + private class SoundEffectPrompt extends StringPrompt { + + @Override + public String getPromptText(ConversationContext context) { + String effects = ChatColor.LIGHT_PURPLE + Lang.get("eventEditorEffectsTitle") + "\n"; + Effect[] vals = Effect.values(); + for (int i = 0; i < vals.length; i++) { + Effect eff = vals[i]; + if (i < (vals.length - 1)) { + effects += MiscUtil.snakeCaseToUpperCamelCase(eff.name()) + ", "; + } else { + effects += MiscUtil.snakeCaseToUpperCamelCase(eff.name()) + "\n"; + } + + } + return effects + ChatColor.YELLOW + Lang.get("effEnterName"); + } + + @SuppressWarnings("unchecked") + @Override + public Prompt acceptInput(ConversationContext context, String input) { + Player player = (Player) context.getForWhom(); + if (input.equalsIgnoreCase(Lang.get("cmdCancel")) == false) { + if (getProperEffect(input) != null) { + LinkedList effects; + if (context.getSessionData(CK.E_EFFECTS) != null) { + effects = (LinkedList) context.getSessionData(CK.E_EFFECTS); + } else { + effects = new LinkedList(); + } + effects.add(getProperEffect(input).name()); + context.setSessionData(CK.E_EFFECTS, effects); + selectedEffectLocations.remove(player.getUniqueId()); + return new SoundEffectListPrompt(); + } else { + player.sendMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + + Lang.get("eventEditorInvalidEffect")); + return new SoundEffectPrompt(); + } + } else { + selectedEffectLocations.remove(player.getUniqueId()); + return new SoundEffectListPrompt(); + } + } + } + private class SoundEffectLocationPrompt extends StringPrompt { @Override @@ -1637,52 +1683,6 @@ public class ActionFactory implements ConversationAbandonedListener { } } - private class SoundEffectPrompt extends StringPrompt { - - @Override - public String getPromptText(ConversationContext context) { - String effects = ChatColor.LIGHT_PURPLE + Lang.get("eventEditorEffectsTitle") + "\n"; - Effect[] vals = Effect.values(); - for (int i = 0; i < vals.length; i++) { - Effect eff = vals[i]; - if (i < (vals.length - 1)) { - effects += MiscUtil.snakeCaseToUpperCamelCase(eff.name()) + ", "; - } else { - effects += MiscUtil.snakeCaseToUpperCamelCase(eff.name()) + "\n"; - } - - } - return effects + ChatColor.YELLOW + Lang.get("effEnterName"); - } - - @SuppressWarnings("unchecked") - @Override - public Prompt acceptInput(ConversationContext context, String input) { - Player player = (Player) context.getForWhom(); - if (input.equalsIgnoreCase(Lang.get("cmdCancel")) == false) { - if (getProperEffect(input) != null) { - LinkedList effects; - if (context.getSessionData(CK.E_EFFECTS) != null) { - effects = (LinkedList) context.getSessionData(CK.E_EFFECTS); - } else { - effects = new LinkedList(); - } - effects.add(input.toUpperCase()); - context.setSessionData(CK.E_EFFECTS, effects); - selectedEffectLocations.remove(player.getUniqueId()); - return new SoundEffectListPrompt(); - } else { - player.sendMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED - + Lang.get("eventEditorInvalidEffect")); - return new SoundEffectPrompt(); - } - } else { - selectedEffectLocations.remove(player.getUniqueId()); - return new SoundEffectListPrompt(); - } - } - } - private class StormPrompt extends FixedSetPrompt { public StormPrompt() {