package com.leontg77.uhc.cmds;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import com.leontg77.uhc.Main;
import com.leontg77.uhc.Spectator;
import com.leontg77.uhc.utils.PlayerUtils;
/**
* Near command class.
*
* @author LeonTG77
*/
public class NearCommand implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.RED + "Only players can see nearby players.");
return true;
}
Spectator spec = Spectator.getInstance();
Player player = (Player) sender;
if (!sender.hasPermission("uhc.invsee") && !spec.isSpectating(player)) {
player.sendMessage(Main.NO_PERM_MSG);
return true;
}
StringBuilder nearList = new StringBuilder("");
for (Entity near : PlayerUtils.getNearby(player.getLocation(), 200)) {
if (near instanceof Player) {
Player nearby = (Player) near;
if (!player.canSee(nearby)) {
continue;
}
if (nearList.length() > 0) {
nearList.append("�8, ");
}
if (nearby != player) {
nearList.append("�a" + nearby.getName() + "�7(�c" + ((int) player.getLocation().distance(nearby.getLocation())) + "m�7)�a");
}
}
}
player.sendMessage(Main.PREFIX + "Nearby players:");
player.sendMessage("�8� �7" + (nearList.length() > 0 ? nearList.toString().trim() : "There are no players nearby."));
return true;
}
}