Помогите Получить игроков в радиусе

Ну потому что нужно головой подумать. А вообще, учи блэт джаву.

Код:
List<String> playersList = new ArrayList<>();
final Location location = player.getLocation();
final int radius = 200;
      
for(Entity entity : location.getWorld().getNearbyEntities(location, radius, radius, radius)) {
    if(entity.getType() == EntityType.PLAYER) playersList.add(entity.getName());
}
Зачем нам создавать лист и засорять оперативку
Код:
//Допустим есть слушатель событий реагирующий на компас
@EventHandler
public void near player(PlayerInteractEvent e) {
  if(e.getPlayer().getInventory().getItemInMainHand().getType() == Material.COMPASS) {
  String Nick = "";
    double dis = 100000;
      for (Player p : Bukkit.getOnlinePlayers());
     double temp = p.getLocation().distance(e.getPlayer().getLocation());
          if (dis > temp && e.getPlayer().getName() != p.getName()){
            dis = temp;
            nick = p.getName();
//тут можно написать e.getPlayer().sendMessages() переменные dis, nick
}
}
 
Нужно при вводе команды получить в массив всех игроков в округе
Как то так.
Код:
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (sender instanceof Player) {
            Player player = (Player) sender;
            List<Player> players = new ArrayList<Player>();
            players.forEach(other -> {
                if (!player.equals(player)) {
                    if (player.getLocation().distance(other.getLocation()) < 100) {
                        players.add(other);
                    }
                }

            });
            return true;
        }
        return false;
    }
 
У меня робит ошибки потому что я с телефона писал @nutrolshok
 
Назад
Верх