aboutsummaryrefslogtreecommitdiffstats
path: root/bukkit/src/main/java/com
diff options
context:
space:
mode:
authorKrakenied <krakenied1@gmail.com>2025-07-20 19:00:39 +0200
committerKrakenied <46192742+Krakenied@users.noreply.github.com>2025-07-29 00:06:46 +0200
commitbaaa5dd8d45ee98153511d76f650902ab80bf2db (patch)
tree4be00a7fec0c4c81749e98cbf828cc7fa3d60812 /bukkit/src/main/java/com
parent697846fd319b7f5ee95c19d24211e294c1466bfe (diff)
Handle projectile damage in deal damage task type properly
Diffstat (limited to 'bukkit/src/main/java/com')
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DealDamageTaskType.java16
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;
}