package me.Danker.commands; import com.google.gson.JsonObject; import me.Danker.handlers.APIHandler; import me.Danker.handlers.ConfigHandler; 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.ChatComponentText; import net.minecraft.util.EnumChatFormatting; public class ImportFishingCommand extends CommandBase { @Override public String getCommandName() { return "importfishing"; } @Override public String getCommandUsage(ICommandSender arg0) { return getCommandName(); } @Override public int getRequiredPermissionLevel() { return 0; } @Override public void processCommand(ICommandSender arg0, String[] arg1) throws CommandException { // MULTI THREAD DRIFTING new Thread(() -> { APIHandler ah = new APIHandler(); LootCommand lc = new LootCommand(); 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.")); } player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Importing your fishing stats...")); // Get UUID for Hypixel API requests String username = player.getName(); String uuid = player.getUniqueID().toString().replaceAll("[\\-]", ""); 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 fishing stats..."); JsonObject statsObject = profileResponse.get("profile").getAsJsonObject().get("members").getAsJsonObject().get(uuid).getAsJsonObject().get("stats").getAsJsonObject(); lc.greatCatches = 0; lc.goodCatches = 0; if (statsObject.has("items_fished_treasure")) { if (statsObject.has("items_fished_large_treasure")) { lc.greatCatches = statsObject.get("items_fished_large_treasure").getAsInt(); lc.goodCatches = statsObject.get("items_fished_treasure").getAsInt() - lc.greatCatches; } else { lc.goodCatches = statsObject.get("items_fished_treasure").getAsInt(); } } lc.seaCreatures = 0; lc.squids = 0; if (statsObject.has("kills_pond_squid")) { lc.squids = statsObject.get("kills_pond_squid").getAsInt(); } lc.seaCreatures += lc.squids; lc.seaWalkers = 0; if (statsObject.has("kills_sea_walker")) { lc.seaWalkers = statsObject.get("kills_sea_walker").getAsInt(); } lc.seaCreatures += lc.seaWalkers; lc.nightSquids = 0; if (statsObject.has("kills_night_squid")) { lc.nightSquids = statsObject.get("kills_night_squid").getAsInt(); } lc.seaCreatures += lc.nightSquids; lc.seaGuardians = 0; if (statsObject.has("kills_sea_guardian")) { lc.seaGuardians = statsObject.get("kills_sea_guardian").getAsInt(); } lc.seaCreatures += lc.seaGuardians; lc.seaWitches = 0; if (statsObject.has("kills_sea_witch")) { lc.seaWitches = statsObject.get("kills_sea_witch").getAsInt(); } lc.seaCreatures += lc.seaWitches; lc.seaArchers = 0; if (statsObject.has("kills_sea_archer")) { lc.seaArchers = statsObject.get("kills_sea_archer").getAsInt(); } lc.seaCreatures += lc.seaArchers; lc.monsterOfTheDeeps = 0; if (statsObject.has("kills_zombie_deep")) { if (statsObject.has("kills_chicken_deep")) { lc.monsterOfTheDeeps = statsObject.get("kills_zombie_deep").getAsInt() + statsObject.get("kills_chicken_deep").getAsInt(); } else { lc.monsterOfTheDeeps = statsObject.get("kills_zombie_deep").getAsInt(); } } else if (statsObject.has("kills_chicken_deep")) { lc.monsterOfTheDeeps = statsObject.get("kills_chicken_deep").getAsInt(); } lc.seaCreatures += lc.monsterOfTheDeeps; lc.catfishes = 0; if (statsObject.has("kills_catfish")) { lc.catfishes = statsObject.get("kills_catfish").getAsInt(); } lc.seaCreatures += lc.catfishes; lc.carrotKings = 0; if (statsObject.has("kills_carrot_king")) { lc.carrotKings = statsObject.get("kills_carrot_king").getAsInt(); } lc.seaCreatures += lc.carrotKings; lc.seaLeeches = 0; if (statsObject.has("kills_sea_leech")) { lc.seaLeeches = statsObject.get("kills_sea_leech").getAsInt(); } lc.seaCreatures += lc.seaLeeches; lc.guardianDefenders = 0; if (statsObject.has("kills_guardian_defender")) { lc.guardianDefenders = statsObject.get("kills_guardian_defender").getAsInt(); } lc.seaCreatures += lc.guardianDefenders; lc.deepSeaProtectors = 0; if (statsObject.has("kills_deep_sea_protector")) { lc.deepSeaProtectors = statsObject.get("kills_deep_sea_protector").getAsInt(); } lc.seaCreatures += lc.deepSeaProtectors; lc.hydras = 0; if (statsObject.has("kills_water_hydra")) { // Hydra splits lc.hydras = statsObject.get("kills_water_hydra").getAsInt() / 2; } lc.seaCreatures += lc.hydras; lc.seaEmperors = 0; if (statsObject.has("kills_skeleton_emperor")) { if (statsObject.has("kills_guardian_emperor")) { lc.seaEmperors = statsObject.get("kills_skeleton_emperor").getAsInt() + statsObject.get("kills_guardian_emperor").getAsInt(); } else { lc.seaEmperors = statsObject.get("kills_skeleton_emperor").getAsInt(); } } else if (statsObject.has("kills_guardian_emperor")) { lc.seaEmperors = statsObject.get("kills_guardian_emperor").getAsInt(); } lc.seaCreatures += lc.seaEmperors; lc.fishingMilestone = 0; if (statsObject.has("pet_milestone_sea_creatures_killed")) { lc.fishingMilestone = statsObject.get("pet_milestone_sea_creatures_killed").getAsInt(); } lc.frozenSteves = 0; if (statsObject.has("kills_frozen_steve")) { lc.frozenSteves = statsObject.get("kills_frozen_steve").getAsInt(); } lc.seaCreatures += lc.frozenSteves; lc.frostyTheSnowmans = 0; if (statsObject.has("kills_frosty_the_snowman")) { lc.frostyTheSnowmans = statsObject.get("kills_frosty_the_snowman").getAsInt(); } lc.seaCreatures += lc.frostyTheSnowmans; lc.grinches = 0; if (statsObject.has("kills_grinch")) { lc.grinches = statsObject.get("kills_grinch").getAsInt(); } lc.seaCreatures += lc.grinches; lc.yetis = 0; if (statsObject.has("kills_yeti")) { lc.yetis = statsObject.get("kills_yeti").getAsInt(); } lc.seaCreatures += lc.yetis; System.out.println("Writing to config..."); cf.writeIntConfig("fishing", "goodCatch", lc.goodCatches); cf.writeIntConfig("fishing", "greatCatch", lc.greatCatches); cf.writeIntConfig("fishing", "seaCreature", lc.seaCreatures); cf.writeIntConfig("fishing", "squid", lc.squids); cf.writeIntConfig("fishing", "seaWalker", lc.seaWalkers); cf.writeIntConfig("fishing", "nightSquid", lc.nightSquids); cf.writeIntConfig("fishing", "seaGuardian", lc.seaGuardians); cf.writeIntConfig("fishing", "seaWitch", lc.seaWitches); cf.writeIntConfig("fishing", "seaArcher", lc.seaArchers); cf.writeIntConfig("fishing", "monsterOfDeep", lc.monsterOfTheDeeps); cf.writeIntConfig("fishing", "catfish", lc.catfishes); cf.writeIntConfig("fishing", "carrotKing", lc.carrotKings); cf.writeIntConfig("fishing", "seaLeech", lc.seaLeeches); cf.writeIntConfig("fishing", "guardianDefender", lc.guardianDefenders); cf.writeIntConfig("fishing", "deepSeaProtector", lc.deepSeaProtectors); cf.writeIntConfig("fishing", "hydra", lc.hydras); cf.writeIntConfig("fishing", "seaEmperor", lc.seaEmperors); cf.writeIntConfig("fishing", "milestone", lc.fishingMilestone); cf.writeIntConfig("fishing", "frozenSteve", lc.frozenSteves); cf.writeIntConfig("fishing", "snowman", lc.frostyTheSnowmans); cf.writeIntConfig("fishing", "grinch", lc.grinches); cf.writeIntConfig("fishing", "yeti", lc.yetis); player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Fishing stats imported.")); }).start(); } }