76 lines
2.6 KiB
Java
76 lines
2.6 KiB
Java
|
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;
|
||
|
}
|
||
|
}
|