Помогите Как получить игрока в ProjectileHitEvent?

Earl Morze

Новичок
Пользователь
Баллы
16
Доброго всем вечера. Как получить игрока который кинул Projectile?
 
event.getEntity().getShooter() вроде
А зачем если не секрет?
P.S.Просто интересно
 
event.getEntity().getShooter() вроде
А зачем если не секрет?
P.S.Просто интересно
С целью приобретения опыта. Стало интересно попробовать взаимодействовать с Projectile.
А так, event.getEntity().getShooter() возвращает ProjectileSource.
 
С целью приобретения опыта. Стало интересно попробовать взаимодействовать с Projectile.
А так, event.getEntity().getShooter() возвращает ProjectileSource.
Код:
    @EventHandler
    public void projectileHitEvent(ProjectileHitEvent event) {
        ProjectileSource source = event.getEntity().getShooter();
        if (source instanceof Player) {
            Player player = (Player) source;
            System.out.println("ИТО БЫЛ ПЛАУЕР");
            return;
        }
        if (source instanceof Entity) {
            Entity entity = (Entity) source;
            System.out.println("ЭТО БЫЛ ИНТИТИ");
            return;
        }
        System.out.println("ЭТО БЫЛА КАКАЯ-ТА НЕВЬЕБИЧСКИ СТРАННАЯ ХЕРОТЕНЬ!! (Скорее всего - раздатчик)");
    }
 
Java:
public void onHit(ProjectileHitEvent event) 
{
    if (event.getEntity().getShooter() instanceof Player) 
    {
        Player player = (Player) event.getEntity().getShooter();
    }
}
Но запомни, instanceof - плохо.
 
Java:
public void onHit(ProjectileHitEvent event)
{
    if (event.getEntity().getShooter() instanceof Player)
    {
        Player player = (Player) event.getEntity().getShooter();
    }
}
Но запомни, instanceof - плохо.
По этому нужно использовать getType().
Java:
if(event.getEntity().getShooter().getType()==EntityType.PLAYER)
 
нельзя так. т.к шутер может быть раздатчик. А он не ентити
А это уже зависит от версии. К сожалению никак не привыкну ко всем нововведениям и живу в NMS.
Сколько раз слышал про instanceof, но не было ни одного пруфа с тастами скорости.
Не в скорости дело, а в не ООП подходе. По крайней мере в 1.8 на скорость влияет уже архитектура программы. Немного погуглив и найдя несколько тестов по скорости, оказывается скорость кастомного getType может быть ниже выполнения instanceof в разы и наоборот. Тут нужно проводить конкретный замер по ведру, чтобы придти к конкретным выводам.
 
Назад
Верх