package xyz.etztech.qol.commands; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import xyz.etztech.qol.QoL; import xyz.etztech.qol.EtzTechUtil; import xyz.etztech.qol.Lang; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; public class UUIDCommand implements CommandExecutor { QoL plugin; public UUIDCommand(QoL paramQoL) { this.plugin = paramQoL; } @Override public boolean onCommand(CommandSender commandSender, Command command, String s, String[] args) { if (!commandSender.hasPermission("qol.uuid")) { EtzTechUtil.sms(commandSender, Lang.NO_PERMISSION.getDef()); return true; } if (args.length < 1) { EtzTechUtil.sms(commandSender, ChatColor.RED + "Please specify a username."); return true; } StringBuilder message = buildMessage(args[0]); EtzTechUtil.sms(commandSender, message.toString()); return true; } private StringBuilder buildMessage(String username) { StringBuilder message = new StringBuilder(ChatColor.GOLD + "===== UUID Utility ====="); boolean local = false; String uuid = null; for (Player player : Bukkit.getOnlinePlayers()) { if (player.getName().toLowerCase().equals(username.toLowerCase())) { uuid = player.getUniqueId().toString(); message.append("\n" + ChatColor.GREEN + "Name: " + ChatColor.YELLOW + player.getName()); message.append("\n" + ChatColor.GREEN + "UUID: " + ChatColor.YELLOW + uuid); local = true; break; } } if (!local) { try { InputStream response = new URL(EtzTechUtil.MOJANG_API + EtzTechUtil.path(EtzTechUtil.UUID_API, "name", username)).openStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(response)); JsonObject jsonObject = new JsonParser().parse(reader.readLine()).getAsJsonObject(); uuid = jsonObject.get("id").getAsString(); message.append("\n" + ChatColor.GREEN + "Name: " + ChatColor.YELLOW + jsonObject.get("name").getAsString()); message.append("\n" + ChatColor.GREEN + "UUID: " + ChatColor.YELLOW + uuid); } catch (Exception e) { message = new StringBuilder(ChatColor.RED + "Mojang API returned nothing. Make sure the name is spelled correctly."); } } return message; } }