From 0561f4bd6da6fd454f19d23c1b7599a3d9f0ff8f Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal002@users.noreply.github.com> Date: Sun, 13 Oct 2024 22:45:51 +0200 Subject: Fix: Griffin Pet warning Autopet (#2722) Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com> --- .../features/event/diana/GriffinPetWarning.kt | 44 ++++++++++++++++++++-- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/src/main/java/at/hannibal2/skyhanni/features/event/diana/GriffinPetWarning.kt b/src/main/java/at/hannibal2/skyhanni/features/event/diana/GriffinPetWarning.kt index f52c34320..f5ce6675b 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/event/diana/GriffinPetWarning.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/event/diana/GriffinPetWarning.kt @@ -1,9 +1,13 @@ package at.hannibal2.skyhanni.features.event.diana import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.events.BurrowDugEvent +import at.hannibal2.skyhanni.events.IslandChangeEvent import at.hannibal2.skyhanni.events.LorenzTickEvent import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule import at.hannibal2.skyhanni.utils.ChatUtils +import at.hannibal2.skyhanni.utils.DelayedRun +import at.hannibal2.skyhanni.utils.HypixelCommands import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.SimpleTimeMark import net.minecraftforge.fml.common.eventhandler.SubscribeEvent @@ -11,20 +15,52 @@ import kotlin.time.Duration.Companion.seconds @SkyHanniModule object GriffinPetWarning { - + private val config get() = SkyHanniMod.feature.event.diana + private var wasCorrectPetAlready = false private var lastWarnTime = SimpleTimeMark.farPast() @SubscribeEvent fun onTick(event: LorenzTickEvent) { if (!event.isMod(10)) return - if (!SkyHanniMod.feature.event.diana.petWarning) return + if (!config.petWarning) return if (!DianaAPI.isDoingDiana()) return if (!DianaAPI.hasSpadeInHand()) return - if (!DianaAPI.hasGriffinPet() && lastWarnTime.passedSince() > 30.seconds) { + val hasGriffinPet = DianaAPI.hasGriffinPet() + if (hasGriffinPet) { + wasCorrectPetAlready = true + return + } + + if (wasCorrectPetAlready) return + + warn() + } + + @SubscribeEvent + fun onBurrowDug(event: BurrowDugEvent) { + DelayedRun.runDelayed(2.seconds) { + wasCorrectPetAlready = false + } + } + + @SubscribeEvent + fun onIslandChange(event: IslandChangeEvent) { + DelayedRun.runDelayed(5.seconds) { + wasCorrectPetAlready = false + } + } + + private fun warn() { + ChatUtils.clickToActionOrDisable( + "Reminder to use a Griffin pet for Mythological Ritual!", + config::petWarning, + actionName = "open pets menu", + action = { HypixelCommands.pet() }, + ) + if (lastWarnTime.passedSince() > 30.seconds) { lastWarnTime = SimpleTimeMark.now() LorenzUtils.sendTitle("§cGriffin Pet!", 3.seconds) - ChatUtils.chat("Reminder to use a Griffin pet for Mythological Ritual!") } } } -- cgit