package com.techcavern.wavetact.ircCommands.minecraft; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.techcavern.wavetact.annot.IRCCMD; import com.techcavern.wavetact.objects.IRCCommand; import com.techcavern.wavetact.utils.GeneralUtils; import com.techcavern.wavetact.utils.IRCUtils; import org.apache.commons.lang3.StringUtils; import org.apache.http.client.fluent.Request; import org.apache.http.entity.ContentType; import org.pircbotx.Channel; import org.pircbotx.PircBotX; import org.pircbotx.User; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; @IRCCMD public class MCAccountInfo extends IRCCommand { public MCAccountInfo() { super(GeneralUtils.toArray("mcaccountinfo mca mcuserinfo mcwhois mcplayer mcpremium mcuuid mcmigrated mchistory"), 1, "mcaccountinfo [user]", "Gets info on a minecraft account", false); } @Override public void onCommand(String command, User user, PircBotX network, String prefix, Channel channel, boolean isPrivate, int userPermLevel, String... args) throws Exception { String result = Request.Post("https://api.mojang.com/profiles/minecraft") .bodyString("[\"" + args[0] + "\",\"egewewhewhwe\"]", ContentType.APPLICATION_JSON) .execute() .returnContent().toString(); JsonArray mcapipre = new JsonParser().parse(result).getAsJsonArray(); if (mcapipre.size() > 0) { JsonObject mcapi = mcapipre.get(0).getAsJsonObject(); String User = mcapi.get("name").getAsString(); String UUID = mcapi.get("id").getAsString(); String Premium = "True"; if (mcapi.get("demo") != null && mcapi.get("legacy").getAsString().equalsIgnoreCase("True")) { Premium = "False"; } String Migrated = "True"; if (mcapi.get("legacy") != null && mcapi.get("legacy").getAsString().equalsIgnoreCase("True")) { Migrated = "False"; } JsonArray mcapiuuid = GeneralUtils.getJsonArray("https://api.mojang.com/user/profiles/" + UUID +"/names"); List<String> history = new ArrayList<>(); for(int i = 0; i < mcapiuuid.size(); i++){ JsonObject name = mcapiuuid.get(i).getAsJsonObject(); String temp = name.get("name").getAsString(); try { name = mcapiuuid.get(i + 1).getAsJsonObject(); temp += " (Up to " + GeneralUtils.getDateFromMilliSeconds(name.get("changedToAt").getAsLong()) + ")"; }catch(Exception e){} history.add(temp); } if(history.size() > 1){ IRCUtils.sendMessage(user, network, channel, "[" + IRCUtils.noPing(User) + "] " + "UUID: " + UUID + " - " + "Paid: " + Premium + " - " + "Mojang Account: " + Migrated + " - " + "History: " + StringUtils.join(history, ", "), prefix); }else{ IRCUtils.sendMessage(user, network, channel, "[" + IRCUtils.noPing(User) + "] " + "UUID: " + UUID + " - " + "Paid: " + Premium + " - " + "Mojang Account: " + Migrated + " - " + " History: None", prefix); } } else { IRCUtils.sendError(user, network, channel, "User does not exist", prefix); } } }