diff options
author | VeritasDL <121319869+VeritasDL@users.noreply.github.com> | 2024-04-06 17:39:53 -0400 |
---|---|---|
committer | VeritasDL <121319869+VeritasDL@users.noreply.github.com> | 2024-04-19 18:01:00 -0400 |
commit | 1d01689f1849b28bd5e47baa20eb8ab8f35864cb (patch) | |
tree | 246d3c67afbbe96b94ae585a480aed9c8721ea90 /src/main/java | |
parent | 28272732df33e6154557e6622a659c6f4023c443 (diff) | |
download | Skyblocker-1d01689f1849b28bd5e47baa20eb8ab8f35864cb.tar.gz Skyblocker-1d01689f1849b28bd5e47baa20eb8ab8f35864cb.tar.bz2 Skyblocker-1d01689f1849b28bd5e47baa20eb8ab8f35864cb.zip |
Update ItemCooldowns.java
Changed to not request api every block break? i think idk havent tested
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/item/ItemCooldowns.java | 88 |
1 files changed, 50 insertions, 38 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemCooldowns.java b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemCooldowns.java index f1dadf3b..655dac53 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemCooldowns.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemCooldowns.java @@ -50,62 +50,74 @@ public class ItemCooldowns { public static int MonkeyLevel = 1; public static double CalcMonkeyExp = 0; public static int CalcMonkeyLevel = 1; + public static int PetLevelApiDelay = 0; //3min 180000 + public static double currentCooldown = 0; public static void init() { ClientPlayerBlockBreakEvents.AFTER.register(ItemCooldowns::afterBlockBreak); UseItemCallback.EVENT.register(ItemCooldowns::onItemInteract); } - public static void afterBlockBreak(World world, PlayerEntity player, BlockPos pos, BlockState state) { - if (!SkyblockerConfigManager.get().general.itemCooldown.enableItemCooldowns) return; + public static void currentCooldown() { String name = MinecraftClient.getInstance().getSession().getUsername(); String playeruuid = ApiUtils.name2Uuid(name); - try (Http.ApiResponse response = Http.sendHypixelRequest("skyblock/profiles", "?uuid=" + playeruuid)) { - if (!response.ok()) - throw new IllegalStateException("Failed to get profile uuid for player " + name + "! Response: " + response.content()); - JsonObject responseJson = JsonParser.parseString(response.content()).getAsJsonObject(); - - JsonObject players = StreamSupport.stream(responseJson.getAsJsonArray("profiles").spliterator(), false) - .map(JsonElement::getAsJsonObject) - .filter(profile -> profile.getAsJsonPrimitive("selected").getAsBoolean()) - .findFirst() - .orElseThrow(() -> new IllegalStateException("No selected profile found!?")) - .getAsJsonObject("members").entrySet().stream() - .filter(entry -> entry.getKey().equals(playeruuid)) - .map(Map.Entry::getValue) - .map(JsonElement::getAsJsonObject) - .findFirst() - .orElseThrow(() -> new IllegalStateException("Player somehow not found inside their own profile!")); - - for (JsonElement element : players.getAsJsonObject("pets_data").getAsJsonArray("pets")) { - if (!element.getAsJsonObject().get("type").getAsString().equals("MONKEY")) continue; - if (!element.getAsJsonObject().get("active").getAsString().equals("true")) continue; - if (element.getAsJsonObject().get("tier").getAsString().equals("LEGENDARY")) { - CalcMonkeyExp = Double.parseDouble(element.getAsJsonObject().get("exp").getAsString()); - MonkeyLevel = 0; - for (int xpLevel : EXPERIENCE_LEVELS) { - if (CalcMonkeyExp < xpLevel) { - break; - } else { - CalcMonkeyExp -= xpLevel; - MonkeyLevel++; + if (PetLevelApiDelay == 0) + try (Http.ApiResponse response = Http.sendHypixelRequest("skyblock/profiles", "?uuid=" + playeruuid)) { + if (!response.ok()) + throw new IllegalStateException("Failed to get profile uuid for player " + name + "! Response: " + response.content()); + JsonObject responseJson = JsonParser.parseString(response.content()).getAsJsonObject(); + JsonObject players = StreamSupport.stream(responseJson.getAsJsonArray("profiles").spliterator(), false) + .map(JsonElement::getAsJsonObject) + .filter(profile -> profile.getAsJsonPrimitive("selected").getAsBoolean()) + .findFirst() + .orElseThrow(() -> new IllegalStateException("No selected profile found!?")) + .getAsJsonObject("members").entrySet().stream() + .filter(entry -> entry.getKey().equals(playeruuid)) + .map(Map.Entry::getValue) + .map(JsonElement::getAsJsonObject) + .findFirst() + .orElseThrow(() -> new IllegalStateException("Player somehow not found inside their own profile!")); + + for (JsonElement element : players.getAsJsonObject("pets_data").getAsJsonArray("pets")) { + if (!element.getAsJsonObject().get("type").getAsString().equals("MONKEY")) continue; + if (!element.getAsJsonObject().get("active").getAsString().equals("true")) continue; + if (element.getAsJsonObject().get("tier").getAsString().equals("LEGENDARY")) { + CalcMonkeyExp = Double.parseDouble(element.getAsJsonObject().get("exp").getAsString()); + MonkeyLevel = 0; + for (int xpLevel : EXPERIENCE_LEVELS) { + if (CalcMonkeyExp < xpLevel) { + break; + } else { + CalcMonkeyExp -= xpLevel; + MonkeyLevel++; + } } } } + } catch (Exception e) { + System.out.println("Pet Level Error or something Idk"); } - } catch (Exception e) { - System.out.println("Pet Level Error or something Idk"); - } double BaseCooldown = 2000; + double EvolvedAxesCooldownReductionPercentage = MonkeyLevel * 0.5; + double MonkeyPetCDRReduction = (BaseCooldown * EvolvedAxesCooldownReductionPercentage) / 100; + currentCooldown = BaseCooldown - MonkeyPetCDRReduction; + PetLevelApiDelay = 180000; + } + public static void afterBlockBreak(World world, PlayerEntity player, BlockPos pos, BlockState state) { + if (!SkyblockerConfigManager.get().general.itemCooldown.enableItemCooldowns) return; String usedItemId = ItemUtils.getItemId(player.getMainHandStack()); if (usedItemId.isEmpty()) return; if (state.isIn(BlockTags.LOGS)) { - double EvolvedAxesCooldownReductionPercentage = MonkeyLevel * 0.5; - double MonkeyPetCDRReduction = (BaseCooldown * EvolvedAxesCooldownReductionPercentage) / 100; - double currentCooldown = BaseCooldown - MonkeyPetCDRReduction; + if (PetLevelApiDelay == 0) { + currentCooldown(); + PetLevelApiDelay = 180000; + } + else { + PetLevelApiDelay--; + } if (usedItemId.equals(JUNGLE_AXE_ID) || usedItemId.equals(TREECAPITATOR_ID)) { if (!isOnCooldown(JUNGLE_AXE_ID) || !isOnCooldown(TREECAPITATOR_ID)) { - ITEM_COOLDOWNS.put(usedItemId, new CooldownEntry((int)currentCooldown)); + ITEM_COOLDOWNS.put(usedItemId, new CooldownEntry((int) currentCooldown)); } } } |