Проверка насколько игрок далеко от исполнителя команды.

Destroy

Разработчик
Пользователь
Сообщения
777
Решения
30
Веб-сайт
destroydevs.ru
Пробовал сделать так:
Java:
List<Player> playerList = new ArrayList<>(player.getWorld().getNearbyPlayers(player.getLocation(), 5));

        if(!playerList.contains(target)) {
            ChatUtils.sendMsg(player, "&cИгрок слишком далеко от Вас.");
            return true;
        }
Не работает.

Как ещё можно это сделать?
 
Решение
Попробовал сделать так:
Java:
if(player.getLocation().distanceSquared(target.getLocation()) < 5) {
ChatUtils.sendMsg(player, "&cИгрок слишком далеко от Вас.");
return true;
}
Но ещё не проверял.
Так и оставляй.
distanceSquared - расстояние по квадрату
distance - расстояние в виде сферы, высчитывается сложнее.
А что не работает? Ошибка или просто не видит игрока?
target - это String или Player? Если это String, то вам нужно искать в List этом игрока с таким именем. Сейчас точно метод не вспомню, но в .contains должен быть игрок.имя(target). Поправьте, если я не прав.
 
А что не работает? Ошибка или просто не видит игрока?
target - это String или Player? Если это String, то вам нужно искать в List этом игрока с таким именем. Сейчас точно метод не вспомню, но в .contains должен быть игрок.имя(target). Поправьте, если я не прав.
Java:
String arg = args[0];
        Player target = Bukkit.getServer().getPlayer(arg);
        if(target == null) {
            ChatUtils.sendMsg(player, "&cИгрок оффлайн.");
            return true;
        }

Попробовал сделать так:
Java:
if(player.getLocation().distanceSquared(target.getLocation()) < 5) {
            ChatUtils.sendMsg(player, "&cИгрок слишком далеко от Вас.");
            return true;
        }
Но ещё не проверял.
 
Попробовал сделать так:
Java:
if(player.getLocation().distanceSquared(target.getLocation()) < 5) {
ChatUtils.sendMsg(player, "&cИгрок слишком далеко от Вас.");
return true;
}
Но ещё не проверял.
Так и оставляй.
distanceSquared - расстояние по квадрату
distance - расстояние в виде сферы, высчитывается сложнее.
 
Java:
String arg = args[0];
        Player target = Bukkit.getServer().getPlayer(arg);
        if(target == null) {
            ChatUtils.sendMsg(player, "&cИгрок оффлайн.");
            return true;
        }

Попробовал сделать так:
Java:
if(player.getLocation().distanceSquared(target.getLocation()) < 5) {
            ChatUtils.sendMsg(player, "&cИгрок слишком далеко от Вас.");
            return true;
        }
Но ещё не проверял.
offtop Я изначально подумал, что у тебя в коде target - это вообще String)
Тогда вопросов нет.
 
Назад
Сверху Снизу