Code: event.getCause() == DamageCause.PROJECTILE (This includes snowballs, fire balls, potions, ect...) I would recommend you use Code: @EventHandler void hit(ProjectileHitEvent event){ if(event.getEntity().getType() == EntityType.ARROW){ } }
SirTyler DanielSturk I tried both ways and nothing happened: Code: public void playerShotByBow(ProjectileHitEvent event){ if(event.getEntity().getType() == EntityType.ARROW){ Player p = (Player)event.getEntity(); p.sendMessage("You were hit"); } }
Forseth11 use EntityDamageByEntityEvent, check if the event.getEntity() is a Player and check if the event.getDamager() is an Arrow.
Code: @EventHandler public void onHit(EntityDamageByEntityEvent e){ Entity e1 = e.getEntity(); Entity e2 = e.getEntity().damager(): if(instanceof Arrow){ Arrow arrow = (Arrow) e2; if(arrow.getShooter() instanceof Player){ Player shooter = (Player) arrow.getShooter()' } } }