Помогите Отбросить игрока от блока

SpokeKamchatka

Активный участник
Пользователь
Баллы
66
В общем, нужна функция, которая отбросит игрока от блока в некотором направлении с некоторой силой (так же, если бы рядом с игроком взорвался динамит)

Спасибо : )
 
Location loc = setDirection(block.getLocation().add(0.5,0.5,0.5), player.getLocation());
player.setVelocity(loc.getDirection());

Код:
    public static Location setDirection(Location loc, Location lookat) {
        loc = loc.clone();
        double dx = lookat.getX() - loc.getX();
        double dy = lookat.getY() - loc.getY();
        double dz = lookat.getZ() - loc.getZ();
        if (dx != 0) {
            if (dx < 0) {
                loc.setYaw((float) (1.5 * Math.PI));
            } else {
                loc.setYaw((float) (0.5 * Math.PI));
            }
            loc.setYaw((float) loc.getYaw() - (float) Math.atan(dz / dx));
        } else if (dz < 0) {
            loc.setYaw((float) Math.PI);
        }
        double dxz = Math.sqrt(Math.pow(dx, 2) + Math.pow(dz, 2));
        loc.setPitch((float) -Math.atan(dy / dxz));
        loc.setYaw(-loc.getYaw() * 180f / (float) Math.PI);
        loc.setPitch(loc.getPitch() * 180f / (float) Math.PI);
        return loc;
    }
 
Назад
Верх