summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorCalMWolfs <94038482+CalMWolfs@users.noreply.github.com>2024-05-26 23:02:48 +1000
committerGitHub <noreply@github.com>2024-05-26 15:02:48 +0200
commitf67af16eacb6cdf3598183d473f072d123ef8a25 (patch)
tree62d11d0f5191d48eee31a630a0b054baeb89a509 /src/main/java
parent29657e24412baa7be9a1681593593368f92de26f (diff)
downloadskyhanni-f67af16eacb6cdf3598183d473f072d123ef8a25.tar.gz
skyhanni-f67af16eacb6cdf3598183d473f072d123ef8a25.tar.bz2
skyhanni-f67af16eacb6cdf3598183d473f072d123ef8a25.zip
Backend: Convert stuff to SimpleTimeMark (#1777)
Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/PurseAPI.kt12
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/SlayerAPI.kt13
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/combat/mobs/SpawnTimers.kt19
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonMilestonesDisplay.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/event/diana/InquisitorWaypointShare.kt45
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/event/diana/SoopyGuessBurrow.kt8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/fishing/FishingTimer.kt26
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestFFNeededDisplay.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropMilestoneDisplay.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropSpeed.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCustomKeybinds.kt7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/WildStrawberryDyeNotification.kt11
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorDropStatistics.kt6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorFeatures.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/inventory/HideNotClickableItems.kt31
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/inventory/tiarelay/TiaRelayHelper.kt9
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/mining/powdertracker/PowderTracker.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/rift/area/dreadfarm/RiftAgaricusCap.kt18
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/rift/area/dreadfarm/RiftWiltedBerberisHelper.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/slayer/SlayerQuestWarning.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/slayer/SlayerRngMeterDisplay.kt13
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerDaggerHelper.kt15
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/SimpleTimeMark.kt2
24 files changed, 161 insertions, 144 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt b/src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt
index 824726e35..16b0fcfa3 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt
+++ b/src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt
@@ -305,7 +305,7 @@ class ConfigManager {
logger.log("Loaded $fileName from file")
} catch (e: Exception) {
e.printStackTrace()
- val backupFile = file.resolveSibling("$fileName-${System.currentTimeMillis()}-backup.json")
+ val backupFile = file.resolveSibling("$fileName-${SimpleTimeMark.now().toMillis()}-backup.json")
logger.log("Exception while reading $file. Will load blank $fileName and save backup to $backupFile")
logger.log("Exception was $e")
try {
diff --git a/src/main/java/at/hannibal2/skyhanni/data/PurseAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/PurseAPI.kt
index 4c0d47614..e09eb11d7 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/PurseAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/PurseAPI.kt
@@ -7,9 +7,11 @@ import at.hannibal2.skyhanni.events.ScoreboardChangeEvent
import at.hannibal2.skyhanni.utils.NumberUtil.formatDouble
import at.hannibal2.skyhanni.utils.NumberUtil.million
import at.hannibal2.skyhanni.utils.RegexUtils.matchFirst
+import at.hannibal2.skyhanni.utils.SimpleTimeMark
import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern
import net.minecraft.client.Minecraft
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import kotlin.time.Duration.Companion.seconds
object PurseAPI {
private val patternGroup = RepoPattern.group("data.purse")
@@ -22,13 +24,13 @@ object PurseAPI {
"Piggy: (?<coins>.*)"
)
- private var inventoryCloseTime = 0L
+ private var inventoryCloseTime = SimpleTimeMark.farPast()
var currentPurse = 0.0
private set
@SubscribeEvent
fun onInventoryClose(event: InventoryCloseEvent) {
- inventoryCloseTime = System.currentTimeMillis()
+ inventoryCloseTime = SimpleTimeMark.now()
}
@SubscribeEvent
@@ -55,15 +57,13 @@ object PurseAPI {
}
if (Minecraft.getMinecraft().currentScreen == null) {
- val timeDiff = System.currentTimeMillis() - inventoryCloseTime
- if (timeDiff > 2_000) {
+ if (inventoryCloseTime.passedSince() > 2.seconds) {
return PurseChangeCause.GAIN_MOB_KILL
}
}
return PurseChangeCause.GAIN_UNKNOWN
} else {
- val timeDiff = System.currentTimeMillis() - SlayerAPI.questStartTime
- if (timeDiff < 1500) {
+ if (SlayerAPI.questStartTime.passedSince() < 1.5.seconds) {
return PurseChangeCause.LOSE_SLAYER_QUEST_STARTED
}
diff --git a/src/main/java/at/hannibal2/skyhanni/data/SlayerAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/SlayerAPI.kt
index f4235cb73..3d3be9c3a 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/SlayerAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/SlayerAPI.kt
@@ -15,6 +15,7 @@ import at.hannibal2.skyhanni.utils.NEUItems.getNpcPriceOrNull
import at.hannibal2.skyhanni.utils.NEUItems.getPrice
import at.hannibal2.skyhanni.utils.NumberUtil
import at.hannibal2.skyhanni.utils.RecalculatingValue
+import at.hannibal2.skyhanni.utils.SimpleTimeMark
import at.hannibal2.skyhanni.utils.TimeLimitedCache
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.time.Duration.Companion.minutes
@@ -24,20 +25,15 @@ object SlayerAPI {
private var nameCache = TimeLimitedCache<Pair<NEUInternalName, Int>, Pair<String, Double>>(1.minutes)
- var questStartTime = 0L
+ var questStartTime = SimpleTimeMark.farPast()
var isInCorrectArea = false
var isInAnyArea = false
var latestSlayerCategory = ""
- private var latestProgressChangeTime = 0L
- var latestWrongAreaWarning = 0L
+ var latestWrongAreaWarning = SimpleTimeMark.farPast()
var latestSlayerProgress = ""
fun hasActiveSlayerQuest() = latestSlayerCategory != ""
- fun getLatestProgressChangeTime() = if (latestSlayerProgress == "§eSlay the boss!") {
- System.currentTimeMillis()
- } else latestProgressChangeTime
-
fun getItemNameAndPrice(internalName: NEUInternalName, amount: Int): Pair<String, Double> =
nameCache.getOrPut(internalName to amount) {
val amountFormat = if (amount != 1) "§7${amount}x §r" else ""
@@ -76,7 +72,7 @@ object SlayerAPI {
if (!LorenzUtils.inSkyBlock) return
if (event.message.contains("§r§5§lSLAYER QUEST STARTED!")) {
- questStartTime = System.currentTimeMillis()
+ questStartTime = SimpleTimeMark.now()
}
if (event.message == " §r§a§lSLAYER QUEST COMPLETE!") {
@@ -118,7 +114,6 @@ object SlayerAPI {
if (latestSlayerProgress != slayerProgress) {
SlayerProgressChangeEvent(latestSlayerProgress, slayerProgress).postAndCatch()
latestSlayerProgress = slayerProgress
- latestProgressChangeTime = System.currentTimeMillis()
}
if (event.isMod(5)) {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/SpawnTimers.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/SpawnTimers.kt
index 3d77e214a..ac2496f18 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/SpawnTimers.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/SpawnTimers.kt
@@ -20,6 +20,7 @@ import net.minecraft.network.play.server.S2APacketParticles
import net.minecraft.util.EnumParticleTypes
import net.minecraftforge.fml.common.eventhandler.EventPriority
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.Duration.Companion.seconds
class SpawnTimers {
@@ -40,13 +41,13 @@ class SpawnTimers {
private var arachneSpawnTime = SimpleTimeMark.farPast()
private var saveNextTickParticles = false
private var particleCounter = 0
- private var tickTime: Long = 0
- private var searchTime: Long = 0
+ private var lastTickTime = SimpleTimeMark.farPast()
+ private var searchTime = SimpleTimeMark.farPast()
@SubscribeEvent
fun onWorldChange(event: LorenzWorldChangeEvent) {
- searchTime = 0
- tickTime = 0
+ searchTime = SimpleTimeMark.farPast()
+ lastTickTime = SimpleTimeMark.farPast()
particleCounter = 0
saveNextTickParticles = false
arachneSpawnTime = SimpleTimeMark.farPast()
@@ -70,9 +71,9 @@ class SpawnTimers {
if (arachneFragmentPattern.matches(message) || arachneCrystalPattern.matches(message)) {
if (arachneCrystalPattern.matches(message)) {
saveNextTickParticles = true
- searchTime = System.currentTimeMillis()
+ searchTime = SimpleTimeMark.now()
particleCounter = 0
- tickTime = 0L
+ lastTickTime = SimpleTimeMark.farPast()
} else arachneSpawnTime = SimpleTimeMark.now() + 19.seconds
}
}
@@ -81,11 +82,11 @@ class SpawnTimers {
@SubscribeEvent(priority = EventPriority.LOW, receiveCanceled = true)
fun onPacketReceive(event: PacketEvent.ReceiveEvent) {
if (!saveNextTickParticles) return
- if (System.currentTimeMillis() <= searchTime + 3000) return
+ if (searchTime.passedSince() < 3.seconds) return
- if (particleCounter == 0 && tickTime == 0L) tickTime = System.currentTimeMillis()
+ if (particleCounter == 0 && lastTickTime.isFarPast()) lastTickTime = SimpleTimeMark.now()
- if (System.currentTimeMillis() > tickTime + 60) {
+ if (lastTickTime.passedSince() > 60.milliseconds) {
arachneSpawnTime = if (particleCounter <= 20) {
SimpleTimeMark.now() + 21.seconds
} else {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonMilestonesDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonMilestonesDisplay.kt
index 2e6832eb1..960a8053e 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonMilestonesDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonMilestonesDisplay.kt
@@ -8,27 +8,29 @@ import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent
import at.hannibal2.skyhanni.utils.RegexUtils.matches
import at.hannibal2.skyhanni.utils.RenderUtils.renderString
+import at.hannibal2.skyhanni.utils.SimpleTimeMark
import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import kotlin.time.Duration.Companion.seconds
object DungeonMilestonesDisplay {
private val config get() = SkyHanniMod.feature.dungeon
- val milestonePattern by RepoPattern.pattern(
+ private val milestonePattern by RepoPattern.pattern(
"dungeon.milestone",
"§e§l.*Milestone §r§e.§r§7: You have (?:tanked and )?(?:dealt|healed) §r§.*§r§7.*so far! §r§a.*"
)
private var display = ""
private var currentMilestone = 0
- private var timeReached = 0L
+ private var timeReached = SimpleTimeMark.farPast()
var colour = ""
@SubscribeEvent
fun onTick(event: LorenzTickEvent) {
if (!event.isMod(5)) return
- if (currentMilestone >= 3 && System.currentTimeMillis() > timeReached + 3_000 && display.isNotEmpty()) {
+ if (currentMilestone >= 3 && timeReached.passedSince() > 3.seconds && display.isNotEmpty()) {
display = display.substring(1)
}
}
@@ -47,7 +49,7 @@ object DungeonMilestonesDisplay {
private fun update() {
if (currentMilestone > 3) return
if (currentMilestone == 3) {
- timeReached = System.currentTimeMillis()
+ timeReached = SimpleTimeMark.now()
}
colour = when (currentMilestone) {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/event/diana/InquisitorWaypointShare.kt b/src/main/java/at/hannibal2/skyhanni/features/event/diana/InquisitorWaypointShare.kt
index c8f7fc240..c884bd818 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/event/diana/InquisitorWaypointShare.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/event/diana/InquisitorWaypointShare.kt
@@ -29,6 +29,7 @@ import net.minecraftforge.event.entity.EntityJoinWorldEvent
import net.minecraftforge.fml.common.eventhandler.EventPriority
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import java.util.regex.Matcher
+import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.Duration.Companion.seconds
object InquisitorWaypointShare {
@@ -58,13 +59,14 @@ object InquisitorWaypointShare {
"(?<party>§9Party §8> )?(?<playerName>.*)§f: §rInquisitor dead!"
)
- private var time = 0L
- private var testTime = 0L
+ private var inquisitorTime = SimpleTimeMark.farPast()
+ private var testTime = SimpleTimeMark.farPast()
private var lastInquisitorMessage = ""
private var inquisitor = -1
private var lastInquisitor = -1
- private var lastShareTime = 0L
+ private var lastShareTime = SimpleTimeMark.farPast()
private var inquisitorsNearby = emptyList<EntityOtherPlayerMP>()
+ private val soonRange = (-500).milliseconds..1.5.seconds
private val logger = LorenzLogger("diana/waypoints")
@@ -105,26 +107,25 @@ object InquisitorWaypointShare {
fun onChat(event: LorenzChatEvent) {
if (!isEnabled()) return
val message = event.message
+ // TODO repo pattern
if (message.contains("§eYou dug out")) {
- testTime = System.currentTimeMillis()
+ testTime = SimpleTimeMark.now()
lastInquisitorMessage = message
- val diff = System.currentTimeMillis() - time
+ val passedSince = inquisitorTime.passedSince()
- if (diff < 10_000) {
+ if (passedSince < 10.seconds) {
logger.log(" ")
logger.log("reverse!")
- logger.log("diff: $diff")
- }
- if (diff > 1500 || diff < -500) {
- return
+ logger.log("diff: $passedSince")
}
+ if (passedSince in soonRange) return
foundInquisitor(lastInquisitor)
}
// TODO: Change the check to only one line once we have a confirmed inquis message line
if (message.contains("§r§eYou dug out ") && message.contains("Inquis")) {
- time = System.currentTimeMillis()
+ inquisitorTime = SimpleTimeMark.now()
logger.log("found Inquisitor")
}
}
@@ -145,15 +146,15 @@ object InquisitorWaypointShare {
inquisitorsNearby = inquisitorsNearby.editCopy { add(entity) }
GriffinBurrowHelper.update()
- val diff = System.currentTimeMillis() - time
- time = System.currentTimeMillis()
+ val passedSince = inquisitorTime.passedSince()
+ inquisitorTime = SimpleTimeMark.now()
lastInquisitor = entity.entityId
- logger.log("diff: $diff")
- if (diff > 1500 || diff < -500) {
- val testDiff = System.currentTimeMillis() - testTime
- if (testDiff > 1500 || testDiff < -500) {
- logger.log("testDiff: $diff")
+ logger.log("diff: $passedSince")
+ if (passedSince in soonRange) {
+ val testDiff = testTime.passedSince()
+ if (testDiff in soonRange) {
+ logger.log("testDiff: $passedSince")
return
} else {
logger.log("wrong Inquisitor message!")
@@ -204,8 +205,8 @@ object InquisitorWaypointShare {
private fun sendDeath() {
if (!isEnabled()) return
- if (lastShareTime + 5000 > System.currentTimeMillis()) return
- lastShareTime = System.currentTimeMillis()
+ if (lastShareTime.passedSince() > 5.seconds) return
+ lastShareTime = SimpleTimeMark.now()
if (inquisitor == -1) {
logger.log("Inquisitor is already null!")
@@ -217,8 +218,8 @@ object InquisitorWaypointShare {
fun sendInquisitor() {
if (!isEnabled()) return
- if (lastShareTime + 5000 > System.currentTimeMillis()) return
- lastShareTime = System.currentTimeMillis()
+ if (lastShareTime.passedSince() > 5.seconds) return
+ lastShareTime = SimpleTimeMark.now()
if (inquisitor == -1) {
ChatUtils.error("No Inquisitor Found!")
diff --git a/src/main/java/at/hannibal2/skyhanni/features/event/diana/SoopyGuessBurrow.kt b/src/main/java/at/hannibal2/skyhanni/features/event/diana/SoopyGuessBurrow.kt
index 535e8d4a0..37c9d50f1 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/event/diana/SoopyGuessBurrow.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/event/diana/SoopyGuessBurrow.kt
@@ -24,7 +24,7 @@ import kotlin.math.sin
class SoopyGuessBurrow {
private var dingIndex = 0
- private var lastDing = 0L
+ private var hasDinged = false
private var lastDingPitch = 0f
private var firstPitch = 0f
private var lastParticlePoint: LorenzVec? = null
@@ -43,7 +43,7 @@ class SoopyGuessBurrow {
@SubscribeEvent
fun onWorldChange(event: LorenzWorldChangeEvent) {
- lastDing = 0L
+ hasDinged = false
lastDingPitch = 0f
firstPitch = 0f
lastParticlePoint = null
@@ -63,11 +63,11 @@ class SoopyGuessBurrow {
if (event.soundName != "note.harp") return
val pitch = event.pitch
- if (lastDing == 0L) {
+ if (!hasDinged) {
firstPitch = pitch
}
- lastDing = System.currentTimeMillis()
+ hasDinged = true
if (pitch < lastDingPitch) {
firstPitch = pitch
diff --git a/src/main/java/at/hannibal2/skyhanni/features/fishing/FishingTimer.kt b/src/main/java/at/hannibal2/skyhanni/features/fishing/FishingTimer.kt
index 130daa29c..f917db711 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/fishing/FishingTimer.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/fishing/FishingTimer.kt
@@ -12,13 +12,15 @@ import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.LorenzUtils.isInIsland
import at.hannibal2.skyhanni.utils.LorenzVec
import at.hannibal2.skyhanni.utils.RenderUtils.renderString
+import at.hannibal2.skyhanni.utils.SimpleTimeMark
import at.hannibal2.skyhanni.utils.SoundUtils
import at.hannibal2.skyhanni.utils.StringUtils
import at.hannibal2.skyhanni.utils.TimeUnit
-import at.hannibal2.skyhanni.utils.TimeUtils
+import at.hannibal2.skyhanni.utils.TimeUtils.format
import net.minecraft.client.Minecraft
import net.minecraft.entity.item.EntityArmorStand
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.Duration.Companion.seconds
class FishingTimer {
@@ -28,7 +30,7 @@ class FishingTimer {
private var rightLocation = false
private var currentCount = 0
- private var startTime = 0L
+ private var startTime = SimpleTimeMark.farPast()
private var inHollows = false
@SubscribeEvent
@@ -45,16 +47,16 @@ class FishingTimer {
if (event.isMod(5)) checkMobs()
if (event.isMod(7)) tryPlaySound()
if (config.manualResetTimer.isKeyHeld() && Minecraft.getMinecraft().currentScreen == null) {
- startTime = System.currentTimeMillis()
+ startTime = SimpleTimeMark.now()
}
}
private fun tryPlaySound() {
if (currentCount == 0) return
- val duration = System.currentTimeMillis() - startTime
- val barnTimerAlertTime = config.alertTime * 1_000
- if (duration > barnTimerAlertTime && duration < barnTimerAlertTime + 3_000) {
+ val passedSince = startTime.passedSince()
+ val barnTimerAlertTime = (config.alertTime * 1_000).milliseconds
+ if (passedSince in barnTimerAlertTime..(barnTimerAlertTime + 3.seconds)) {
SoundUtils.playBeepSound()
}
}
@@ -63,12 +65,12 @@ class FishingTimer {
val newCount = countMobs()
if (currentCount == 0 && newCount > 0) {
- startTime = System.currentTimeMillis()
+ startTime = SimpleTimeMark.now()
}
currentCount = newCount
if (newCount == 0) {
- startTime = 0
+ startTime = SimpleTimeMark.farPast()
}
if (inHollows && newCount >= 60 && config.wormLimitAlert) {
@@ -109,10 +111,10 @@ class FishingTimer {
if (currentCount == 0) return
if (!FishingAPI.isFishing()) return
- val duration = System.currentTimeMillis() - startTime
- val barnTimerAlertTime = config.alertTime * 1_000
- val color = if (duration > barnTimerAlertTime) "§c" else "§e"
- val timeFormat = TimeUtils.formatDuration(duration, biggestUnit = TimeUnit.MINUTE)
+ val passedSince = startTime.passedSince()
+ val barnTimerAlertTime = (config.alertTime * 1_000).milliseconds
+ val color = if (passedSince > barnTimerAlertTime) "§c" else "§e"
+ val timeFormat = passedSince.format(TimeUnit.MINUTE)
val name = StringUtils.pluralize(currentCount, "sea creature")
val text = "$color$timeFormat §8(§e$currentCount §b$name§8)"
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestFFNeededDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestFFNeededDisplay.kt
index e47100cb4..1027234f7 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestFFNeededDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestFFNeededDisplay.kt
@@ -14,15 +14,17 @@ import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.LorenzUtils.round
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems
+import at.hannibal2.skyhanni.utils.SimpleTimeMark
import net.minecraft.item.ItemStack
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.math.ceil
+import kotlin.time.Duration.Companion.milliseconds
class JacobContestFFNeededDisplay {
private val config get() = GardenAPI.config
private var display = emptyList<List<Any>>()
- private var lastToolTipTime = 0L
+ private var lastToolTipTime = SimpleTimeMark.farPast()
private val cache = mutableMapOf<ItemStack, List<List<Any>>>()
@SubscribeEvent
@@ -35,7 +37,7 @@ class JacobContestFFNeededDisplay {
val oldData = cache[stack]
if (oldData != null) {
display = oldData
- lastToolTipTime = System.currentTimeMillis()
+ lastToolTipTime = SimpleTimeMark.now()
return
}
@@ -45,7 +47,7 @@ class JacobContestFFNeededDisplay {
val newDisplay = drawDisplay(contest)
display = newDisplay
cache[stack] = newDisplay
- lastToolTipTime = System.currentTimeMillis()
+ lastToolTipTime = SimpleTimeMark.now()
}
@SubscribeEvent
@@ -116,7 +118,7 @@ class JacobContestFFNeededDisplay {
fun onBackgroundDraw(event: GuiRenderEvent.ChestGuiOverlayRenderEvent) {
if (!isEnabled()) return
if (!FarmingContestAPI.inInventory) return
- if (System.currentTimeMillis() > lastToolTipTime + 200) return
+ if (lastToolTipTime.passedSince() < 200.milliseconds) return
config.farmingFortuneForContestPos.renderStringsAndItems(display, posLabel = "Jacob Contest Crop Data")
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropMilestoneDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropMilestoneDisplay.kt
index 72021eea6..5b50a29ff 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropMilestoneDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropMilestoneDisplay.kt
@@ -29,12 +29,14 @@ import at.hannibal2.skyhanni.utils.LorenzUtils.round
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.RenderUtils.renderRenderables
import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems
+import at.hannibal2.skyhanni.utils.SimpleTimeMark
import at.hannibal2.skyhanni.utils.SoundUtils
import at.hannibal2.skyhanni.utils.TimeUnit
import at.hannibal2.skyhanni.utils.TimeUtils
import at.hannibal2.skyhanni.utils.renderables.Renderable
import net.minecraftforge.fml.common.eventhandler.EventPriority
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.Duration.Companion.seconds
object GardenCropMilestoneDisplay {
@@ -47,7 +49,7 @@ object GardenCropMilestoneDisplay {
private val storage get() = ProfileStorageData.profileSpecific?.garden?.customGoalMilestone
private val bestCropTime = GardenBestCropTime()
- private var lastPlaySoundTime = 0L
+ private var lastPlaySoundTime = SimpleTimeMark.farPast()
private var needsInventory = false
private var lastWarnedLevel = -1
@@ -262,11 +264,11 @@ object GardenCropMilestoneDisplay {
private fun tryWarn(millis: Long, title: String) {
if (!config.warnClose) return
- if (GardenCropSpeed.lastBrokenTime + 500 <= System.currentTimeMillis()) return
+ if (GardenCropSpeed.lastBrokenTime.passedSince() > 500.milliseconds) return
if (millis > 5_900) return
- if (System.currentTimeMillis() > lastPlaySoundTime + 1_000) {
- lastPlaySoundTime = System.currentTimeMillis()
+ if (lastPlaySoundTime.passedSince() > 1.seconds) {
+ lastPlaySoundTime = SimpleTimeMark.now()
SoundUtils.playBeepSound()
}
if (!needsInventory) {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropSpeed.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropSpeed.kt
index 691c3777c..72e73ee2d 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropSpeed.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropSpeed.kt
@@ -16,6 +16,7 @@ import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.utils.CollectionUtils.editCopy
import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
+import at.hannibal2.skyhanni.utils.SimpleTimeMark
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.concurrent.fixedRateTimer
@@ -26,7 +27,7 @@ object GardenCropSpeed {
private val latestBlocksPerSecond: MutableMap<CropType, Double>? get() = GardenAPI.storage?.latestBlocksPerSecond
var lastBrokenCrop: CropType? = null
- var lastBrokenTime = 0L
+ var lastBrokenTime = SimpleTimeMark.now()
var averageBlocksPerSecond = 0.0
@@ -76,7 +77,7 @@ object GardenCropSpeed {
if (event.clickType != ClickType.LEFT_CLICK) return
lastBrokenCrop = event.crop
- lastBrokenTime = System.currentTimeMillis()
+ lastBrokenTime = SimpleTimeMark.now()
blocksBroken++
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCustomKeybinds.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCustomKeybinds.kt
index f4a401cd5..aa59a604d 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCustomKeybinds.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCustomKeybinds.kt
@@ -14,6 +14,7 @@ import org.lwjgl.input.Keyboard
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable
import java.util.IdentityHashMap
+import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.Duration.Companion.seconds
object GardenCustomKeybinds {
@@ -22,7 +23,7 @@ object GardenCustomKeybinds {
private val mcSettings get() = Minecraft.getMinecraft().gameSettings
private val map: MutableMap<KeyBinding, () -> Int> = IdentityHashMap()
- private var lastWindowOpenTime = 0L
+ private var lastWindowOpenTime = SimpleTimeMark.farPast()
private var lastDuplicateKeybindsWarnTime = SimpleTimeMark.farPast()
init {
@@ -44,13 +45,13 @@ object GardenCustomKeybinds {
if (Minecraft.getMinecraft().currentScreen != null) {
if (Minecraft.getMinecraft().currentScreen is GuiEditSign) {
- lastWindowOpenTime = System.currentTimeMillis()
+ lastWindowOpenTime = SimpleTimeMark.now()
}
return false
}
// TODO remove workaround
- if (System.currentTimeMillis() < lastWindowOpenTime + 300) return false
+ if (lastWindowOpenTime.passedSince() < 300.milliseconds) retu