diff --git a/main/src/main/java/me/blackvein/quests/DenizenTrigger.java b/main/src/main/java/me/blackvein/quests/DenizenTrigger.java index e0ea40ef6..05d72a2b4 100644 --- a/main/src/main/java/me/blackvein/quests/DenizenTrigger.java +++ b/main/src/main/java/me/blackvein/quests/DenizenTrigger.java @@ -18,7 +18,7 @@ public class DenizenTrigger { public DenizenTrigger(Quests plugin) { this.plugin = plugin; } - protected boolean runDenizenScript(String scriptName, Quester quester) { + public boolean runDenizenScript(String scriptName, Quester quester) { if (scriptName == null) { return false; } diff --git a/main/src/main/java/me/blackvein/quests/Quest.java b/main/src/main/java/me/blackvein/quests/Quest.java index af368cef7..689407a91 100644 --- a/main/src/main/java/me/blackvein/quests/Quest.java +++ b/main/src/main/java/me/blackvein/quests/Quest.java @@ -208,8 +208,8 @@ public class Quest { quester.findCompassTarget(); } if (currentStage.delay < 0) { - if (currentStage.finishEvent != null) { - currentStage.finishEvent.fire(quester, this); + if (currentStage.finishAction != null) { + currentStage.finishAction.fire(quester, this); } if (quester.currentQuests.get(this) == (orderedStages.size() - 1)) { if (currentStage.script != null) { @@ -266,8 +266,8 @@ public class Quest { if (currentStage.script != null) { plugin.getDenizenTrigger().runDenizenScript(currentStage.script, quester); } - if (nextStage.startEvent != null) { - nextStage.startEvent.fire(quester, this); + if (nextStage.startAction != null) { + nextStage.startAction.fire(quester, this); } updateCompass(quester, nextStage); String msg = Lang.get(quester.getPlayer(), "questObjectivesTitle"); diff --git a/main/src/main/java/me/blackvein/quests/QuestFactory.java b/main/src/main/java/me/blackvein/quests/QuestFactory.java index 4f800f5bf..733f82a27 100644 --- a/main/src/main/java/me/blackvein/quests/QuestFactory.java +++ b/main/src/main/java/me/blackvein/quests/QuestFactory.java @@ -885,34 +885,34 @@ public class QuestFactory implements ConversationAbandonedListener { cc.setSessionData(pref + CK.S_CUSTOM_OBJECTIVES_COUNT, countList); cc.setSessionData(pref + CK.S_CUSTOM_OBJECTIVES_DATA, datamapList); } - if (stage.startEvent != null) { - cc.setSessionData(pref + CK.S_START_EVENT, stage.startEvent.getName()); + if (stage.startAction != null) { + cc.setSessionData(pref + CK.S_START_EVENT, stage.startAction.getName()); } - if (stage.finishEvent != null) { - cc.setSessionData(pref + CK.S_FINISH_EVENT, stage.finishEvent.getName()); + if (stage.finishAction != null) { + cc.setSessionData(pref + CK.S_FINISH_EVENT, stage.finishAction.getName()); } - if (stage.deathEvent != null) { - cc.setSessionData(pref + CK.S_DEATH_EVENT, stage.deathEvent.getName()); + if (stage.deathAction != null) { + cc.setSessionData(pref + CK.S_DEATH_EVENT, stage.deathAction.getName()); } - if (stage.disconnectEvent != null) { - cc.setSessionData(pref + CK.S_DISCONNECT_EVENT, stage.disconnectEvent.getName()); + if (stage.disconnectAction != null) { + cc.setSessionData(pref + CK.S_DISCONNECT_EVENT, stage.disconnectAction.getName()); } - if (stage.chatEvents != null) { + if (stage.chatActions != null) { LinkedList chatEvents = new LinkedList(); LinkedList chatEventTriggers = new LinkedList(); - for (String s : stage.chatEvents.keySet()) { + for (String s : stage.chatActions.keySet()) { chatEventTriggers.add(s); - chatEvents.add(stage.chatEvents.get(s).getName()); + chatEvents.add(stage.chatActions.get(s).getName()); } cc.setSessionData(pref + CK.S_CHAT_EVENTS, chatEvents); cc.setSessionData(pref + CK.S_CHAT_EVENT_TRIGGERS, chatEventTriggers); } - if (stage.commandEvents != null) { + if (stage.commandActions != null) { LinkedList commandEvents = new LinkedList(); LinkedList commandEventTriggers = new LinkedList(); - for (String s : stage.commandEvents.keySet()) { + for (String s : stage.commandActions.keySet()) { commandEventTriggers.add(s); - commandEvents.add(stage.commandEvents.get(s).getName()); + commandEvents.add(stage.commandActions.get(s).getName()); } cc.setSessionData(pref + CK.S_COMMAND_EVENTS, commandEvents); cc.setSessionData(pref + CK.S_COMMAND_EVENT_TRIGGERS, commandEventTriggers); diff --git a/main/src/main/java/me/blackvein/quests/Quester.java b/main/src/main/java/me/blackvein/quests/Quester.java index 3461b8b81..810c99742 100644 --- a/main/src/main/java/me/blackvein/quests/Quester.java +++ b/main/src/main/java/me/blackvein/quests/Quester.java @@ -523,21 +523,21 @@ public class Quester { getPlayer().sendMessage(ConfigUtil .parseStringWithPossibleLineBreaks(stageStartMessage, q, getPlayer())); } - if (stage.chatEvents.isEmpty() == false) { - for (String chatTrigger : stage.chatEvents.keySet()) { + if (stage.chatActions.isEmpty() == false) { + for (String chatTrigger : stage.chatActions.keySet()) { questData.get(q).eventFired.put(chatTrigger, false); } } - if (stage.commandEvents.isEmpty() == false) { - for (String commandTrigger : stage.commandEvents.keySet()) { + if (stage.commandActions.isEmpty() == false) { + for (String commandTrigger : stage.commandActions.keySet()) { questData.get(q).eventFired.put(commandTrigger, false); } } if (q.initialAction != null) { q.initialAction.fire(this, q); } - if (stage.startEvent != null) { - stage.startEvent.fire(this, q); + if (stage.startAction != null) { + stage.startAction.fire(this, q); } q.updateCompass(this, stage); saveData(); @@ -3078,8 +3078,8 @@ public class Quester { if (questSec.contains("stage-delay")) { getQuestData(quest).delayTimeLeft = questSec.getLong("stage-delay"); } - if (getCurrentStage(quest).chatEvents.isEmpty() == false) { - for (String chatTrig : getCurrentStage(quest).chatEvents.keySet()) { + if (getCurrentStage(quest).chatActions.isEmpty() == false) { + for (String chatTrig : getCurrentStage(quest).chatActions.keySet()) { getQuestData(quest).eventFired.put(chatTrig, false); } } @@ -3089,8 +3089,8 @@ public class Quester { getQuestData(quest).eventFired.put(s, true); } } - if (getCurrentStage(quest).commandEvents.isEmpty() == false) { - for (String commandTrig : getCurrentStage(quest).commandEvents.keySet()) { + if (getCurrentStage(quest).commandActions.isEmpty() == false) { + for (String commandTrig : getCurrentStage(quest).commandActions.keySet()) { getQuestData(quest).eventFired.put(commandTrig, false); } } diff --git a/main/src/main/java/me/blackvein/quests/Quests.java b/main/src/main/java/me/blackvein/quests/Quests.java index 4b2b8eb96..7b77241c3 100644 --- a/main/src/main/java/me/blackvein/quests/Quests.java +++ b/main/src/main/java/me/blackvein/quests/Quests.java @@ -2829,7 +2829,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener Action evt = Action.loadAction(config.getString("quests." + questKey + ".stages.ordered." + s2 + ".start-event"), this); if (evt != null) { - oStage.startEvent = evt; + oStage.startAction = evt; } else { stageFailed("start-event: in Stage " + s2 + " of Quest " + quest.getName() + " failed to load."); } @@ -2838,7 +2838,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener Action evt = Action.loadAction(config.getString("quests." + questKey + ".stages.ordered." + s2 + ".finish-event"), this); if (evt != null) { - oStage.finishEvent = evt; + oStage.finishAction = evt; } else { stageFailed("finish-event: in Stage " + s2 + " of Quest " + quest.getName() + " failed to load."); } @@ -2847,7 +2847,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener Action evt = Action.loadAction(config.getString("quests." + questKey + ".stages.ordered." + s2 + ".death-event"), this); if (evt != null) { - oStage.deathEvent = evt; + oStage.deathAction = evt; } else { stageFailed("death-event: in Stage " + s2 + " of Quest " + quest.getName() + " failed to load."); } @@ -2856,7 +2856,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener Action evt = Action.loadAction(config.getString("quests." + questKey + ".stages.ordered." + s2 + ".disconnect-event"), this); if (evt != null) { - oStage.disconnectEvent = evt; + oStage.disconnectAction = evt; } else { stageFailed("disconnect-event: in Stage " + s2 + " of Quest " + quest.getName() + " failed to load."); @@ -2874,7 +2874,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener for (int i = 0; i < chatEvents.size(); i++) { Action evt = Action.loadAction(chatEvents.get(i), this); if (evt != null) { - oStage.chatEvents.put(chatEventTriggers.get(i), evt); + oStage.chatActions.put(chatEventTriggers.get(i), evt); } else { loadEventFailed = true; stageFailed("" + chatEvents.get(i) + " inside of chat-events: in Stage " + s2 @@ -2909,7 +2909,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener for (int i = 0; i < commandEvents.size(); i++) { Action evt = Action.loadAction(commandEvents.get(i), this); if (evt != null) { - oStage.commandEvents.put(commandEventTriggers.get(i), evt); + oStage.commandActions.put(commandEventTriggers.get(i), evt); } else { loadEventFailed = true; stageFailed("" + commandEvents.get(i) + " inside of command-events: in Stage " + s2 diff --git a/main/src/main/java/me/blackvein/quests/Stage.java b/main/src/main/java/me/blackvein/quests/Stage.java index 6014f0c54..d7f003128 100644 --- a/main/src/main/java/me/blackvein/quests/Stage.java +++ b/main/src/main/java/me/blackvein/quests/Stage.java @@ -116,12 +116,12 @@ public class Stage { protected LinkedList passwordDisplays = new LinkedList(); protected LinkedList> passwordPhrases = new LinkedList>(); protected String script; - protected Action startEvent = null; - protected Action deathEvent = null; - protected Map chatEvents = new HashMap(); - protected Map commandEvents = new HashMap(); - protected Action disconnectEvent = null; - protected Action finishEvent = null; + protected Action startAction = null; + protected Action deathAction = null; + protected Map chatActions = new HashMap(); + protected Map commandActions = new HashMap(); + protected Action disconnectAction = null; + protected Action finishAction = null; protected long delay = -1; protected String delayMessage = null; protected String completeMessage = null; @@ -395,52 +395,52 @@ public class Stage { this.script = script; } - public Action getStartEvent() { - return startEvent; + public Action getStartAction() { + return startAction; } - public void setStartEvent(Action startEvent) { - this.startEvent = startEvent; + public void setStartAction(Action startAction) { + this.startAction = startAction; } - public Action getDeathEvent() { - return deathEvent; + public Action getDeathAction() { + return deathAction; } - public void setDeathEvent(Action deathEvent) { - this.deathEvent = deathEvent; + public void setDeathAction(Action deathAction) { + this.deathAction = deathAction; } - public Map getChatEvents() { - return chatEvents; + public Map getChatActions() { + return chatActions; } - public void setChatEvents(Map chatEvents) { - this.chatEvents = chatEvents; + public void setChatActions(Map chatActions) { + this.chatActions = chatActions; } - public Map getCommandEvents() { - return commandEvents; + public Map getCommandActions() { + return commandActions; } - public void setCommandEvents(Map commandEvents) { - this.commandEvents = commandEvents; + public void setCommandActions(Map commandActions) { + this.commandActions = commandActions; } - public Action getDisconnectEvent() { - return disconnectEvent; + public Action getDisconnectAction() { + return disconnectAction; } - public void setDisconnectEvent(Action disconnectEvent) { - this.disconnectEvent = disconnectEvent; + public void setDisconnectAction(Action disconnectAction) { + this.disconnectAction = disconnectAction; } - public Action getFinishEvent() { - return finishEvent; + public Action getFinishAction() { + return finishAction; } - public void setFinishEvent(Action finishEvent) { - this.finishEvent = finishEvent; + public void setFinishAction(Action finishAction) { + this.finishAction = finishAction; } public long getDelay() { 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 a70ecaa8f..d5cefddf8 100644 --- a/main/src/main/java/me/blackvein/quests/actions/Action.java +++ b/main/src/main/java/me/blackvein/quests/actions/Action.java @@ -89,6 +89,7 @@ public class Action { protected float health = -1; protected Location teleport; protected String book = ""; + protected String denizenScript; public Action(final Quests plugin) { this.plugin = plugin; @@ -269,6 +270,14 @@ public class Action { public void setBook(String book) { this.book = book; } + + public String getDenizenScript() { + return book; + } + + public void setDenizenScript(String scriptName) { + this.denizenScript = scriptName; + } public void fire(Quester quester, Quest quest) { Player player = quester.getPlayer(); @@ -399,6 +408,9 @@ public class Action { } } } + if (denizenScript != null) { + plugin.getDenizenTrigger().runDenizenScript(denizenScript, quester); + } } public static Action loadAction(String name, Quests plugin) { @@ -689,7 +701,8 @@ public class Action { if (data.contains(actionKey + "potion-effect-durations")) { if (ConfigUtil.checkList(data.getList(actionKey + "potion-effect-durations"), Integer.class)) { if (data.contains(actionKey + "potion-effect-amplifiers")) { - if (ConfigUtil.checkList(data.getList(actionKey + "potion-effect-amplifiers"), Integer.class)) { + if (ConfigUtil.checkList(data.getList(actionKey + "potion-effect-amplifiers"), + Integer.class)) { List types = data.getStringList(actionKey + "potion-effect-types"); List durations = data.getIntegerList(actionKey + "potion-effect-durations"); List amplifiers = data.getIntegerList(actionKey + "potion-effect-amplifiers"); @@ -802,6 +815,9 @@ public class Action { return null; } } + if (data.contains(actionKey + "denizen-script")) { + action.denizenScript = data.getString(actionKey + "denizen-script"); + } return action; } } 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 523c22d12..7ba0089fb 100644 --- a/main/src/main/java/me/blackvein/quests/actions/ActionFactory.java +++ b/main/src/main/java/me/blackvein/quests/actions/ActionFactory.java @@ -254,7 +254,7 @@ public class ActionFactory implements ConversationAbandonedListener { } public class ActionMainPrompt extends NumericPrompt { - private final int size = 9; + private final int size = 10; public int getSize() { return size; @@ -273,10 +273,16 @@ public class ActionFactory implements ConversationAbandonedListener { case 5: case 6: case 7: - return ChatColor.BLUE; + if (plugin.getDependencies().getDenizenAPI() == null) { + return ChatColor.GRAY; + } else { + return ChatColor.BLUE; + } case 8: - return ChatColor.GREEN; + return ChatColor.BLUE; case 9: + return ChatColor.GREEN; + case 10: return ChatColor.RED; default: return null; @@ -298,10 +304,16 @@ public class ActionFactory implements ConversationAbandonedListener { case 6: return ChatColor.YELLOW + Lang.get("eventEditorSetMobSpawns"); case 7: - return ChatColor.YELLOW + Lang.get("eventEditorFailQuest") + ":"; + if (plugin.getDependencies().getDenizenAPI() == null) { + return ChatColor.GRAY + Lang.get("stageEditorDenizenScript"); + } else { + return ChatColor.YELLOW + Lang.get("stageEditorDenizenScript"); + } case 8: - return ChatColor.GREEN + Lang.get("save"); + return ChatColor.YELLOW + Lang.get("eventEditorFailQuest") + ":"; case 9: + return ChatColor.GREEN + Lang.get("save"); + case 10: return ChatColor.RED + Lang.get("exit"); default: return null; @@ -333,12 +345,23 @@ public class ActionFactory implements ConversationAbandonedListener { return text; } case 7: + if (plugin.getDependencies().getDenizenAPI() == null) { + return ChatColor.GRAY + "(" + Lang.get("notInstalled") + ")"; + } else { + if (context.getSessionData(CK.E_DENIZEN) == null) { + return ChatColor.GRAY + "(" + Lang.get("noneSet") + ")"; + } else { + return ChatColor.GRAY + "(" + ChatColor.AQUA + context.getSessionData(CK.E_DENIZEN) + + ChatColor.GRAY + ")"; + } + } + case 8: if (context.getSessionData(CK.E_FAIL_QUEST) == null) { context.setSessionData(CK.E_FAIL_QUEST, Lang.get("noWord")); } return "" + ChatColor.AQUA + context.getSessionData(CK.E_FAIL_QUEST); - case 8: case 9: + case 10: return ""; default: return null; @@ -375,6 +398,8 @@ public class ActionFactory implements ConversationAbandonedListener { case 6: return new MobPrompt(); case 7: + return new DenizenPrompt(); + case 8: String s = (String) context.getSessionData(CK.E_FAIL_QUEST); if (s.equalsIgnoreCase(Lang.get("yesWord"))) { context.setSessionData(CK.E_FAIL_QUEST, Lang.get("noWord")); @@ -382,13 +407,13 @@ public class ActionFactory implements ConversationAbandonedListener { context.setSessionData(CK.E_FAIL_QUEST, Lang.get("yesWord")); } return new ActionMainPrompt(); - case 8: + case 9: if (context.getSessionData(CK.E_OLD_EVENT) != null) { return new SavePrompt((String) context.getSessionData(CK.E_OLD_EVENT)); } else { return new SavePrompt(null); } - case 9: + case 10: return new ExitPrompt(); default: return null; @@ -577,8 +602,8 @@ public class ActionFactory implements ConversationAbandonedListener { if (a != null) { for (Quest quest : plugin.getQuests()) { for (Stage stage : quest.getStages()) { - if (stage.getFinishEvent() != null - && stage.getFinishEvent().getName().equalsIgnoreCase(a.getName())) { + if (stage.getFinishAction() != null + && stage.getFinishAction().getName().equalsIgnoreCase(a.getName())) { used.add(quest.getName()); break; } @@ -945,8 +970,8 @@ public class ActionFactory implements ConversationAbandonedListener { modName = modifiedName; for (Quest q : plugin.getQuests()) { for (Stage s : q.getStages()) { - if (s.getFinishEvent() != null && s.getFinishEvent().getName() != null) { - if (s.getFinishEvent().getName().equalsIgnoreCase(modifiedName)) { + if (s.getFinishAction() != null && s.getFinishAction().getName() != null) { + if (s.getFinishAction().getName().equalsIgnoreCase(modifiedName)) { modified.add(q.getName()); break; } @@ -1253,6 +1278,9 @@ public class ActionFactory implements ConversationAbandonedListener { section.set("cancel-timer", true); } } + if (context.getSessionData(CK.E_DENIZEN) != null) { + section.set("denizen-script", getCString(context, CK.E_DENIZEN)); + } try { data.save(actionsFile); } catch (IOException e) { @@ -2673,4 +2701,37 @@ public class ActionFactory implements ConversationAbandonedListener { } return null; } + + private class DenizenPrompt extends StringPrompt { + + @Override + public String getPromptText(ConversationContext context) { + String text = ChatColor.DARK_AQUA + "- " + Lang.get("stageEditorDenizenScript") + " -\n"; + for (String s : plugin.getDependencies().getDenizenAPI()._getScriptNames()) { + text += ChatColor.AQUA + "- " + s + "\n"; + } + return text + ChatColor.YELLOW + Lang.get("stageEditorScriptPrompt"); + } + + @Override + public Prompt acceptInput(ConversationContext context, String input) { + Player player = (Player) context.getForWhom(); + if (input.equalsIgnoreCase(Lang.get("cmdCancel")) == false + && input.equalsIgnoreCase(Lang.get("cmdClear")) == false) { + if (plugin.getDependencies().getDenizenAPI().containsScript(input)) { + context.setSessionData(CK.E_DENIZEN, input.toUpperCase()); + return new ActionMainPrompt(); + } else { + player.sendMessage(ChatColor.RED + Lang.get("stageEditorInvalidScript")); + return new DenizenPrompt(); + } + } else if (input.equalsIgnoreCase(Lang.get("cmdClear"))) { + context.setSessionData(CK.E_DENIZEN, null); + player.sendMessage(ChatColor.YELLOW + Lang.get("stageEditorDenizenCleared")); + return new ActionMainPrompt(); + } else { + return new ActionMainPrompt(); + } + } + } } diff --git a/main/src/main/java/me/blackvein/quests/listeners/PlayerListener.java b/main/src/main/java/me/blackvein/quests/listeners/PlayerListener.java index 9b3f2b664..06a06b1be 100644 --- a/main/src/main/java/me/blackvein/quests/listeners/PlayerListener.java +++ b/main/src/main/java/me/blackvein/quests/listeners/PlayerListener.java @@ -402,16 +402,16 @@ public class PlayerListener implements Listener { + " on chat for quest " + quest.getName()); continue; } - if (currentStage.getChatEvents().isEmpty() == false) { + if (currentStage.getChatActions().isEmpty() == false) { String chat = evt.getMessage(); - for (final String s : currentStage.getChatEvents().keySet()) { + for (final String s : currentStage.getChatActions().keySet()) { if (s.equalsIgnoreCase(chat)) { if (quester.getQuestData(quest).eventFired.get(s) == null || quester.getQuestData(quest).eventFired.get(s) == false) { new BukkitRunnable() { @Override public void run() { - currentStage.getChatEvents().get(s).fire(quester, quest); + currentStage.getChatActions().get(s).fire(quester, quest); } }.runTask(this.plugin); @@ -456,13 +456,13 @@ public class PlayerListener implements Listener { + " on command for quest " + quest.getName()); continue; } - if (currentStage.getCommandEvents().isEmpty() == false) { + if (currentStage.getCommandActions().isEmpty() == false) { String command = evt.getMessage(); - for (String s : currentStage.getCommandEvents().keySet()) { + for (String s : currentStage.getCommandActions().keySet()) { if (command.equalsIgnoreCase("/" + s)) { if (quester.getQuestData(quest).eventFired.get(s) == null || quester.getQuestData(quest).eventFired.get(s) == false) { - currentStage.getCommandEvents().get(s).fire(quester, quest); + currentStage.getCommandActions().get(s).fire(quester, quest); quester.getQuestData(quest).eventFired.put(s, true); } } @@ -833,8 +833,8 @@ public class PlayerListener implements Listener { Quester quester = plugin.getQuester(target.getUniqueId()); for (Quest quest : quester.getCurrentQuests().keySet()) { Stage stage = quester.getCurrentStage(quest); - if (stage != null && stage.getDeathEvent() != null) { - quester.getCurrentStage(quest).getDeathEvent().fire(quester, quest); + if (stage != null && stage.getDeathAction() != null) { + quester.getCurrentStage(quest).getDeathAction().fire(quester, quest); } } } @@ -982,8 +982,8 @@ public class PlayerListener implements Listener { if (currentStage.getDelay() > -1) { quester.stopStageTimer(quest); } - if (currentStage.getDisconnectEvent() != null) { - currentStage.getDisconnectEvent().fire(quester, quest); + if (currentStage.getDisconnectAction() != null) { + currentStage.getDisconnectAction().fire(quester, quest); } } for (Integer timerId : quester.getTimers().keySet()) { diff --git a/main/src/main/java/me/blackvein/quests/prompts/StageMainPrompt.java b/main/src/main/java/me/blackvein/quests/prompts/StageMainPrompt.java index 55eba24bd..41260b2b2 100644 --- a/main/src/main/java/me/blackvein/quests/prompts/StageMainPrompt.java +++ b/main/src/main/java/me/blackvein/quests/prompts/StageMainPrompt.java @@ -47,7 +47,7 @@ public class StageMainPrompt extends NumericPrompt { private final String pref; private final QuestFactory questFactory; private boolean hasObjective = false; - private final int size = 17; + private final int size = 16; public StageMainPrompt(Quests plugin, int stageNum, QuestFactory qf) { this.plugin = plugin; @@ -94,16 +94,6 @@ public class StageMainPrompt extends NumericPrompt { return ChatColor.BLUE; } case 12: - if (plugin.getDependencies().getDenizenAPI() == null) { - return ChatColor.GRAY; - } else { - if (!hasObjective) { - return ChatColor.GRAY; - } else { - return ChatColor.BLUE; - } - } - case 13: if (context.getSessionData(pref + CK.S_START_MESSAGE) == null) { if (!hasObjective) { return ChatColor.GRAY; @@ -113,7 +103,7 @@ public class StageMainPrompt extends NumericPrompt { } else { return ChatColor.BLUE; } - case 14: + case 13: if (context.getSessionData(pref + CK.S_COMPLETE_MESSAGE) == null) { if (!hasObjective) { return ChatColor.GRAY; @@ -123,7 +113,7 @@ public class StageMainPrompt extends NumericPrompt { } else { return ChatColor.BLUE; } - case 15: + case 14: if (context.getSessionData(pref + CK.S_OVERRIDE_DISPLAY) == null) { if (!hasObjective) { return ChatColor.GRAY; @@ -133,14 +123,15 @@ public class StageMainPrompt extends NumericPrompt { } else { return ChatColor.BLUE; } - case 16: + case 15: return ChatColor.RED; - case 17: + case 16: return ChatColor.GREEN; default: return null; } } + public String getSelectionText(ConversationContext context, int number) { switch (number) { case 1: @@ -178,16 +169,6 @@ public class StageMainPrompt extends NumericPrompt { return ChatColor.YELLOW + Lang.get("stageEditorDelayMessage"); } case 12: - if (plugin.getDependencies().getDenizenAPI() == null) { - return ChatColor.GRAY + Lang.get("stageEditorDenizenScript"); - } else { - if (!hasObjective) { - return ChatColor.GRAY + Lang.get("stageEditorDenizenScript"); - } else { - return ChatColor.YELLOW + Lang.get("stageEditorDenizenScript"); - } - } - case 13: if (context.getSessionData(pref + CK.S_START_MESSAGE) == null) { if (!hasObjective) { return ChatColor.GRAY + Lang.get("stageEditorStartMessage"); @@ -197,7 +178,7 @@ public class StageMainPrompt extends NumericPrompt { } else { return ChatColor.YELLOW + Lang.get("stageEditorStartMessage"); } - case 14: + case 13: if (context.getSessionData(pref + CK.S_COMPLETE_MESSAGE) == null) { if (!hasObjective) { return ChatColor.GRAY + Lang.get("stageEditorCompleteMessage"); @@ -207,7 +188,7 @@ public class StageMainPrompt extends NumericPrompt { } else { return ChatColor.YELLOW + Lang.get("stageEditorCompleteMessage"); } - case 15: + case 14: if (context.getSessionData(pref + CK.S_OVERRIDE_DISPLAY) == null) { if (!hasObjective) { return ChatColor.GRAY + Lang.get("stageEditorObjectiveOverride"); @@ -217,9 +198,9 @@ public class StageMainPrompt extends NumericPrompt { } else { return ChatColor.YELLOW + Lang.get("stageEditorObjectiveOverride"); } - case 16: + case 15: return ChatColor.RED + Lang.get("stageEditorDelete"); - case 17: + case 16: return ChatColor.GREEN + Lang.get("done"); default: return null; @@ -341,21 +322,6 @@ public class StageMainPrompt extends NumericPrompt { + context.getSessionData(pref + CK.S_DELAY_MESSAGE) + "\"" + ChatColor.GRAY + ")"; } case 12: - if (plugin.getDependencies().getDenizenAPI() == null) { - return ChatColor.GRAY + "(" + Lang.get("notInstalled") + ")"; - } else { - if (!hasObjective) { - return ChatColor.GRAY + "(" + Lang.get("stageEditorOptional") + ")"; - } else { - if (context.getSessionData(pref + CK.S_DENIZEN) == null) { - return ChatColor.GRAY + "(" + Lang.get("noneSet") + ")"; - } else { - return ChatColor.GRAY + "(" + ChatColor.AQUA + context.getSessionData(pref + CK.S_DENIZEN) - + ChatColor.GRAY + ")"; - } - } - } - case 13: if (context.getSessionData(pref + CK.S_START_MESSAGE) == null) { if (!hasObjective) { return ChatColor.GRAY + "(" + Lang.get("stageEditorOptional") + ")"; @@ -366,7 +332,7 @@ public class StageMainPrompt extends NumericPrompt { return ChatColor.GRAY + "(" + ChatColor.AQUA + "\"" + context.getSessionData(pref + CK.S_START_MESSAGE) + "\"" + ChatColor.GRAY + ")"; } - case 14: + case 13: if (context.getSessionData(pref + CK.S_COMPLETE_MESSAGE) == null) { if (!hasObjective) { return ChatColor.GRAY + "(" + Lang.get("stageEditorOptional") + ")"; @@ -377,7 +343,7 @@ public class StageMainPrompt extends NumericPrompt { return ChatColor.GRAY + "(" + ChatColor.AQUA + "\"" + context.getSessionData(pref + CK.S_COMPLETE_MESSAGE) + "\"" + ChatColor.GRAY + ")"; } - case 15: + case 14: if (context.getSessionData(pref + CK.S_OVERRIDE_DISPLAY) == null) { if (!hasObjective) { return ChatColor.GRAY + "(" + Lang.get("stageEditorOptional") + ")"; @@ -388,8 +354,8 @@ public class StageMainPrompt extends NumericPrompt { return ChatColor.GRAY + "(" + ChatColor.AQUA + "\"" + context.getSessionData(pref + CK.S_OVERRIDE_DISPLAY) + "\"" + ChatColor.GRAY + ")"; } + case 15: case 16: - case 17: return ""; default: return null; @@ -454,7 +420,7 @@ public class StageMainPrompt extends NumericPrompt { } else { return new DelayMessagePrompt(); } - case 12: + /*case 12: if (plugin.getDependencies().getDenizenAPI() == null) { context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("stageEditorNoDenizen")); return new StageMainPrompt(plugin, stageNum, questFactory); @@ -465,31 +431,31 @@ public class StageMainPrompt extends NumericPrompt { context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("invalidOption")); return new StageMainPrompt(plugin, stageNum, questFactory); } - } - case 13: + }*/ + case 12: if (hasObjective) { return new StartMessagePrompt(); } else { context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("invalidOption")); return new StageMainPrompt(plugin, stageNum, questFactory); } - case 14: + case 13: if (hasObjective) { return new CompleteMessagePrompt(); } else { context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("invalidOption")); return new StageMainPrompt(plugin, stageNum, questFactory); } - case 15: + case 14: if (hasObjective) { return new OverrideDisplayPrompt(); } else { context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("invalidOption")); return new StageMainPrompt(plugin, stageNum, questFactory); } - case 16: + case 15: return new DeletePrompt(); - case 17: + case 16: return new StageMenuPrompt(plugin, questFactory); default: return new StageMainPrompt(plugin, stageNum, questFactory); @@ -1500,39 +1466,6 @@ public class StageMainPrompt extends NumericPrompt { } } - private class DenizenPrompt extends StringPrompt { - - @Override - public String getPromptText(ConversationContext context) { - String text = ChatColor.DARK_AQUA + "- " + Lang.get("stageEditorDenizenScript") + " -\n"; - for (String s : plugin.getDependencies().getDenizenAPI()._getScriptNames()) { - text += ChatColor.AQUA + "- " + s + "\n"; - } - return text + ChatColor.YELLOW + Lang.get("stageEditorScriptPrompt"); - } - - @Override - public Prompt acceptInput(ConversationContext context, String input) { - Player player = (Player) context.getForWhom(); - if (input.equalsIgnoreCase(Lang.get("cmdCancel")) == false - && input.equalsIgnoreCase(Lang.get("cmdClear")) == false) { - if (plugin.getDependencies().getDenizenAPI().containsScript(input)) { - context.setSessionData(pref + CK.S_DENIZEN, input.toUpperCase()); - return new StageMainPrompt(plugin, stageNum, questFactory); - } else { - player.sendMessage(ChatColor.RED + Lang.get("stageEditorInvalidScript")); - return new DenizenPrompt(); - } - } else if (input.equalsIgnoreCase(Lang.get("cmdClear"))) { - context.setSessionData(pref + CK.S_DENIZEN, null); - player.sendMessage(ChatColor.YELLOW + Lang.get("stageEditorDenizenCleared")); - return new StageMainPrompt(plugin, stageNum, questFactory); - } else { - return new StageMainPrompt(plugin, stageNum, questFactory); - } - } - } - private class DeletePrompt extends StringPrompt { @Override diff --git a/main/src/main/java/me/blackvein/quests/tasks/StageTimer.java b/main/src/main/java/me/blackvein/quests/tasks/StageTimer.java index 9dd2e00d0..ff99a30fb 100644 --- a/main/src/main/java/me/blackvein/quests/tasks/StageTimer.java +++ b/main/src/main/java/me/blackvein/quests/tasks/StageTimer.java @@ -48,8 +48,8 @@ public class StageTimer implements Runnable { if (quester.getCurrentStage(quest).getScript() != null) { plugin.getDependencies().runDenizenScript(quester.getCurrentStage(quest).getScript(), quester); } - if (quester.getCurrentStage(quest).getFinishEvent() != null) { - quester.getCurrentStage(quest).getFinishEvent().fire(quester, quest); + if (quester.getCurrentStage(quest).getFinishAction() != null) { + quester.getCurrentStage(quest).getFinishAction().fire(quester, quest); } quest.completeQuest(quester); } else { @@ -59,8 +59,8 @@ public class StageTimer implements Runnable { if (currentStage.getScript() != null) { plugin.getDependencies().runDenizenScript(currentStage.getScript(), quester); } - if (currentStage.getFinishEvent() != null) { - currentStage.getFinishEvent().fire(quester, quest); + if (currentStage.getFinishAction() != null) { + currentStage.getFinishAction().fire(quester, quest); } quester.hardStagePut(quest, stageNum); quester.addEmptiesFor(quest, stageNum); @@ -68,7 +68,7 @@ public class StageTimer implements Runnable { //quester.getCurrentStage(quest).setDelay(-1); quester.getQuestData(quest).delayStartTime = 0; quester.getQuestData(quest).delayTimeLeft = -1; - Action stageStartEvent = quester.getCurrentStage(quest).getStartEvent(); + Action stageStartEvent = quester.getCurrentStage(quest).getStartAction(); if (stageStartEvent != null) { stageStartEvent.fire(quester, quest); } diff --git a/main/src/main/java/me/blackvein/quests/util/CK.java b/main/src/main/java/me/blackvein/quests/util/CK.java index b3bf3ee71..635a07e56 100644 --- a/main/src/main/java/me/blackvein/quests/util/CK.java +++ b/main/src/main/java/me/blackvein/quests/util/CK.java @@ -98,7 +98,7 @@ public class CK { public static final String S_DISCONNECT_EVENT = "disconnectEvent"; public static final String S_DELAY = "delay"; public static final String S_DELAY_MESSAGE = "delayMessage"; - public static final String S_DENIZEN = "denizen"; + public static final String S_DENIZEN = "denizen"; // Legacy public static final String S_COMPLETE_MESSAGE = "completeMessage"; public static final String S_START_MESSAGE = "startMessage"; public static final String S_OVERRIDE_DISPLAY = "overrideDisplay"; @@ -165,4 +165,5 @@ public class CK { public static final String E_COMMANDS = "evtCommands"; public static final String E_TIMER = "evtTimer"; public static final String E_CANCEL_TIMER = "evtCancelTimer"; + public static final String E_DENIZEN = "evtDenizen"; }