diff options
| author | hannibal2 <24389977+hannibal002@users.noreply.github.com> | 2024-02-25 18:28:20 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-25 18:28:20 +0100 |
| commit | ce3ab82ad811dc76781d3113765325461045efbd (patch) | |
| tree | 75d270d25b946b8c62ab39364fca59f76efb5b44 /src/main/java/at/hannibal2/skyhanni/api | |
| parent | cff372aeae28f7377a571672964c16ebdcd80a37 (diff) | |
| download | skyhanni-ce3ab82ad811dc76781d3113765325461045efbd.tar.gz skyhanni-ce3ab82ad811dc76781d3113765325461045efbd.tar.bz2 skyhanni-ce3ab82ad811dc76781d3113765325461045efbd.zip | |
Fixed creating too many skill timers. #1057
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/api')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/api/SkillAPI.kt | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/api/SkillAPI.kt b/src/main/java/at/hannibal2/skyhanni/api/SkillAPI.kt index a383b377e..45480aa4e 100644 --- a/src/main/java/at/hannibal2/skyhanni/api/SkillAPI.kt +++ b/src/main/java/at/hannibal2/skyhanni/api/SkillAPI.kt @@ -36,6 +36,7 @@ import io.github.moulberry.notenoughupdates.util.Utils import net.minecraft.command.CommandBase import net.minecraftforge.fml.common.eventhandler.SubscribeEvent import java.util.LinkedList +import java.util.Timer import java.util.regex.Matcher import kotlin.concurrent.fixedRateTimer import kotlin.time.Duration.Companion.seconds @@ -105,9 +106,9 @@ object SkillAPI { skillXp.lastUpdate = SimpleTimeMark.now() skillXp.sessionTimerActive = true - if (skillXp.shouldStartTimer) { - runTimer(skillName, skillXp) - skillXp.shouldStartTimer = false + + if (skillType.timer == null) { + skillType.timer = runTimer(skillType, skillXp) } SkillProgress.updateDisplay() SkillProgress.hideInActionBar = listOf(component) @@ -243,9 +244,10 @@ object SkillAPI { add("- CustomGoalLevel: ${skillInfo.customGoalLevel}\n") } - private fun runTimer(skillName: String, info: SkillXPInfo) { - fixedRateTimer(name = "skyhanni-skillprogress-timer-$skillName", initialDelay = 1_000L, period = 1_000L) { - if (info.shouldStartTimer) cancel() + // TODO only use one statuc timer for the whole feature. this timer just ticks the currently active skill. + private fun runTimer(skillType: SkillType, info: SkillXPInfo): Timer = + fixedRateTimer(name = "skyhanni-skillprogress-timer-${skillType.displayName}", initialDelay = 1_000L, period = 1_000L) { + if (skillType.timer != this) cancel() val time = when (activeSkill) { SkillType.FARMING -> SkillProgress.etaConfig.farmingPauseTime SkillType.MINING -> SkillProgress.etaConfig.miningPauseTime @@ -261,7 +263,6 @@ object SkillAPI { info.timeActive++ } } - } private fun handleSkillPattern(matcher: Matcher, skillType: SkillType, skillInfo: SkillInfo) { val currentXp = matcher.group("current").formatNumber() @@ -520,6 +521,5 @@ object SkillAPI { var isActive: Boolean = false, var lastUpdate: SimpleTimeMark = SimpleTimeMark.farPast(), var timeActive: Long = 0L, - var shouldStartTimer: Boolean = true, ) } |
