Account for outdated Vault items, fixes #123. Bump version number

This commit is contained in:
HappyPikachu 2017-09-30 22:55:53 -04:00
parent 56d9b406a4
commit 14882fb3ed
4 changed files with 24 additions and 4 deletions

View File

@ -3,7 +3,7 @@
<groupId>me.blackvein.quests</groupId>
<artifactId>quests</artifactId>
<version>3.0.5</version>
<version>3.0.6</version>
<name>quests</name>
<url>https://github.com/FlyingPikachu/Quests/</url>
<packaging>jar</packaging>

View File

@ -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());
}
}

View File

@ -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")) {

View File

@ -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();
}
}