diff options
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/event/diana/GriffinPetWarning.kt | 44 |
1 files 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!") } } } |