diff --git a/pom.xml b/pom.xml index 236d3688e..26030628a 100644 --- a/pom.xml +++ b/pom.xml @@ -24,11 +24,17 @@ org.bukkit - bukkit + craftbukkit 1.8-R0.1-SNAPSHOT system ${project.basedir}/lib/craftbukkit-1.8.jar + + org.bukkit + bukkit + 1.8-R0.1-SNAPSHOT + provided + org.bukkit craftbukkit1 diff --git a/src/main/java/me/blackvein/quests/PlayerListener.java b/src/main/java/me/blackvein/quests/PlayerListener.java index 6ff7d1fae..cdb25d35c 100644 --- a/src/main/java/me/blackvein/quests/PlayerListener.java +++ b/src/main/java/me/blackvein/quests/PlayerListener.java @@ -33,6 +33,7 @@ import org.bukkit.event.inventory.InventoryType; import org.bukkit.event.player.*; import org.bukkit.event.player.PlayerFishEvent.State; import org.bukkit.inventory.ItemStack; +import org.bukkit.projectiles.ProjectileSource; public class PlayerListener implements Listener, ColorUtil { @@ -566,19 +567,49 @@ public class PlayerListener implements Listener, ColorUtil { public void onEntityDeath(EntityDeathEvent evt) { if (evt.getEntity() instanceof Player == false) { - if (evt.getEntity().getLastDamageCause() instanceof EntityDamageByEntityEvent) { EntityDamageByEntityEvent damageEvent = (EntityDamageByEntityEvent) evt.getEntity().getLastDamageCause(); Entity damager = damageEvent.getDamager(); - if (damager != null) { if (damager instanceof Projectile) { + Projectile projectile = (Projectile)damager; + ProjectileSource source = projectile.getShooter(); - if(evt.getEntity().getLastDamageCause().getEntity() instanceof Player) { + if(source instanceof Player) { - Player player = (Player) evt.getEntity().getLastDamageCause().getEntity(); + Player player = (Player) source; + boolean okay = true; + + if (plugin.citizens != null) { + if (CitizensAPI.getNPCRegistry().isNPC(player)) { + okay = false; + } + } + + if (okay) { + + Quester quester = plugin.getQuester(player.getUniqueId()); + + for (Quest quest : quester.currentQuests.keySet()) { + + if (quester.hasObjective(quest, "killMob")) { + quester.killMob(quest, evt.getEntity().getLocation(), evt.getEntity().getType()); + } + + } + + } + } + + } else if (damager instanceof TNTPrimed) { + TNTPrimed tnt = (TNTPrimed)damager; + Entity source = tnt.getSource(); + + if(source instanceof Player) { + + Player player = (Player) source; boolean okay = true; if (plugin.citizens != null) { diff --git a/src/main/java/me/blackvein/quests/Quests.java b/src/main/java/me/blackvein/quests/Quests.java index 2935bd9fb..3c02d914c 100644 --- a/src/main/java/me/blackvein/quests/Quests.java +++ b/src/main/java/me/blackvein/quests/Quests.java @@ -4766,7 +4766,9 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener, UUID.fromString(s); return true; } catch (IllegalArgumentException e) { - e.printStackTrace(); + // Maybe only enable this when debugging? + // When it fails, it can generate gigabyte-sized log files. + // e.printStackTrace(); } }