From 2fa387fd5bbee43b32665a1a661781d6e07562dd Mon Sep 17 00:00:00 2001 From: Blackvein Date: Sun, 14 Oct 2012 12:28:37 -0700 Subject: [PATCH] Version 1.5.1 --- src/UPDATES | 12 --- src/me/blackvein/quests/Event.java | 5 +- src/me/blackvein/quests/NpcListener.java | 8 +- src/me/blackvein/quests/PlayerListener.java | 48 ++++++++- src/me/blackvein/quests/Quester.java | 9 +- src/me/blackvein/quests/Quests.java | 106 ++++++++++---------- src/plugin.yml | 5 +- 7 files changed, 111 insertions(+), 82 deletions(-) delete mode 100644 src/UPDATES diff --git a/src/UPDATES b/src/UPDATES deleted file mode 100644 index 5e2dd4b7d..000000000 --- a/src/UPDATES +++ /dev/null @@ -1,12 +0,0 @@ -- Fixed quest-items not removing from player inventory - -- Added event functionalities: - - clear-inventory: true/false Clear players inventory? - - - item-ids: list of integers Item ids to give to the player - - item-amounts: list of integers Item amounts to give to the player - -- Added quest item requirement - - remove-items: list of true/false Should the item requirements be removed from the players inventory? - -- Added catches/printout messages for all quest-reading errors \ No newline at end of file diff --git a/src/me/blackvein/quests/Event.java b/src/me/blackvein/quests/Event.java index 73f487898..8bfa4433f 100644 --- a/src/me/blackvein/quests/Event.java +++ b/src/me/blackvein/quests/Event.java @@ -6,7 +6,6 @@ import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Scanner; import org.bukkit.ChatColor; import org.bukkit.Effect; import org.bukkit.Location; @@ -22,7 +21,7 @@ import org.bukkit.potion.PotionEffect; public class Event { String name = ""; - + String message = null; boolean clearInv = false; LinkedList explosions = new LinkedList(); @@ -47,7 +46,7 @@ public class Event { @Override public boolean equals(Object o){ - + if(o instanceof Event){ Event other = (Event) o; diff --git a/src/me/blackvein/quests/NpcListener.java b/src/me/blackvein/quests/NpcListener.java index 2b3e027c9..797a22fc8 100644 --- a/src/me/blackvein/quests/NpcListener.java +++ b/src/me/blackvein/quests/NpcListener.java @@ -41,7 +41,13 @@ public class NpcListener implements Listener{ if(quester.currentQuest == null){ - quester.questToTake = q; + quester.questToTake = q.name; + + String s = + ChatColor.GOLD + "- " + ChatColor.DARK_PURPLE + quester.questToTake + ChatColor.GOLD + " -\n" + + "\n" + + ChatColor.RESET + plugin.getQuest(quester.questToTake).description + "\n"; + player.sendMessage(s); plugin.conversationFactory.buildConversation((Conversable)player).begin(); }else { diff --git a/src/me/blackvein/quests/PlayerListener.java b/src/me/blackvein/quests/PlayerListener.java index a23d1ee0e..0d7ee7c75 100644 --- a/src/me/blackvein/quests/PlayerListener.java +++ b/src/me/blackvein/quests/PlayerListener.java @@ -60,7 +60,14 @@ public class PlayerListener implements Listener { }else { - quester.questToTake = q; + quester.questToTake = q.name; + + String s = + ChatColor.GOLD + "- " + ChatColor.DARK_PURPLE + quester.questToTake + ChatColor.GOLD + " -\n" + + "\n" + + ChatColor.RESET + plugin.getQuest(quester.questToTake).description + "\n"; + + player.sendMessage(s); plugin.conversationFactory.buildConversation((Conversable)player).begin(); } @@ -265,6 +272,7 @@ public class PlayerListener implements Listener { if(evt.getInventory().getType().equals(InventoryType.CHEST) == false || evt.getInventory().getType().equals(InventoryType.CHEST) == true && evt.getRawSlot() > 52){ ((Player) evt.getWhoClicked()).sendMessage(ChatColor.YELLOW + "You may not modify Quest items in your inventory."); evt.setCancelled(true); + ((Player) evt.getWhoClicked()).updateInventory(); }else if(evt.getInventory().getType().equals(InventoryType.CHEST) == true && evt.getRawSlot() < 53) quester.collectItem(evt.getCurrentItem()); @@ -294,7 +302,14 @@ public class PlayerListener implements Listener { if(p.getShooter() instanceof Player){ Player player = (Player) p.getShooter(); - if(plugin.citizens.getNPCRegistry().isNPC(player) == false){ + boolean okay = true; + + if(plugin.citizens != null){ + if(plugin.citizens.getNPCRegistry().isNPC(player)) + okay = false; + } + + if(okay){ Quester quester = plugin.getQuester(player.getName()); if(quester.hasObjective("killMob")) @@ -305,7 +320,14 @@ public class PlayerListener implements Listener { }else if(damager instanceof Player){ - if(plugin.citizens.getNPCRegistry().isNPC(damager) == false){ + boolean okay = true; + + if(plugin.citizens != null){ + if(plugin.citizens.getNPCRegistry().isNPC(damager)) + okay = false; + } + + if(okay){ Player player = (Player) damager; Quester quester = plugin.getQuester(player.getName()); @@ -339,7 +361,14 @@ public class PlayerListener implements Listener { if(p.getShooter() instanceof Player){ Player player = (Player) p.getShooter(); - if(plugin.citizens.getNPCRegistry().isNPC(player) == false && plugin.citizens.getNPCRegistry().isNPC(evt.getEntity()) == false){ + boolean okay = true; + + if(plugin.citizens != null){ + if(plugin.citizens.getNPCRegistry().isNPC(player) || plugin.citizens.getNPCRegistry().isNPC(evt.getEntity())) + okay = false; + } + + if(okay){ Quester quester = plugin.getQuester(player.getName()); if(quester.hasObjective("killPlayer")) @@ -352,7 +381,16 @@ public class PlayerListener implements Listener { }else if(damager instanceof Player){ Player player = (Player) damager; - if(plugin.citizens.getNPCRegistry().isNPC(player) == false && plugin.citizens.getNPCRegistry().isNPC(evt.getEntity()) == false){ + boolean okay = true; + + if(plugin.citizens != null){ + + if(plugin.citizens.getNPCRegistry().isNPC(player) || plugin.citizens.getNPCRegistry().isNPC(evt.getEntity())) + okay = false; + + } + + if(okay){ Quester quester = plugin.getQuester(player.getName()); if(quester.hasObjective("killPlayer")) diff --git a/src/me/blackvein/quests/Quester.java b/src/me/blackvein/quests/Quester.java index 9f5f1fa98..77fe1bce3 100644 --- a/src/me/blackvein/quests/Quester.java +++ b/src/me/blackvein/quests/Quester.java @@ -21,7 +21,7 @@ public class Quester { String name; Quest currentQuest; - Quest questToTake; + String questToTake; Stage currentStage; int questPoints = 0; Quests plugin; @@ -522,7 +522,7 @@ public class Quester { } else if (s.equalsIgnoreCase("catchFish")) { - if (currentStage.fishToCatch != null) { + if (currentStage.fishToCatch == null) { return false; } else { return true; @@ -546,7 +546,7 @@ public class Quester { } else if (s.equalsIgnoreCase("killPlayer")) { - if (currentStage.playersToKill != null) { + if (currentStage.playersToKill == null) { return false; } else { return true; @@ -825,8 +825,7 @@ public class Quester { if ((currentTime - killTime) < comparator) { - long minutes = (comparator - (currentTime - killTime)) / 60000; - plugin.getServer().getPlayer(name).sendMessage(ChatColor.RED + "[Quests] Kill did not count. You must wait " + ChatColor.DARK_PURPLE + minutes + " minutes " + ChatColor.RED + " before you can kill " + ChatColor.DARK_PURPLE + player + " again."); + plugin.getServer().getPlayer(name).sendMessage(ChatColor.RED + "[Quests] Kill did not count. You must wait " + ChatColor.DARK_PURPLE + Quests.getTime(comparator - (currentTime - killTime)) + ChatColor.RED + " before you can kill " + ChatColor.DARK_PURPLE + player + ChatColor.RED + " again."); return; } diff --git a/src/me/blackvein/quests/Quests.java b/src/me/blackvein/quests/Quests.java index 405f11756..4d04ec8ff 100644 --- a/src/me/blackvein/quests/Quests.java +++ b/src/me/blackvein/quests/Quests.java @@ -61,20 +61,18 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener{ @Override public void onEnable() { - + pListener = new PlayerListener(this); npcListener = new NpcListener(this); - + this.conversationFactory = new ConversationFactory(this) - .withModality(true) + .withModality(false) .withPrefix(new SummoningConversationPrefix()) .withFirstPrompt(new QuestPrompt()) - .withEscapeSequence("/cancel") - .withTimeout(10) + .withTimeout(20) .thatExcludesNonPlayersWithMessage("Console may not perform this conversation!") .addConversationAbandonedListener(this); - try { if (getServer().getPluginManager().getPlugin("Citizens") != null) { citizens = (CitizensPlugin) getServer().getPluginManager().getPlugin("Citizens"); @@ -181,15 +179,11 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener{ printInfo("[Quests] Disabled."); } - - + + @Override public void conversationAbandoned(ConversationAbandonedEvent abandonedEvent) { - if (abandonedEvent.gracefulExit()) { - abandonedEvent.getContext().getForWhom().sendRawMessage("Conversation exited gracefully."); - } else { - abandonedEvent.getContext().getForWhom().sendRawMessage("Conversation abandoned by" + abandonedEvent.getCanceller().getClass().getName()); - } + } private class QuestPrompt extends FixedSetPrompt { @@ -199,28 +193,27 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener{ @Override public String getPromptText(ConversationContext context) { - return "Accept Quest? " + formatFixedSet(); + + return ChatColor.YELLOW + "Accept Quest? " + ChatColor.GREEN + "Yes / No"; + } @Override protected Prompt acceptValidatedInput(ConversationContext context, String s) { - + Player player = (Player) context.getForWhom(); - if (s.equalsIgnoreCase("Yes") == false) { - + + if (s.equalsIgnoreCase("No")) { + player.sendMessage(ChatColor.YELLOW + "Cancelled."); return Prompt.END_OF_CONVERSATION; - + } - - context.setSessionData("who", player.getName()); - context.setSessionData("message", s); - - player.sendMessage(new SummoningConversationPrefix().getPrefix(context)); - - getQuester(player.getName()).takeQuest(getQuester(player.getName()).questToTake); - + + getQuester(player.getName()).takeQuest(getQuest(getQuester(player.getName()).questToTake)); + return Prompt.END_OF_CONVERSATION; + } } @@ -228,10 +221,11 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener{ @Override public String getPrefix(ConversationContext context) { - String who = (String)context.getSessionData("who"); - return ChatColor.GREEN + who + ": " + ChatColor.GRAY + (String) context.getSessionData("message"); + + return ChatColor.GREEN + "Quests: " + ChatColor.GRAY; + } - + } @@ -283,16 +277,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener{ @Override public boolean onCommand(CommandSender cs, Command cmd, String label, String[] args) { - if(cmd.getName().equalsIgnoreCase("convo")){ - - if (cs instanceof Conversable) { - conversationFactory.buildConversation((Conversable)cs).begin(); - return true; - } else { - return false; - } - - } else if (cmd.getName().equalsIgnoreCase("quest")) { + if (cmd.getName().equalsIgnoreCase("quest")) { if (cs instanceof Player) { @@ -608,7 +593,6 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener{ final Quest quest = questToFind; final Quester quester = getQuester(cs.getName()); - final CommandSender sender = cs; if (quester.currentQuest != null) { cs.sendMessage(ChatColor.YELLOW + "You may only have one active Quest."); @@ -631,9 +615,17 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener{ } if (takeable == true) { - + if (cs instanceof Conversable) { - quester.questToTake = quest; + + quester.questToTake = quest.name; + + String s = + ChatColor.GOLD + "- " + ChatColor.DARK_PURPLE + quester.questToTake + ChatColor.GOLD + " -\n" + + "\n" + + ChatColor.RESET + getQuest(quester.questToTake).description + "\n"; + + cs.sendMessage(s); conversationFactory.buildConversation((Conversable)cs).begin(); return true; }else{ @@ -2215,7 +2207,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener{ break; } - if (config.contains("quests." + s + ".stages.ordered" + s2 + ".kill-location-radii")) { + if (config.contains("quests." + s + ".stages.ordered." + s2 + ".kill-location-radii")) { if (Quests.checkList(config.getList("quests." + s + ".stages.ordered." + s2 + ".kill-location-radii"), Integer.class)) { @@ -2918,26 +2910,26 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener{ } public static void printSevere(String s){ - + s = ChatColor.stripColor(s); log.severe(s); - + } - + public static void printWarning(String s){ - + s = ChatColor.stripColor(s); log.warning(s); - + } - + public static void printInfo(String s){ - + s = ChatColor.stripColor(s); log.info(s); - + } - + public boolean hasItem(Player player, int i, int i2) { Inventory inv = player.getInventory(); @@ -3547,4 +3539,14 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener{ return true; } + + public Quest getQuest(String s){ + + for(Quest q : quests){ + if(q.name.equalsIgnoreCase(s)) + return q; + } + + return null; + } } diff --git a/src/plugin.yml b/src/plugin.yml index a1b132954..a3ce01231 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,6 +1,6 @@ name: Quests main: me.blackvein.quests.Quests -version: 1.4 +version: 1.5.0 description: Player questing system website: http://dev.bukkit.org/server-mods/quests/ dev-url: http://dev.bukkit.org/server-mods/quests/ @@ -65,7 +65,4 @@ commands: aliases: [questsadmin] quest: description: Quest command - permission: quests.quest - convo: - description: Convo command permission: quests.quest \ No newline at end of file