diff options
Diffstat (limited to 'me/Danker/commands/PetsCommand.java')
-rw-r--r-- | me/Danker/commands/PetsCommand.java | 247 |
1 files changed, 0 insertions, 247 deletions
diff --git a/me/Danker/commands/PetsCommand.java b/me/Danker/commands/PetsCommand.java deleted file mode 100644 index 75367ab..0000000 --- a/me/Danker/commands/PetsCommand.java +++ /dev/null @@ -1,247 +0,0 @@ -package me.Danker.commands; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; - -import me.Danker.handlers.APIHandler; -import me.Danker.handlers.ConfigHandler; -import me.Danker.utils.Utils; -import net.minecraft.command.CommandBase; -import net.minecraft.command.CommandException; -import net.minecraft.command.ICommandSender; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.BlockPos; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.EnumChatFormatting; - -public class PetsCommand extends CommandBase { - - static int petXpToLevel(double xp, String rarity) { - int[] xpPerLevel = {100, 110, 120, 130, 145, 160, 175, 190, 210, 230, 250, 275, 300, 330, 360, 400, 440, 490, 540, 600, 660, 730, - 800, 880, 860, 1050, 1150, 1260, 1380, 1510, 1650, 1800, 1960, 2130, 2310, 2500, 2700, 2920, 3160, 3420, 3700, - 4000, 4350, 4750, 5200, 5700, 6300, 7000, 7800, 8700, 9700, 10800, 12000, 13300, 14700, 16200, 17800, 19500, - 21300, 23200, 25200, 27400, 29800, 32400, 35200, 38200, 41400, 44800, 48400, 52200, 56200, 60400, 64800, 69400, - 74200, 79200, 84700, 90700, 97200, 104200, 111700, 119700, 128200, 137200, 146700, 156700, 167700, 179700, 192700, - 206700, 221700, 237700, 254700, 272700, 291700, 311700, 333700, 357700, 383700, 411700, 441700, 476700, 516700, - 561700, 611700, 666700, 726700, 791700, 861700, 936700, 1016700, 1101700, 1191700, 1286700, 1386700, 1496700, - 1616700, 1746700, 1886700}; - - int levelOffset = 0; - if (rarity.equals("UNCOMMON")) { - levelOffset = 6; - } else if (rarity.equals("RARE")) { - levelOffset = 11; - } else if (rarity.equals("EPIC")) { - levelOffset = 16; - } else if (rarity.equals("LEGENDARY")) { - levelOffset = 20; - } - - for (int i = levelOffset, xpAdded = 0; i < levelOffset + 99; i++) { - xpAdded += xpPerLevel[i]; - if (xp < xpAdded) { - return i + 1 - levelOffset; - } - } - return 100; - } - - static String capitalize(String string) { - String capitalized = string.substring(0, 1).toUpperCase() + string.substring(1).toLowerCase(); - return capitalized; - } - - @Override - public String getCommandName() { - return "petsof"; - } - - @Override - public String getCommandUsage(ICommandSender arg0) { - return getCommandName() + " [name]"; - } - - @Override - public int getRequiredPermissionLevel() { - return 0; - } - - @Override - public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) { - if (args.length == 1) { - return Utils.getMatchingPlayers(args[0]); - } - return null; - } - - @Override - public void processCommand(ICommandSender arg0, String[] arg1) throws CommandException { - // MULTI THREAD DRIFTING - new Thread(() -> { - APIHandler ah = new APIHandler(); - ConfigHandler cf = new ConfigHandler(); - EntityPlayer player = (EntityPlayer) arg0; - - // Check key - String key = cf.getString("api", "APIKey"); - if (key.equals("")) { - player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "API key not set. Use /setkey.")); - } - - // Get UUID for Hypixel API requests - String username; - String uuid; - if (arg1.length == 0) { - username = player.getName(); - uuid = player.getUniqueID().toString().replaceAll("[\\-]", ""); - player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Checking pets of " + EnumChatFormatting.DARK_GREEN + username)); - } else { - username = arg1[0]; - player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Checking pets of " + EnumChatFormatting.DARK_GREEN + username)); - uuid = ah.getUUID(username); - } - - // Find stats of latest profile - String latestProfile = ah.getLatestProfileID(uuid, key); - if (latestProfile == null) return; - - String profileURL = "https://api.hypixel.net/skyblock/profile?profile=" + latestProfile + "&key=" + key; - System.out.println("Fetching profile..."); - JsonObject profileResponse = ah.getResponse(profileURL); - if (!profileResponse.get("success").getAsBoolean()) { - String reason = profileResponse.get("cause").getAsString(); - player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Failed with reason: " + reason)); - return; - } - - System.out.println("Fetching pets..."); - JsonArray petsArray = profileResponse.get("profile").getAsJsonObject().get("members").getAsJsonObject().get(uuid).getAsJsonObject().get("pets").getAsJsonArray(); - if (petsArray.size() == 0) { - player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + username + " has no pets.")); - return; - } - - System.out.println("Looping through pets..."); - // Push each pet into list - List<JsonElement> sortedPets = new ArrayList<JsonElement>(); - for (JsonElement petElement : petsArray) { - sortedPets.add(petElement); - } - - // Sort pets by exp - Collections.sort(sortedPets, (pet1, pet2) -> { - double petXp1 = pet1.getAsJsonObject().get("exp").getAsDouble(); - double petXp2 = pet2.getAsJsonObject().get("exp").getAsDouble(); - return -Double.compare(petXp1, petXp2); - }); - - // Sort pets into rarities - List<JsonObject> commonPets = new ArrayList<JsonObject>(); - List<JsonObject> uncommonPets = new ArrayList<JsonObject>(); - List<JsonObject> rarePets = new ArrayList<JsonObject>(); - List<JsonObject> epicPets = new ArrayList<JsonObject>(); - List<JsonObject> legendaryPets = new ArrayList<JsonObject>(); - - for (JsonElement petElement : sortedPets) { - JsonObject pet = petElement.getAsJsonObject(); - String rarity = pet.get("tier").getAsString(); - - if (rarity.equals("COMMON")) { - commonPets.add(pet); - } else if (rarity.equals("UNCOMMON")) { - uncommonPets.add(pet); - } else if (rarity.equals("RARE")) { - rarePets.add(pet); - } else if (rarity.equals("EPIC")) { - epicPets.add(pet); - } else if (rarity.equals("LEGENDARY")) { - legendaryPets.add(pet); - } - } - - String finalMessage = EnumChatFormatting.AQUA + "" + EnumChatFormatting.BOLD + "-------------------\n" + - EnumChatFormatting.AQUA + " " + username + "'s Pets:\n"; - - // Loop through pet rarities - for (JsonObject legPet : legendaryPets) { - String petName = capitalize(legPet.get("type").getAsString()); - int level = petXpToLevel(legPet.get("exp").getAsDouble(), "LEGENDARY"); - - String messageToAdd = ""; - if (legPet.get("active").getAsBoolean()) { - messageToAdd = EnumChatFormatting.GOLD + " " + EnumChatFormatting.BOLD + ">>> Legendary " + petName + " (" + level + ") <<<"; - } else { - messageToAdd = EnumChatFormatting.GOLD + " Legendary " + petName + " (" + level + ")"; - } - - finalMessage += messageToAdd + "\n"; - } - - for (JsonObject epicPet: epicPets) { - String petName = capitalize(epicPet.get("type").getAsString()); - int level = petXpToLevel(epicPet.get("exp").getAsDouble(), "EPIC"); - - String messageToAdd = ""; - if (epicPet.get("active").getAsBoolean()) { - messageToAdd = EnumChatFormatting.DARK_PURPLE + " " + EnumChatFormatting.BOLD + ">>> Epic " + petName + " (" + level + ") <<<"; - } else { - messageToAdd = EnumChatFormatting.DARK_PURPLE + " Epic " + petName + " (" + level + ")"; - } - - finalMessage += messageToAdd + "\n"; - } - - for (JsonObject rarePet: rarePets) { - String petName = capitalize(rarePet.get("type").getAsString()); - int level = petXpToLevel(rarePet.get("exp").getAsDouble(), "RARE"); - - String messageToAdd = ""; - if (rarePet.get("active").getAsBoolean()) { - messageToAdd = EnumChatFormatting.BLUE + " " + EnumChatFormatting.BOLD + ">>> Rare " + petName + " (" + level + ") <<<"; - } else { - messageToAdd = EnumChatFormatting.BLUE + " Rare " + petName + " (" + level + ")"; - } - - finalMessage += messageToAdd + "\n"; - } - - for (JsonObject uncommonPet: uncommonPets) { - String petName = capitalize(uncommonPet.get("type").getAsString()); - int level = petXpToLevel(uncommonPet.get("exp").getAsDouble(), "UNCOMMON"); - - String messageToAdd = ""; - if (uncommonPet.get("active").getAsBoolean()) { - messageToAdd = EnumChatFormatting.GREEN + " " + EnumChatFormatting.BOLD + ">>> Uncommon " + petName + " (" + level + ") <<<"; - } else { - messageToAdd = EnumChatFormatting.GREEN + " Uncommon " + petName + " (" + level + ")"; - } - - finalMessage += messageToAdd + "\n"; - } - - for (JsonObject commonPet: commonPets) { - String petName = capitalize(commonPet.get("type").getAsString()); - int level = petXpToLevel(commonPet.get("exp").getAsDouble(), "COMMON"); - - String messageToAdd = ""; - if (commonPet.get("active").getAsBoolean()) { - messageToAdd = EnumChatFormatting.BOLD + ">>> Common " + petName + " (" + level + ") <<<"; - } else { - messageToAdd = " Common " + petName + " (" + level + ")"; - } - - finalMessage += messageToAdd + "\n"; - } - - finalMessage += EnumChatFormatting.AQUA + " " + EnumChatFormatting.BOLD + "-------------------"; - player.addChatMessage(new ChatComponentText(finalMessage)); - - }).start(); - } - -} |