package xyz.etztech.qol.commands; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; 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; import java.util.Date; public class NameHistoryCommand implements CommandExecutor { QoL plugin; public NameHistoryCommand(QoL paramQoL) { this.plugin = paramQoL; } @Override public boolean onCommand(CommandSender commandSender, Command command, String s, String[] args) { if (!commandSender.hasPermission("qol.history")) { EtzTechUtil.sms(commandSender, Lang.NO_PERMISSION.getDef()); return true; } if (args.length < 1) { EtzTechUtil.sms(commandSender, ChatColor.RED + "Please specify a username."); return true; } String uuid = EtzTechUtil.getUUID(args[0]); if (uuid == null) { EtzTechUtil.sms(commandSender, ChatColor.RED + "Could not get results from Mojang API. Make sure the name is spelled correctly."); return true; } try { Date changedToAt; JsonObject obj; InputStream response = new URL(EtzTechUtil.MOJANG_API + EtzTechUtil.path(EtzTechUtil.NAME_HISTORY_API, "uuid", uuid)).openStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(response)); JsonArray jsonArray = new JsonParser().parse(reader.readLine()).getAsJsonArray(); StringBuilder message = new StringBuilder(ChatColor.GOLD + "===== Name History Utility ====="); for (JsonElement element : jsonArray) { obj = element.getAsJsonObject(); message.append("\n" + ChatColor.GREEN + obj.get("name").getAsString()); if (obj.get("changedToAt") != null) { changedToAt = new Date(obj.get("changedToAt").getAsLong()); message.append(" (" + EtzTechUtil.formatDate(changedToAt) + ")"); } else { message.append(" (original)"); } } EtzTechUtil.sms(commandSender, message.toString()); } catch (IOException e) { EtzTechUtil.sms(commandSender, ChatColor.RED + "Mojang API returned nothing."); } return true; } }