Чтобы реализовать команду
/near
, которая показывает игроков на всей карте, вам нужно будет изменить логику вашего плагина. Вот пример, как это можно сделать на Java с использованием Bukkit API.
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.ArrayList;
import java.util.List;
public class NearPlugin extends JavaPlugin {
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("near")) {
if (sender instanceof Player) {
Player player = (Player) sender;
double range = Double.MAX_VALUE; // Максимальное значение для поиска
if (args.length > 0) {
try {
range = Double.parseDouble(args[0]);
} catch (NumberFormatException e) {
player.sendMessage("Введите корректное число.");
return true;
}
}
List<Player> nearbyPlayers = new ArrayList<>();
for (Player p : Bukkit.getOnlinePlayers()) {
if (p != player && player.getLocation().distance(p.getLocation()) <= range) {
nearbyPlayers.add(p);
}
}
if (nearbyPlayers.isEmpty()) {
player.sendMessage("Игроки не найдены в радиусе " + range);
} else {
player.sendMessage("Игроки в радиусе " + range + ":");
for (Player p : nearbyPlayers) {
player.sendMessage(p.getName());
}
}
} else {
sender.sendMessage("Эта команда доступна только игрокам.");
}
return true;
}
return false;
}
}
Этот код позволяет игрокам использовать команду
/near
с аргументом, который определяет радиус поиска. Если аргумент не указан, используется максимальное значение для поиска всех игроков на карте.
Не забудьте добавить нужные права для команды в вашем файле настроек прав, если это необходимо.