diff options
| author | Krakenied <krakenied1@gmail.com> | 2025-07-20 19:00:39 +0200 |
|---|---|---|
| committer | Krakenied <46192742+Krakenied@users.noreply.github.com> | 2025-07-29 00:06:46 +0200 |
| commit | baaa5dd8d45ee98153511d76f650902ab80bf2db (patch) | |
| tree | 4be00a7fec0c4c81749e98cbf828cc7fa3d60812 | |
| parent | 697846fd319b7f5ee95c19d24211e294c1466bfe (diff) | |
Handle projectile damage in deal damage task type properly
| -rw-r--r-- | bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DealDamageTaskType.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DealDamageTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DealDamageTaskType.java index 06db1410..2f4bb902 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DealDamageTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DealDamageTaskType.java @@ -12,9 +12,11 @@ import org.bukkit.entity.Creature; import org.bukkit.entity.Damageable; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; +import org.bukkit.entity.Projectile; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.projectiles.ProjectileSource; public final class DealDamageTaskType extends BukkitTaskType { @@ -33,7 +35,19 @@ public final class DealDamageTaskType extends BukkitTaskType { @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onEntityDamageByEntity(EntityDamageByEntityEvent event) { Entity damager = event.getDamager(); - if (!(damager instanceof Player player)) { + Player player; + + if (damager instanceof Player) { + player = (Player) damager; + } else if (damager instanceof Projectile projectile) { + ProjectileSource source = projectile.getShooter(); + + if (source instanceof Player) { + player = (Player) source; + } else { + return; + } + } else { return; } |
