- Баллы
- 76
- Имя в Minecraft
- Abcik
Привет! Хочу установить кастомную, постоянную и одинаковую отдачу при ударах рукой и выстреле из лука.
Получилось так, что при ударе рукой игрока откидывает на одну дистанцию, а при попадании стрелы на другую, ~ 1.3 раза меньше. При этом код абсолютно одинаковый.
Получилось так, что при ударе рукой игрока откидывает на одну дистанцию, а при попадании стрелы на другую, ~ 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;
}
}
}