From 20cbb7d8e48757ae21230a650dcee06a56aaa190 Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Sat, 11 Nov 2023 11:40:24 +0100 Subject: added hot swap detection messages --- .../at/hannibal2/skyhanni/test/HotSwapDetection.kt | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/main/java/at/hannibal2/skyhanni/test/HotSwapDetection.kt (limited to 'src/main/java/at/hannibal2/skyhanni/test') diff --git a/src/main/java/at/hannibal2/skyhanni/test/HotSwapDetection.kt b/src/main/java/at/hannibal2/skyhanni/test/HotSwapDetection.kt new file mode 100644 index 000000000..e3acc25e7 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/test/HotSwapDetection.kt @@ -0,0 +1,53 @@ +package at.hannibal2.skyhanni.test + +import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.data.MinecraftData +import at.hannibal2.skyhanni.utils.LorenzUtils +import kotlin.concurrent.fixedRateTimer + +object HotSwapDetection { + private val config get() = SkyHanniMod.feature.dev.debug + + private var latestTick = 0 + private var lastTps = 0 + private var hotswap = false + + init { + fixedRateTimer(name = "skyhanni-tps-counter-seconds", period = 1000L) { + val currentTick = MinecraftData.totalTicks + val diff = currentTick - latestTick + latestTick = currentTick + + // we count 2 client ticks per tick, we are bad + handleTps(diff / 2) + } + } + + private fun handleTps(tps: Int) { + if (!config.hotSwapDetection) return + + // ignore below one minute + if (latestTick < 20 * 60) return + + println("diff: $tps") + + if (tps < 5) { + LorenzUtils.debug("Lags! Only $tps tps") + } + + if (!hotswap) { + if (tps < 2) { + if (lastTps > 15) { + LorenzUtils.debug("Detected hotswap now!") + hotswap = true + } + } + } else { + if (tps > 15) { + hotswap = false + LorenzUtils.debug("Detected hotswap end!") + } + } + lastTps = tps + } +} -- cgit