From 51616771a0ebb98b7b63703562ad334ac418d1a6 Mon Sep 17 00:00:00 2001 From: Lorenz Date: Tue, 23 Aug 2022 13:00:01 +0200 Subject: added display to show last time a minion was cleared --- .../java/at/hannibal2/skyhanni/data/HypixelData.kt | 36 +++++++++++++++++++--- .../java/at/hannibal2/skyhanni/data/OtherMod.kt | 4 +-- 2 files changed, 34 insertions(+), 6 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/data') diff --git a/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt b/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt index f8ee0a299..98370fee7 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt @@ -1,9 +1,11 @@ package at.hannibal2.skyhanni.data +import at.hannibal2.skyhanni.events.LocationChangeEvent import at.hannibal2.skyhanni.events.LorenzChatEvent import at.hannibal2.skyhanni.events.PacketEvent import at.hannibal2.skyhanni.events.ProfileJoinEvent import at.hannibal2.skyhanni.utils.StringUtils.removeColor +import at.hannibal2.skyhanni.utils.TabListUtils import net.minecraft.client.Minecraft import net.minecraft.network.play.server.S38PacketPlayerListItem import net.minecraftforge.event.world.WorldEvent @@ -17,6 +19,7 @@ class HypixelData { var hypixel = false var skyblock = false var dungeon = false + var mode: String = "" } @SubscribeEvent @@ -74,23 +77,48 @@ class HypixelData { } } - var timerTick = 0 + var tick = 0 @SubscribeEvent fun onTick(event: TickEvent.ClientTickEvent) { if (!hypixel) return if (event.phase != TickEvent.Phase.START) return - timerTick++ + tick++ - if (timerTick % 5 != 0) return + if (tick % 5 != 0) return val newState = checkScoreboard() - if (newState == skyblock) return + if (newState) { + checkMode() + } + if (newState == skyblock) return skyblock = newState } + private fun checkMode() { + var location = "" + var guesting = false + for (line in TabListUtils.getTabList()) { + if (line.startsWith("§r§b§lArea: ")) { + location = line.split(": ")[1].removeColor() + } + if (line == "§r Status: §r§9Guest§r") { + guesting = true + } + } + if (guesting) { + location = "$location guesting" + } + + if (mode != location) { + LocationChangeEvent(location, mode).postAndCatch() + println("SkyHanni location change: '$location'") + mode = location + } + } + private fun checkScoreboard(): Boolean { val minecraft = Minecraft.getMinecraft() val world = minecraft.theWorld ?: return false diff --git a/src/main/java/at/hannibal2/skyhanni/data/OtherMod.kt b/src/main/java/at/hannibal2/skyhanni/data/OtherMod.kt index 04f2a4d4f..391d66975 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/OtherMod.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/OtherMod.kt @@ -1,6 +1,6 @@ package at.hannibal2.skyhanni.data -import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigManager import com.google.gson.JsonObject import java.io.BufferedReader @@ -38,5 +38,5 @@ enum class OtherMod(val modName: String, val configPath: String, val readKey: (B } fun getJson(reader: BufferedReader): JsonObject { - return SkyHanniMod.gson.fromJson(reader, com.google.gson.JsonObject::class.java) + return ConfigManager.gson.fromJson(reader, com.google.gson.JsonObject::class.java) } \ No newline at end of file -- cgit