77import org .bukkit .attribute .Attribute ;
88import org .bukkit .entity .LivingEntity ;
99import org .bukkit .entity .Player ;
10+ import org .bukkit .entity .Projectile ;
1011import org .bukkit .event .EventHandler ;
1112import org .bukkit .event .EventPriority ;
1213import org .bukkit .event .Listener ;
@@ -18,16 +19,19 @@ public class HealthBar implements Listener {
1819
1920 @ EventHandler (priority = EventPriority .HIGHEST , ignoreCancelled = true )
2021 public void onCombat (EntityDamageByEntityEvent e ) {
21- if (!(e .getDamager () instanceof Player )) return ;
22-
23- if (worldUtils .healthBarDisabledWorlds ((Player ) e .getDamager ())) return ;
24-
2522 if (!(e .getEntity () instanceof LivingEntity )) return ;
26-
27- Player p = (Player ) e .getDamager ();
28- LivingEntity entity = (LivingEntity ) e .getEntity ();
29-
30- p .spigot ().sendMessage (ChatMessageType .ACTION_BAR , TextComponent .fromLegacyText (Messenger .format (getHealth (entity ))));
23+ final LivingEntity entity = (LivingEntity ) e .getEntity ();
24+
25+ if (e .getDamager () instanceof Player ) {
26+ final Player p = (Player ) e .getDamager ();
27+ if (worldUtils .healthBarDisabledWorlds (p )) return ;
28+ p .spigot ().sendMessage (ChatMessageType .ACTION_BAR , TextComponent .fromLegacyText (Messenger .format (getHealth (entity ))));
29+ } else if (e .getDamager () instanceof Projectile ) {
30+ if (!(((Projectile ) e .getDamager ()).getShooter () instanceof Player )) return ;
31+ final Player shooter = (Player ) ((Projectile ) e .getDamager ()).getShooter ();
32+ if (worldUtils .healthBarDisabledWorlds (shooter )) return ;
33+ shooter .spigot ().sendMessage (ChatMessageType .ACTION_BAR , TextComponent .fromLegacyText (Messenger .format (getHealth (entity ))));
34+ }
3135 }
3236
3337 private String getHealth (LivingEntity entity ) {
0 commit comments