- Баллы
- 36
- Имя в Minecraft
- freeos
Я пытаюсь сделать плагин, который при использовании некого предмета (PlayerInteractEvent), будет запускать голову скелета (черного такого - иссушителя). Впрочем, с запуском головы быстро справился:
Далее я отлавливаю EntityDamageByEntityEvent, чтобы "найти" (если возможно) игрока у которого голова попала. И вот тут у меня проблема суть которой заключается в том, что EntityDamageByEntityEvent не может "отловить" само попадание (по крайней мере у меня не выходит) головы в игрока:
Возможно я что то делаю не так, хотя на иностранных форумах, на которых я пытался найти решение, все было так как у меня.
Код:
e.getPlayer().launchProjectile(WitherSkull.class, e.getPlayer().getEyeLocation().getDirection().multiply(2));
shooters.add(e.getPlayer())
Код:
@EventHandler
public void EntityDamageByEntity(EntityDamageByEntityEvent e) {
if (e.getEntity() instanceof Player) {
if (e.getDamager() instanceof WitherSkull) {
WitherSkull ws = (WitherSkull) e.getDamager();
if (ws.getShooter() instanceof Player && shooters.contains(ws.getShooter())) {
((Player) e.getEntity()).setWalkSpeed(0.0F);
((Player) e.getEntity()).addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 10000, 128));
Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getInstance(),
new Runnable() {
@Override
public void run() {
((Player) e.getEntity()).setWalkSpeed(0.2F);
((Player) e.getEntity()).removePotionEffect(PotionEffectType.JUMP);
}
}, 40L);
shooters.remove(ws.getShooter());
}
}
}
. Оно просто "не хочет" "видеть"/"читать", вот это: