diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-02-04 12:51:50 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-04 12:51:50 -0500 |
commit | 0d4f91674e926d502b4db4e997a2b8108e7fddda (patch) | |
tree | ff4fb75bf9096047a72a45b28e887ba92c2f4990 /src/main/java | |
parent | 8977357f7a90f3da43870f9ec386612c5d3f7ded (diff) | |
download | Skyblocker-0d4f91674e926d502b4db4e997a2b8108e7fddda.tar.gz Skyblocker-0d4f91674e926d502b4db4e997a2b8108e7fddda.tar.bz2 Skyblocker-0d4f91674e926d502b4db4e997a2b8108e7fddda.zip |
Update mayor cache every 20 minutes (#525)
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/Utils.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/main/java/de/hysky/skyblocker/utils/Utils.java b/src/main/java/de/hysky/skyblocker/utils/Utils.java index b0c5bf45..0c95985e 100644 --- a/src/main/java/de/hysky/skyblocker/utils/Utils.java +++ b/src/main/java/de/hysky/skyblocker/utils/Utils.java @@ -7,6 +7,7 @@ import de.hysky.skyblocker.skyblock.item.MuseumItemCache; import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip; import de.hysky.skyblocker.skyblock.rift.TheRift; import de.hysky.skyblocker.utils.scheduler.MessageScheduler; +import de.hysky.skyblocker.utils.scheduler.Scheduler; import it.unimi.dsi.fastutil.objects.ObjectArrayList; import net.fabricmc.fabric.api.client.item.v1.ItemTooltipCallback; import net.fabricmc.fabric.api.client.message.v1.ClientReceiveMessageEvents; @@ -167,10 +168,11 @@ public class Utils { } public static void init() { - SkyblockEvents.JOIN.register(Utils::initializeMayorCache); + SkyblockEvents.JOIN.register(() -> tickMayorCache(false)); ClientPlayConnectionEvents.JOIN.register(Utils::onClientWorldJoin); ClientReceiveMessageEvents.ALLOW_GAME.register(Utils::onChatMessage); ClientReceiveMessageEvents.GAME_CANCELED.register(Utils::onChatMessage); // Somehow this works even though onChatMessage returns a boolean + Scheduler.INSTANCE.scheduleCyclic(() -> tickMayorCache(true), 24_000, true); // Update every 20 minutes } /** @@ -414,8 +416,9 @@ public class Utils { map = ""; } - private static void initializeMayorCache() { - if (!mayor.isEmpty()) return; + private static void tickMayorCache(boolean refresh) { + if (!mayor.isEmpty() && !refresh) return; + CompletableFuture.supplyAsync(() -> { try { JsonObject json = JsonParser.parseString(Http.sendGetRequest("https://api.hypixel.net/v2/resources/skyblock/election")).getAsJsonObject(); |