diff options
| author | jani270 <69345714+jani270@users.noreply.github.com> | 2023-12-26 10:26:23 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-26 10:26:23 +0100 |
| commit | 1d6937db0cfbf5db5a22b298615550dd41cf7ae6 (patch) | |
| tree | f3056f7e3afcd663c0936843f9da3434bb99767e /src/main/java | |
| parent | ac96321d82fb8ee9ebc91ce9501ddcd7b649f47d (diff) | |
| download | NotEnoughUpdates-1d6937db0cfbf5db5a22b298615550dd41cf7ae6.tar.gz NotEnoughUpdates-1d6937db0cfbf5db5a22b298615550dd41cf7ae6.tar.bz2 NotEnoughUpdates-1d6937db0cfbf5db5a22b298615550dd41cf7ae6.zip | |
Migrating pv to v2 endpoint (#939)
Co-authored-by: efefury <69400149+efefury@users.noreply.github.com>
Co-authored-by: Lulonaut <lulonaut@lulonaut.tech>
Diffstat (limited to 'src/main/java')
15 files changed, 175 insertions, 173 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/loaders/MinionHelperApiLoader.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/loaders/MinionHelperApiLoader.java index 6f488107..c9f67fd5 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/loaders/MinionHelperApiLoader.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/loaders/MinionHelperApiLoader.java @@ -126,14 +126,7 @@ public class MinionHelperApiLoader { int localPelts = manager.getLocalPelts(); if (localPelts != -1) return localPelts; - int peltCount = 0; - if (player.has("trapper_quest")) { - JsonObject jsonObject = player.getAsJsonObject("trapper_quest"); - if (jsonObject.has("pelt_count")) { - peltCount = jsonObject.get("pelt_count").getAsInt(); - } - } - return peltCount; + return Utils.getElementAsInt(Utils.getElement(player, "quests.trapper_quest.pelt_count"), 0); } private Map<String, Integer> getSlayers(JsonObject player) { @@ -141,7 +134,7 @@ public class MinionHelperApiLoader { Map<String, Integer> slayerTier = new HashMap<>(); if (player.has("slayer_bosses")) { - JsonObject slayerBosses = player.getAsJsonObject("slayer_bosses"); + JsonObject slayerBosses = player.getAsJsonObject("slayer.slayer_bosses"); for (Map.Entry<String, JsonElement> entry : slayerBosses.entrySet()) { String name = entry.getKey(); JsonObject slayerEntry = entry.getValue().getAsJsonObject(); @@ -166,8 +159,10 @@ public class MinionHelperApiLoader { private Map<String, Integer> getCollections(JsonObject player) { Map<String, Integer> highestCollectionTier = new HashMap<>(); - if (player.has("unlocked_coll_tiers")) { - for (JsonElement element : player.get("unlocked_coll_tiers").getAsJsonArray()) { + + JsonElement collectionTiers = Utils.getElement(player, "player_data.unlocked_coll_tiers"); + if (collectionTiers != null) { + for (JsonElement element : collectionTiers.getAsJsonArray()) { String text = element.getAsString(); String[] split = text.split("_"); int level = Integer.parseInt(split[split.length - 1]); @@ -190,7 +185,7 @@ public class MinionHelperApiLoader { highestCollectionTier.put(name, level); } if (!collectionApiEnabled) { - Utils.addChatMessage("§e[NEU] Collection API detected!"); + Utils.addChatMessage("§e[NEU Minion Helper] Collection API detected!"); } collectionApiEnabled = true; } else { @@ -206,8 +201,8 @@ public class MinionHelperApiLoader { List<String> craftedMinions = new ArrayList<>(); for (Map.Entry<String, JsonElement> entry : members.entrySet()) { JsonObject value = entry.getValue().getAsJsonObject(); - if (value.has("crafted_generators")) { - for (JsonElement e : value.get("crafted_generators").getAsJsonArray()) { + if (value.has("player_data.crafted_generators")) { + for (JsonElement e : value.get("player_data.crafted_generators").getAsJsonArray()) { String rawGenerator = e.getAsString(); String[] split = rawGenerator.split("_"); String tier = split[split.length - 1]; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BasicPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BasicPage.java index 41e5fc5a..025b09b7 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BasicPage.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BasicPage.java @@ -336,17 +336,19 @@ public class BasicPage extends GuiProfileViewerPage { guiLeft + 68, guiTop + 38, true, 0 ); } + double networthInCookies = -1; if (NotEnoughUpdates.INSTANCE.manager.auctionManager.getBazaarInfo("BOOSTER_COOKIE") != null && - NotEnoughUpdates.INSTANCE.manager.auctionManager.getBazaarInfo("BOOSTER_COOKIE").has("avg_buy")) { - double networthInCookies = - ( + NotEnoughUpdates.INSTANCE.manager.auctionManager.getBazaarInfo("BOOSTER_COOKIE").has("avg_buy")) + + networthInCookies = ( networth / NotEnoughUpdates.INSTANCE.manager.auctionManager .getBazaarInfo("BOOSTER_COOKIE") .get("avg_buy") .getAsDouble() ); - String networthIRLMoney = StringUtils.formatNumber(Math.round( + + String networthIRLMoney = StringUtils.formatNumber(Math.round( ((networthInCookies * 325) / 675) * 4.99)); if (mouseX > guiLeft + offset - fontWidth / 2 && mouseX < guiLeft + offset + fontWidth / 2) { @@ -359,7 +361,7 @@ public class BasicPage extends GuiProfileViewerPage { EnumChatFormatting.DARK_GREEN + "$" + EnumChatFormatting.GOLD + - networthIRLMoney + (networthInCookies >= 0 ? networthIRLMoney : EnumChatFormatting.RED + "ERROR") ); if (NotEnoughUpdates.INSTANCE.config.profileViewer.useSoopyNetworth @@ -375,7 +377,8 @@ public class BasicPage extends GuiProfileViewerPage { if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { getInstance().tooltipToDisplay.addAll(nwCategoryHover); - getInstance().tooltipToDisplay.add(EnumChatFormatting.RED + "This is calculated using the current"); + getInstance().tooltipToDisplay.add( + EnumChatFormatting.RED + "The IRL price is calculated using the current"); getInstance().tooltipToDisplay.add( EnumChatFormatting.RED + "price of booster cookies on bazaar and the price"); getInstance().tooltipToDisplay.add( @@ -387,13 +390,10 @@ public class BasicPage extends GuiProfileViewerPage { } else { getInstance().tooltipToDisplay.add(EnumChatFormatting.GRAY + "[SHIFT for Info]"); } - if (!NotEnoughUpdates.INSTANCE.config.hidden.dev) { - getInstance().tooltipToDisplay.add(""); - getInstance().tooltipToDisplay.add(EnumChatFormatting.RED + "THIS IS IN NO WAY ENDORSING IRL TRADING!"); - } + getInstance().tooltipToDisplay.add(""); + getInstance().tooltipToDisplay.add(EnumChatFormatting.RED + "THIS IS IN NO WAY ENDORSING IRL TRADING!"); } } - } } else { int errFontWidth = fr.getStringWidth("Net Worth: " + stateStr); if (errFontWidth >= 117) { @@ -699,8 +699,8 @@ public class BasicPage extends GuiProfileViewerPage { "% to " + level.maxLevel + ")"); if (entry.getKey().equals("farming")) { // double drops + pelts - int doubleDrops = Utils.getElementAsInt(Utils.getElement(selectedProfile.getProfileJson(), "jacob2.perks.double_drops"), 0); - int peltCount = Utils.getElementAsInt(Utils.getElement(selectedProfile.getProfileJson(), "trapper_quest.pelt_count"), 0); + int doubleDrops = Utils.getElementAsInt(Utils.getElement(selectedProfile.getProfileJson(), "jacobs_contest.perks.double_drops"), 0); + int peltCount = Utils.getElementAsInt(Utils.getElement(selectedProfile.getProfileJson(), "quests.trapper_quest.pelt_count"), 0); if (doubleDrops == 15) { tooltipToDisplay.add("§7Double Drops: §6" + (doubleDrops * 2) + "%"); @@ -709,7 +709,9 @@ public class BasicPage extends GuiProfileViewerPage { tooltipToDisplay.add("§7Pelts: §e" + peltCount); // medals - JsonObject medals_inv = Utils.getElement(selectedProfile.getProfileJson(), "jacob2.medals_inv").getAsJsonObject(); + JsonObject medals_inv = Utils + .getElementOrDefault(selectedProfile.getProfileJson(), "jacobs_contest.medals_inv", new JsonObject()) + .getAsJsonObject(); tooltipToDisplay.add(" "); for (String medalName : medalNames) { String textWithoutFormattingCodes = @@ -737,7 +739,7 @@ public class BasicPage extends GuiProfileViewerPage { for (int i = 0; i < 5; i++) { if (i >= maxLevel) break; float tier = Utils.getElementAsFloat( - Utils.getElement(selectedProfile.getProfileJson(), "slayer_bosses." + slayerNameLower + ".boss_kills_tier_" + i), + Utils.getElement(selectedProfile.getProfileJson(), "slayer.slayer_bosses." + slayerNameLower + ".boss_kills_tier_" + i), 0 ); tooltipToDisplay.add(EnumChatFormatting.GRAY + "T" + (i + 1) + " Kills: " + diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ExtraPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ExtraPage.java index 8b8285c6..84eebc19 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ExtraPage.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ExtraPage.java @@ -133,8 +133,10 @@ public class ExtraPage extends GuiProfileViewerPage { return; } String displayName = itemInformation.get(essenceName).getAsJsonObject().get("displayname").getAsString(); - int essenceNumber = - profileInfo.has(essenceName.toLowerCase()) ? profileInfo.get(essenceName.toLowerCase()).getAsInt() : 0; + int essenceNumber = Utils.getElementAsInt(Utils.getElement( + profileInfo, + "currencies.essence." + essenceName.replace("ESSENCE_", "") + ".current" + ), 0); Utils.renderAlignedString( EnumChatFormatting.GOLD + displayName, @@ -153,12 +155,7 @@ public class ExtraPage extends GuiProfileViewerPage { if (essenceShops.get(essenceName) == null) continue; for (Map.Entry<String, JsonElement> entry : essenceShops.get(essenceName).getAsJsonObject().entrySet()) { - int perkTier = - (profileInfo.has("perks") && profileInfo.get("perks").getAsJsonObject().has(entry.getKey()) ? profileInfo - .get("perks") - .getAsJsonObject() - .get(entry.getKey()) - .getAsInt() : 0); + int perkTier = Utils.getElementAsInt(Utils.getElement(profileInfo, "player_data.perks." + entry.getKey()), 0); int max = entry.getValue().getAsJsonObject().get("costs").getAsJsonArray().size(); EnumChatFormatting formatting = perkTier == max ? EnumChatFormatting.GREEN : EnumChatFormatting.AQUA; String name = entry.getValue().getAsJsonObject().get("name").getAsString(); @@ -190,8 +187,11 @@ public class ExtraPage extends GuiProfileViewerPage { float yStartBottom = 105; float yOffset = 10; - float bankBalance = Utils.getElementAsFloat(Utils.getElement(selectedProfile.getOuterProfileJson(), "banking.balance"), 0); - float purseBalance = Utils.getElementAsFloat(Utils.getElement(profileInfo, "coin_purse"), 0); + float bankBalance = Utils.getElementAsFloat(Utils.getElement( + selectedProfile.getOuterProfileJson(), + "banking.balance" + ), 0); + float purseBalance = Utils.getElementAsFloat(Utils.getElement(profileInfo, "currencies.coin_purse"), 0); Utils.renderAlignedString( EnumChatFormatting.GOLD + "Bank Balance", @@ -209,7 +209,7 @@ public class ExtraPage extends GuiProfileViewerPage { ); { - String first_join = getTimeSinceString(profileInfo, "first_join"); + String first_join = getTimeSinceString(profileInfo, "profile.first_join"); if (first_join != null) { Utils.renderAlignedString( EnumChatFormatting.AQUA + "Joined", @@ -275,7 +275,7 @@ public class ExtraPage extends GuiProfileViewerPage { 76 )); - float fairySouls = Utils.getElementAsFloat(Utils.getElement(profileInfo, "fairy_souls_collected"), 0); + float fairySouls = Utils.getElementAsFloat(Utils.getElement(profileInfo, "fairy_soul.total_collected"), 0); int fairySoulMax = 227; if (Constants.FAIRYSOULS != null && Constants.FAIRYSOULS.has("Max Souls")) { @@ -350,16 +350,19 @@ public class ExtraPage extends GuiProfileViewerPage { ); } - float auctions_bids = Utils.getElementAsFloat(Utils.getElement(profileInfo, "stats.auctions_bids"), 0); + float auctions_bids = Utils.getElementAsFloat(Utils.getElement(profileInfo, "player_stats.auctions.bids"), 0); float auctions_highest_bid = Utils.getElementAsFloat( - Utils.getElement(profileInfo, "stats.auctions_highest_bid"), + Utils.getElement(profileInfo, "player_stats.auctions.highest_bid"), 0 ); - float auctions_won = Utils.getElementAsFloat(Utils.getElement(profileInfo, "stats.auctions_won"), 0); - float auctions_created = Utils.getElementAsFloat(Utils.getElement(profileInfo, "stats.auctions_created"), 0); - float auctions_gold_spent = Utils.getElementAsFloat(Utils.getElement(profileInfo, "stats.auctions_gold_spent"), 0); + float auctions_won = Utils.getElementAsFloat(Utils.getElement(profileInfo, "player_stats.auctions.won"), 0); + float auctions_created = Utils.getElementAsFloat(Utils.getElement(profileInfo, "player_stats.auctions.created"), 0); + float auctions_gold_spent = Utils.getElementAsFloat(Utils.getElement( + profileInfo, + "player_stats.auctions.gold_spent" + ), 0); float auctions_gold_earned = Utils.getElementAsFloat( - Utils.getElement(profileInfo, "stats.auctions_gold_earned"), + Utils.getElement(profileInfo, "player_stats.auctions.gold_earned"), 0 ); @@ -408,21 +411,21 @@ public class ExtraPage extends GuiProfileViewerPage { float pet_milestone_ores_mined = Utils.getElementAsFloat(Utils.getElement( profileInfo, - "stats.pet_milestone_ores_mined" + "player_stats.pets.milestone.ores_mined" ), 0); float pet_milestone_sea_creatures_killed = Utils.getElementAsFloat( - Utils.getElement(profileInfo, "stats.pet_milestone_sea_creatures_killed"), + Utils.getElement(profileInfo, "player_stats.pets.milestone.sea_creatures_killed"), 0 ); - float items_fished = Utils.getElementAsFloat(Utils.getElement(profileInfo, "stats.items_fished"), 0); + float items_fished = Utils.getElementAsFloat(Utils.getElement(profileInfo, "player_stats.items_fished.total"), 0); float items_fished_treasure = Utils.getElementAsFloat( - Utils.getElement(profileInfo, "stats.items_fished_treasure"), + Utils.getElement(profileInfo, "player_stats.items_fished.treasure"), 0 ); float items_fished_large_treasure = Utils.getElementAsFloat(Utils.getElement( profileInfo, - "stats.items_fished_large_treasure" + "player_stats.items_fished.large_treasure" ), 0); Utils.renderAlignedString( @@ -462,36 +465,36 @@ public class ExtraPage extends GuiProfileViewerPage { 76 ); - drawEssence(profileInfo, xStart, yStartTop, xOffset, yOffset, mouseX, mouseY); + drawEssence(selectedProfile.getProfileJson(), xStart, yStartTop, xOffset, yOffset, mouseX, mouseY); if (topKills == null) { topKills = new TreeMap<>(); - JsonObject stats = Utils.getElementOrDefault(profileInfo, "stats", new JsonObject()).getAsJsonObject(); + JsonObject stats = Utils + .getElementOrDefault(profileInfo, "player_stats.kills", new JsonObject()) + .getAsJsonObject(); for (Map.Entry<String, JsonElement> entry : stats.entrySet()) { - if (entry.getKey().startsWith("kills_")) { - if (entry.getValue().isJsonPrimitive()) { - JsonPrimitive prim = (JsonPrimitive) entry.getValue(); - if (prim.isNumber()) { - String name = WordUtils.capitalizeFully(entry.getKey().substring("kills_".length()).replace("_", " ")); - Set<String> kills = topKills.computeIfAbsent(prim.getAsInt(), k -> new HashSet<>()); - kills.add(name); - } + if (entry.getValue().isJsonPrimitive()) { + JsonPrimitive prim = (JsonPrimitive) entry.getValue(); + if (prim.isNumber()) { + String name = WordUtils.capitalizeFully(entry.getKey().replace("_", " ")); + Set<String> kills = topKills.computeIfAbsent(prim.getAsInt(), k -> new HashSet<>()); + kills.add(name); } } } } if (topDeaths == null) { topDeaths = new TreeMap<>(); - JsonObject stats = Utils.getElementOrDefault(profileInfo, "stats", new JsonObject()).getAsJsonObject(); + JsonObject stats = Utils + .getElementOrDefault(profileInfo, "player_stats.deaths", new JsonObject()) + .getAsJsonObject(); for (Map.Entry<String, JsonElement> entry : stats.entrySet()) { - if (entry.getKey().startsWith("deaths_")) { - if (entry.getValue().isJsonPrimitive()) { - JsonPrimitive prim = (JsonPrimitive) entry.getValue(); - if (prim.isNumber()) { - String name = WordUtils.capitalizeFully(entry.getKey().substring("deaths_".length()).replace("_", " ")); - Set<String> deaths = topDeaths.computeIfAbsent(prim.getAsInt(), k -> new HashSet<>()); - deaths.add(name); - } + if (entry.getValue().isJsonPrimitive()) { + JsonPrimitive prim = (JsonPrimitive) entry.getValue(); + if (prim.isNumber()) { + String name = WordUtils.capitalizeFully(entry.getKey().replace("_", " ")); + Set<String> deaths = topDeaths.computeIfAbsent(prim.getAsInt(), k -> new HashSet<>()); + deaths.add(name); } } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/InventoriesPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/InventoriesPage.java index c4dc7cd6..d1528051 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/InventoriesPage.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/InventoriesPage.java @@ -283,7 +283,7 @@ public class InventoriesPage extends GuiProfileViewerPage { if (equipmentItems == null) { equipmentItems = new ItemStack[4]; - JsonArray equippment = inventoryInfo.get("equippment_contents"); + JsonArray equippment = inventoryInfo.get("equipment_contents"); for (int i = 0; i < equippment.size(); i++) { if (equippment.get(i) != null && equippment.get(i).isJsonObject()) { equipmentItems[i] = NotEnoughUpdates.INSTANCE.manager.jsonToStack(equippment.get(i).getAsJsonObject(), false); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java index 809c5fb7..8309b9db 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java @@ -234,7 +234,7 @@ public class PlayerStats { public static Stats getPassiveBonuses(Map<String, ProfileViewer.Level> skyblockInfo, JsonObject profile) { Stats passiveBonuses = new Stats(); - Stats fairyBonus = getFairyBonus((int) Utils.getElementAsFloat(Utils.getElement(profile, "fairy_exchanges"), 0)); + Stats fairyBonus = getFairyBonus((int) Utils.getElementAsFloat(Utils.getElement(profile, "fairy_soul.fairy_exchanges"), 0)); Stats skillBonus = getSkillBonus(skyblockInfo); Stats petBonus = getTamingBonus(profile); @@ -691,9 +691,7 @@ public class PlayerStats { quiverInfo.arrows.putIfAbsent(internalName, count); } - if (profileInfo.has("favorite_arrow")) { - quiverInfo.selectedArrow = profileInfo.get("favorite_arrow").getAsString(); - } + quiverInfo.selectedArrow = Utils.getElementAsString(Utils.getElement(profileInfo, "item_data.favorite_arrow"), null); return quiverInfo; } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewerUtils.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewerUtils.java index 417ca9e6..038b9e14 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewerUtils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewerUtils.java @@ -59,7 +59,7 @@ public class ProfileViewerUtils { public static JsonArray readInventoryInfo(JsonObject profileInfo, String bagName) { String bytes = Utils.getElementAsString( - Utils.getElement(profileInfo, bagName + ".data"), + Utils.getElement(profileInfo, "inventory.bag_contents." + bagName + ".data"), "Hz8IAAAAAAAAAD9iYD9kYD9kAAMAPwI/Gw0AAAA=" ); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/SkyblockProfiles.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/SkyblockProfiles.java index f5e22e0a..a8fd019c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/SkyblockProfiles.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/SkyblockProfiles.java @@ -72,7 +72,7 @@ public class SkyblockProfiles { "inv_contents", "talisman_bag", "candy_inventory_contents", - "equippment_contents" + "equipment_contents" ); private static final List<String> skills = Arrays.asList( "taming", @@ -216,6 +216,17 @@ public class SkyblockProfiles { return highestProfileName.equals(profileName); } + private long handleSoopyApiResponse(JsonObject response) { + if (response == null + || !response.has("success") + || !response.get("success").getAsBoolean() + || !response.has("data")) { + return -3; // Error + } else { + return response.get("data").getAsLong(); + } + } + private void loadSoopyData(Runnable callback) { if (updatingSoopyData.get()) { return; @@ -226,36 +237,20 @@ public class SkyblockProfiles { soopyNetworthLeaderboardPosition = -2; // Loading profileViewer.getManager().apiUtils .request() - .url("https://soopy.dev/api/v2/leaderboard/networth/user/" + this.uuid) + .url("https://api.soopy.dev/lb/lbpos/networth/" + this.uuid) .requestJson() .handle((jsonObject, throwable) -> { - if (jsonObject == null || !jsonObject.has("success") || !jsonObject.get("success").getAsBoolean() - || !jsonObject.has("data") - || !jsonObject.getAsJsonObject("data").has("data") - || !jsonObject.getAsJsonObject("data").getAsJsonObject("data").has("position")) { - soopyNetworthLeaderboardPosition = -3; // Error - } else { - soopyNetworthLeaderboardPosition = jsonObject.getAsJsonObject("data").getAsJsonObject("data").get( - "position").getAsLong(); - } + soopyNetworthLeaderboardPosition = handleSoopyApiResponse(jsonObject); return null; }); soopyWeightLeaderboardPosition = -2; // Loading profileViewer.getManager().apiUtils .request() - .url("https://soopy.dev/api/v2/leaderboard/weight/user/" + this.uuid) + .url("https://api.soopy.dev/lb/lbpos/weight/" + this.uuid) .requestJson() .handle((jsonObject, throwable) -> { - if (jsonObject == null || !jsonObject.has("success") || !jsonObject.get("success").getAsBoolean() - || !jsonObject.has("data") - || !jsonObject.getAsJsonObject("data").has("data") - || !jsonObject.getAsJsonObject("data").getAsJsonObject("data").has("position")) { - soopyWeightLeaderboardPosition = -3; // Error - } else { - soopyWeightLeaderboardPosition = jsonObject.getAsJsonObject("data").getAsJsonObject("data").get( - "position").getAsLong(); - } + soopyWeightLeaderboardPosition = handleSoopyApiResponse(jsonObject); return null; }); @@ -271,7 +266,7 @@ public class SkyblockProfiles { ProfileViewerUtils.lastSoopyRequestTime.put(uuid, currentTime); profileViewer.getManager().apiUtils .request() - .url("https://soopy.dev/api/v2/player_networth/" + this.uuid) + .url("https://soopy.dev/api/v2/player_networth2/" + this.uuid) .method("POST") .postData("application/json", profilesArray.toString()) .requestJson() @@ -751,12 +746,22 @@ public class SkyblockProfiles { JsonArray contents = new JsonArray(); if (invName.equals("backpack_contents")) { - JsonObject backpackData = getBackpackData(Utils.getElement(profileJson, "backpack_contents")); + JsonObject backpackData = getBackpackData(Utils.getElement(profileJson, "inventory.backpack_contents")); inventoryNameToInfo.put("backpack_sizes", backpackData.getAsJsonArray("backpack_sizes")); contents = backpackData.getAsJsonArray("contents"); } else { + String path = "inventory." + invName + ".data"; + if (invName.endsWith("bag") || invName.equals("quiver")) { + path = "inventory.bag_contents." + invName + ".data"; + } else if (invName.equals("candy_inventory_contents")) { + path = "shared_inventory.candy_inventory_contents"; //the mappings said that this is the new path but i cant verify that because the data doesnt exist. + } + String contentBytes = Utils.getElementAsString( - Utils.getElement(profileJson, invName + ".data"), + Utils.getElement( + profileJson, + path + ), defaultNbtData ); @@ -851,7 +856,7 @@ public class SkyblockProfiles { } public boolean skillsApiEnabled() { - return getProfileJson().has("experience_skill_combat"); + return Utils.getElementAsLong(Utils.getElement(getProfileJson(), "player_data.experience.SKILL_COMBAT"), -1 ) != -1; } /** @@ -883,13 +888,13 @@ public class SkyblockProfiles { .getAsJsonObject() .entrySet()) { skillExperience += Utils.getElementAsFloat( - Utils.getElement(memberProfileJson.getValue(), "experience_skill_social2"), + Utils.getElement(memberProfileJson.getValue(), "player_data.experience.SKILL_SOCIAL"), 0 ); } } else { skillExperience += Utils.getElementAsFloat( - Utils.getElement(profileJson, "experience_skill_" + skillName), + Utils.getElement(profileJson, "player_data.experience.SKILL_" + skillName.toUpperCase()), 0 ); } @@ -903,7 +908,7 @@ public class SkyblockProfiles { int maxLevel = ProfileViewerUtils.getLevelingCap(leveling, skillName); if (skillName.equals("farming")) { - maxLevel += Utils.getElementAsInt(Utils.getElement(profileJson, "jacob2.perks.farming_level_cap"), 0); + maxLevel += Utils.getElementAsInt(Utils.getElement(profileJson, "jacobs_contest.perks.farming_level_cap"), 0); } out.put(skillName, ProfileViewerUtils.getLevel(levelingArray, skillExperience, maxLevel, false)); } @@ -965,7 +970,7 @@ public class SkyblockProfiles { for (String slayerName : Weight.SLAYER_NAMES) { float slayerExperience = Utils.getElementAsFloat(Utils.getElement( profileJson, - "slayer_bosses." + slayerName + ".xp" + "slayer.slayer_bosses." + slayerName + ".xp" ), 0); out.put( slayerName, @@ -995,12 +1000,13 @@ public class SkyblockProfiles { return petsInfo; } - JsonElement petsEle = getProfileJson().get("pets"); - if (petsEle != null && petsEle.isJsonArray()) { - JsonArray petsArr = petsEle.getAsJsonArray(); + JsonArray petsArray = Utils + .getElementOrDefault(getProfileJson(), "pets_data.pets", new JsonArray()) + .getAsJsonArray(); + if (petsArray.size() > 0) { JsonObject activePet = null; - for (JsonElement petEle : petsEle.getAsJsonArray()) { + for (JsonElement petEle : petsArray.getAsJsonArray()) { JsonObject petObj = petEle.getAsJsonObject(); if (petObj.has("active") && petObj.get("active").getAsBoolean()) { activePet = petObj; @@ -1011,7 +1017,7 @@ public class SkyblockProfiles { // TODO: STOP DOING THIS AAAAA petsInfo = new JsonObject(); petsInfo.add("active_pet", activePet); - petsInfo.add("pets", petsArr); + petsInfo.add("pets", petsArray); return petsInfo; } @@ -1162,7 +1168,7 @@ public class SkyblockProfiles { } float bankBalance = Utils.getElementAsFloat(Utils.getElement(profileInfo, "banking.balance"), 0); - float purseBalance = Utils.getElementAsFloat(Utils.getElement(profileInfo, "coin_purse"), 0); + float purseBalance = Utils.getElementAsFloat(Utils.getElement(profileInfo, "currencies.coin_purse"), 0); networth += bankBalance + purseBalance; return this.networth = networth; @@ -1188,7 +1194,6 @@ public class SkyblockProfiles { public void updateBeastMasterMultiplier() { if (!getUuid().equals(Minecraft.getMinecraft().thePlayer.getUniqueID().toString().replace("-", ""))) return; - JsonObject stats = getProfileJson().get("stats").getAsJsonObject(); boolean hasBeastmasterCrest = false; PetInfoOverlay.Rarity currentBeastRarity = PetInfoOverlay.Rarity.COMMON; for (JsonElement talisman : getInventoryInfo().get("talisman_bag")) { @@ -1205,8 +1210,9 @@ public class SkyblockProfiles { } } if (hasBeastmasterCrest) { - if (stats.has("mythos_kills")) { - int mk = stats.get("mythos_kills").getAsInt(); + JsonObject stats = getProfileJson().get("player_stats").getAsJsonObject(); + + int mk = Utils.getElementAsInt(Utils.getElement(stats, "mythos.kills"), 0); float petXpBoost = mk > 10000 ? 1f : mk > 7500 ? 0.9f : mk > 5000 ? 0.8f : mk > 2500 ? 0.7f : mk > 1000 ? 0.6f @@ -1217,10 +1223,8 @@ public class SkyblockProfiles { : mk > 100 ? 0.3f : mk > 25 ? 0.2f : 0.1f; - PetInfoOverlay.getConfig().beastMultiplier = petXpBoost * currentBeastRarity.beastcreatMultiplyer; - } else { - PetInfoOverlay.getConfig().beastMultiplier = 0.1f * currentBeastRarity.beastcreatMultiplyer; - } + PetInfoOverlay.getConfig().beastMultiplier = + (petXpBoost == 0 ? 0.1f : petXpBoost) * currentBeastRarity.beastcreatMultiplyer; } } |
