Помогите Как отследить куда прилетит стрела

  • Автор темы Автор темы KoMsaA
  • Дата начала Дата начала

KoMsaA

Ньюби
Пользователь
Баллы
1
Я делаю тир и мне надо, чтоб когда стрела прилетает в определенный блок что-нибудь происходило бы, вообщем-то надо отследить куда прилетит стрела
 
А как получить того кто стрелял?
aecd45f229b74ab3618c2d044694ee69.png
 
BlockIterator, вы че совсем что - ли?

Код:
    @EventHandler
    public void onLand(ProjectileHitEvent e) {
        if (e.getProjectile() instanceof Arrow) {
            Arrow arrow = (Arrow) e.getProjectile();
            Location landLocation = arrow.getLocation();
            Entity shooter = arrow.getShooter();
        }
    }
 
BlockIterator, вы че совсем что - ли?

Код:
    @EventHandler
    public void onLand(ProjectileHitEvent e) {
        if (e.getProjectile() instanceof Arrow) {
            Arrow arrow = (Arrow) e.getProjectile();
            Location landLocation = arrow.getLocation();
            Entity shooter = arrow.getShooter();
        }
    }
И где тут что не понятно ничего
 
BlockIterator, вы че совсем что - ли?

Код:
    @EventHandler
    public void onLand(ProjectileHitEvent e) {
        if (e.getProjectile() instanceof Arrow) {
            Arrow arrow = (Arrow) e.getProjectile();
            Location landLocation = arrow.getLocation();
            Entity shooter = arrow.getShooter();
        }
    }
это может просто вернуть воздух, ибо стрела не находится внутри блока

через BlockIterator нужно прогнать блоки в направлении стрелы
 
это может просто вернуть воздух, ибо стрела не находится внутри блока
Ой ладно, вот костыль с BlockIterator твой.
Код:
    BlockIterator it = new BlockIterator(event.getEntity().getWorld(), event.getEntity().getLocation().toVector(), event.getEntity().getVelocity().normalize(), 0.0D, 4);
    Block landBlock = null;
    while (it.hasNext()) {
        if ((landBlock = iterator.next()).getType() != Material.AIR)
             return landBlock;
    }
 
А ты тут не выпендривайся раз не знаешь ничего и говно код пишешь
Если ты не можешь понять элементарный код, это не означает, что он говно.
Это форум. Помогли - скажи спасибо. Если не можешь понять - или читай JavaDoc и/или (под)учи Джаву.
 
Капец вы лохи. Вот юзайте.
Код:
    @EventHandler
    public void on(ProjectileHitEvent e) {
        if(e.getEntityType() == EntityType.ARROW) {
            //TODO
            if(e.getHitBlock() == null) return;
            Bukkit.broadcastMessage(e.getHitBlock().toString());
        }
    }
 
Назад
Верх