From 42017d856cd4306dcff58a54fc401d22b85e2441 Mon Sep 17 00:00:00 2001 From: ExternalTime <84183548+ExternalTime@users.noreply.github.com> Date: Sun, 20 Feb 2022 14:15:56 +0100 Subject: Added simple scheduler for recurring and delayed tasks (#39) --- .../java/me/xmrvizzy/skyblocker/SkyblockerMod.java | 74 +++------------------- 1 file changed, 9 insertions(+), 65 deletions(-) (limited to 'src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java') diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java index e33e9c2d..6ebaa5b2 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java +++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java @@ -1,86 +1,30 @@ package me.xmrvizzy.skyblocker; -import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.container.ContainerSolverManager; import me.xmrvizzy.skyblocker.discord.DiscordRPCManager; import me.xmrvizzy.skyblocker.skyblock.dungeon.DungeonBlaze; +import me.xmrvizzy.skyblocker.utils.Scheduler; import me.xmrvizzy.skyblocker.utils.Utils; -import net.minecraft.client.MinecraftClient; - -import java.util.Objects; public class SkyblockerMod { public static final String NAMESPACE = "skyblocker"; private static final SkyblockerMod instance = new SkyblockerMod(); + + public final Scheduler scheduler = new Scheduler(); public final ContainerSolverManager containerSolverManager = new ContainerSolverManager(); - public DiscordRPCManager discordRPCManager = new DiscordRPCManager(); + public final DiscordRPCManager discordRPCManager = new DiscordRPCManager(); private SkyblockerMod() { + scheduler.scheduleCyclic(Utils::sbChecker, 20); + scheduler.scheduleCyclic(discordRPCManager::update, 100); + scheduler.scheduleCyclic(DungeonBlaze::update, 4); } public static SkyblockerMod getInstance() { return instance; } - private int ticks = 0; - private int rpTimer = 0; - public void onTick() { - MinecraftClient client = MinecraftClient.getInstance(); - if (client == null) return; - ticks++; - if(onHypxiel()) { - if (ticks % 4 == 0) - try { - if (Utils.isInDungeons) { - DungeonBlaze.DungeonBlaze(); - } - } catch (Exception e) { - //System.out.println("Blazesolver: " + e); - } - if (ticks % 20 == 0) { - rpTimer++; - if (rpTimer == 5) { - if (discordRPCManager.isConnected && Utils.isOnSkyblock && SkyblockerConfig.get().richPresence.enableRichPresence) { - discordRPCManager.updatePresence(); - } - if (discordRPCManager.isConnected && Utils.isOnSkyblock && SkyblockerConfig.get().richPresence.cycleMode) { - discordRPCManager.cycleCount++; - if (discordRPCManager.cycleCount == 3) discordRPCManager.cycleCount = 0; - } - rpTimer = 0; - } - if (client.world != null && !client.isInSingleplayer()) - Utils.sbChecker(); - if (!discordRPCManager.isConnected && Utils.isOnSkyblock && SkyblockerConfig.get().richPresence.enableRichPresence) - discordRPCManager.start(); - if (discordRPCManager.isConnected && !SkyblockerConfig.get().richPresence.enableRichPresence) - discordRPCManager.stop(); - ticks = 0; - } - } else { - if (ticks % 20 == 0) { - if (discordRPCManager.isConnected) { - discordRPCManager.stop(); - } - Utils.sbChecker(); - ticks = 0; - } - } - } - public static MinecraftClient client() { - try { - return MinecraftClient.getInstance(); - } - catch(NullPointerException e) { - return null; - } - } - public static boolean onHypxiel() { - try { - return client() != null && !client().isInSingleplayer() && Objects.requireNonNull(client().getCurrentServerEntry()).address != null && client().getCurrentServerEntry().address.contains("hypixel.net"); - } catch (NullPointerException exception) { - return false; - } + scheduler.tick(); } -} \ No newline at end of file +} -- cgit