Помогите Velocity применяется по-разному в одном евенте

Абсик

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Abcik
Привет! Хочу установить кастомную, постоянную и одинаковую отдачу при ударах рукой и выстреле из лука.

Получилось так, что при ударе рукой игрока откидывает на одну дистанцию, а при попадании стрелы на другую, ~ 1.3 раза меньше. При этом код абсолютно одинаковый.

Код:
    @EventHandler
    public void onEntityDamageByEntity(EntityDamageByEntityEvent e) {
        if (e.getEntity().getType() == EntityType.PLAYER) {
            Player victim = (Player) e.getEntity();
            if (e.getDamager().getType() == EntityType.PLAYER) {
                e.setCancelled(true);
                Player attacker = (Player) e.getDamager();

                //Устанавливаю игроку велосити.
                //Случай 1 - отбрасывает на достаточное расстояние.
                victim.setVelocity(new Vector(0.5, 0.3, 0.5));
                return;
            }

            if (e.getCause() == EntityDamageEvent.DamageCause.PROJECTILE) {
                Projectile arrow = (Projectile) e.getDamager();
                if (arrow.getShooter() instanceof Player shooter) {
                    arrow.remove();
                    e.setCancelled(true);

                    //Устанавливаю игроку велосити.
                    //Случай 2 - отбрасывает на расстояние заметно меньше, чем в случае 1.
                    victim.setVelocity(new Vector(0.5, 0.3, 0.5));
                }
                return;
            }
        }
    }
 
Назад
Верх