From 00497269fe7c404f9792f51ef4ecf6b20517b09c Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 20 Dec 2025 18:54:58 -0500 Subject: Use LivingEntity#getKiller value in mobkilling task type Still fallback to last damage event damager if null. It doesn't really fix https://github.com/LMBishop/Quests/issues/752, however possibly allows for Fire Aspect tracking of entities ignited within last 5 seconds (similarly to different built-in game mechanics). --- .../quests/bukkit/tasktype/type/MobkillingTaskType.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'bukkit/src') diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingTaskType.java index ab53e5a2..e38cc01f 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingTaskType.java @@ -63,8 +63,15 @@ public final class MobkillingTaskType extends BukkitTaskType { @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onEntityDeath(EntityDeathEvent event) { LivingEntity entity = event.getEntity(); - EntityDamageEvent damageEvent = entity.getLastDamageCause(); - Player player = plugin.getVersionSpecificHandler().getDamager(damageEvent); + Player killer = entity.getKiller(); + Player player; + + if (killer != null) { + player = killer; + } else { + EntityDamageEvent damageEvent = entity.getLastDamageCause(); + player = plugin.getVersionSpecificHandler().getDamager(damageEvent); + } handle(player, entity, 1); } -- cgit v1.2.3-70-g09d2