From 14882fb3eddc8402598ff4ec5003942e772085b1 Mon Sep 17 00:00:00 2001 From: HappyPikachu Date: Sat, 30 Sep 2017 22:55:53 -0400 Subject: [PATCH] Account for outdated Vault items, fixes #123. Bump version number --- pom.xml | 2 +- .../java/me/blackvein/quests/PlayerListener.java | 13 ++++++++++++- src/main/java/me/blackvein/quests/Quester.java | 8 ++++++++ .../java/me/blackvein/quests/util/ItemUtil.java | 5 +++-- 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index bef596223..d054db8bd 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ me.blackvein.quests quests - 3.0.5 + 3.0.6 quests https://github.com/FlyingPikachu/Quests/ jar diff --git a/src/main/java/me/blackvein/quests/PlayerListener.java b/src/main/java/me/blackvein/quests/PlayerListener.java index 57b3b91c3..611589ad7 100644 --- a/src/main/java/me/blackvein/quests/PlayerListener.java +++ b/src/main/java/me/blackvein/quests/PlayerListener.java @@ -407,6 +407,7 @@ public class PlayerListener implements Listener { @EventHandler public void onEntityDeath(EntityDeathEvent evt) { + System.out.println("1"); // NPCs count as a Player so we check for them through Citizens boolean isTargetNPC = false; if (plugin.citizens != null) { @@ -414,11 +415,14 @@ public class PlayerListener implements Listener { isTargetNPC = true; } } - if (evt.getEntity() instanceof Player == false || isTargetNPC) { + if (/*evt.getEntity() instanceof Player == false ||*/ isTargetNPC) { + System.out.println("2"); if (evt.getEntity().getLastDamageCause() instanceof EntityDamageByEntityEvent) { + System.out.println("3"); EntityDamageByEntityEvent damageEvent = (EntityDamageByEntityEvent) evt.getEntity().getLastDamageCause(); Entity damager = damageEvent.getDamager(); if (damager != null) { + System.out.println("4"); if (damager instanceof Projectile) { Projectile projectile = (Projectile) damager; ProjectileSource source = projectile.getShooter(); @@ -430,11 +434,14 @@ public class PlayerListener implements Listener { okay = false; } } + System.out.println("5"); if (okay) { if (isTargetNPC) { + System.out.println("6"); Quester quester = plugin.getQuester(player.getUniqueId()); for (Quest quest : quester.currentQuests.keySet()) { if (quester.hasObjective(quest, "killNPC")) { + System.out.println("7"); quester.killNPC(quest, CitizensAPI.getNPCRegistry().getNPC(evt.getEntity())); } } @@ -442,6 +449,7 @@ public class PlayerListener implements Listener { Quester quester = plugin.getQuester(player.getUniqueId()); for (Quest quest : quester.currentQuests.keySet()) { if (quester.hasObjective(quest, "killMob")) { + System.out.println("7-2"); quester.killMob(quest, evt.getEntity().getLocation(), evt.getEntity().getType()); } } @@ -469,6 +477,7 @@ public class PlayerListener implements Listener { } } } else if (damager instanceof Player) { + System.out.println("7-3"); boolean okay = true; if (plugin.citizens != null) { if (CitizensAPI.getNPCRegistry().isNPC(damager)) { @@ -476,10 +485,12 @@ public class PlayerListener implements Listener { } } if (okay) { + System.out.println("7-4"); Player player = (Player) damager; Quester quester = plugin.getQuester(player.getUniqueId()); for (Quest quest : quester.currentQuests.keySet()) { if (quester.hasObjective(quest, "killMob")) { + System.out.println("7-5"); quester.killMob(quest, evt.getEntity().getLocation(), evt.getEntity().getType()); } } diff --git a/src/main/java/me/blackvein/quests/Quester.java b/src/main/java/me/blackvein/quests/Quester.java index bd3531dc0..5d1d5906e 100644 --- a/src/main/java/me/blackvein/quests/Quester.java +++ b/src/main/java/me/blackvein/quests/Quester.java @@ -839,8 +839,10 @@ public class Quester { } public void killMob(Quest quest, Location killedLocation, EntityType e) { + System.out.println("8"); QuestData questData = getQuestData(quest); if (questData.mobsKilled.contains(e) == false) { + System.out.println("9"); return; } Stage currentStage = getCurrentStage(quest); @@ -848,6 +850,7 @@ public class Quester { Integer numberOfSpecificMobKilled = questData.mobNumKilled.get(indexOfMobKilled); Integer numberOfSpecificMobNeedsToBeKilledInCurrentStage = currentStage.mobNumToKill.get(indexOfMobKilled); if (questData.locationsToKillWithin.isEmpty() == false) { + System.out.println("10-1"); Location locationToKillWithin = questData.locationsToKillWithin.get(indexOfMobKilled); double radius = questData.radiiToKillWithin.get(indexOfMobKilled); // Check world #name, not the object @@ -866,9 +869,11 @@ public class Quester { } } if (numberOfSpecificMobKilled < numberOfSpecificMobNeedsToBeKilledInCurrentStage) { + System.out.println("10-2"); Integer newNumberOfSpecificMobKilled = numberOfSpecificMobKilled + 1; questData.mobNumKilled.set(indexOfMobKilled, newNumberOfSpecificMobKilled); if ((newNumberOfSpecificMobKilled).equals(numberOfSpecificMobNeedsToBeKilledInCurrentStage)) { + System.out.println("11"); finishObjective(quest, "killMob", null, null, null, e, null, null, null, null, null, null); } } @@ -1048,6 +1053,7 @@ public class Quester { */ public void finishObjective(Quest quest, String objective, ItemStack material, ItemStack delivery, Enchantment enchantment, EntityType mob, String player, NPC npc, Location location, DyeColor color, String pass, CustomObjective co) { //TODO ItemStack material, is largely unnecessary as .name() can be obtained thru getQuestData(quest).blocksXXXX + System.out.println("13"); Player p = getPlayer(); if (getCurrentStage(quest).objectiveOverride != null) { if (testComplete(quest)) { @@ -1139,10 +1145,12 @@ public class Quester { quest.nextStage(this); } } else if (objective.equalsIgnoreCase("killMob")) { + System.out.println("14"); String message = ChatColor.GREEN + "(" + Lang.get("completed") + ") " + Lang.get("kill") + " " + mob.name(); message = message + " " + getCurrentStage(quest).mobNumToKill.get(getCurrentStage(quest).mobsToKill.indexOf(mob)) + "/" + getCurrentStage(quest).mobNumToKill.get(getCurrentStage(quest).mobsToKill.indexOf(mob)); p.sendMessage(message); if (testComplete(quest)) { + System.out.println("15"); quest.nextStage(this); } } else if (objective.equalsIgnoreCase("killPlayer")) { diff --git a/src/main/java/me/blackvein/quests/util/ItemUtil.java b/src/main/java/me/blackvein/quests/util/ItemUtil.java index 885f863f9..e1e6fe9df 100644 --- a/src/main/java/me/blackvein/quests/util/ItemUtil.java +++ b/src/main/java/me/blackvein/quests/util/ItemUtil.java @@ -182,8 +182,9 @@ public class ItemUtil { } else { try { text = ChatColor.AQUA + Items.itemByStack(is).getName(); - } catch (NullPointerException ne) { - Bukkit.getLogger().severe("This error is caused by an incompatible version of Vault. Please update!"); + } catch (Exception ne) { + text = ChatColor.AQUA + is.getType().name().toLowerCase().replace("_", " "); + Bukkit.getLogger().severe("This error is caused by an incompatible version of Vault. Please consider updating."); ne.printStackTrace(); } }