aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/data
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal00212@users.noreply.github.com>2022-09-24 19:46:16 +0200
committerhannibal2 <24389977+hannibal00212@users.noreply.github.com>2022-09-24 19:46:16 +0200
commit8473e51483dfed0acf3ce7539a001022fa04231b (patch)
tree73c472e7372536c5a6ebdb5e325dbed9e0aa4c37 /src/main/java/at/hannibal2/skyhanni/data
parentd72c67ce53f5114152294df4317b6c9d3639ddf3 (diff)
downloadSkyHanni-8473e51483dfed0acf3ce7539a001022fa04231b.tar.gz
SkyHanni-8473e51483dfed0acf3ce7539a001022fa04231b.tar.bz2
SkyHanni-8473e51483dfed0acf3ce7539a001022fa04231b.zip
slayer quest warnings and slayer drops
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt31
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/ScoreboardData.kt39
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/SendTitleHelper.kt42
3 files changed, 100 insertions, 12 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt b/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt
index 929515283..fc458b6d2 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt
@@ -1,6 +1,6 @@
package at.hannibal2.skyhanni.data
-import at.hannibal2.skyhanni.events.LocationChangeEvent
+import at.hannibal2.skyhanni.events.IslandChangeEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.events.ProfileJoinEvent
import at.hannibal2.skyhanni.utils.LorenzLogger
@@ -17,10 +17,21 @@ class HypixelData {
companion object {
var hypixel = false
var skyblock = false
- var skyBlockArea: String = ""
+ var skyBlockIsland: String = ""
+
+ fun readSkyBlockArea(): String {
+ for (line in ScoreboardData.sidebarLinesFormatted()) {
+ if (line.startsWith(" §7⏣ ")) {
+ return line.substring(5).removeColor()
+ }
+ }
+
+ return "invalid"
+ }
+
}
- var loggerLocationChange = LorenzLogger("debug/location_change")
+ var loggerIslandChange = LorenzLogger("debug/island_change")
@SubscribeEvent
fun onConnect(event: FMLNetworkEvent.ClientConnectedToServerEvent) {
@@ -79,24 +90,24 @@ class HypixelData {
}
private fun checkMode() {
- var newArea = ""
+ var newIsland = ""
var guesting = false
for (line in TabListUtils.getTabList()) {
if (line.startsWith("§r§b§lArea: ")) {
- newArea = line.split(": ")[1].removeColor()
+ newIsland = line.split(": ")[1].removeColor()
}
if (line == "§r Status: §r§9Guest§r") {
guesting = true
}
}
if (guesting) {
- newArea = "$newArea guesting"
+ newIsland = "$newIsland guesting"
}
- if (skyBlockArea != newArea) {
- LocationChangeEvent(newArea, skyBlockArea).postAndCatch()
- loggerLocationChange.log(newArea)
- skyBlockArea = newArea
+ if (skyBlockIsland != newIsland) {
+ IslandChangeEvent(newIsland, skyBlockIsland).postAndCatch()
+ loggerIslandChange.log(newIsland)
+ skyBlockIsland = newIsland
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/data/ScoreboardData.kt b/src/main/java/at/hannibal2/skyhanni/data/ScoreboardData.kt
index 4fe80a0ac..495deabb9 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/ScoreboardData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/ScoreboardData.kt
@@ -11,6 +11,42 @@ import net.minecraftforge.fml.common.gameevent.TickEvent
class ScoreboardData {
companion object {
+
+ private val splitIcons = listOf(
+ "\uD83C\uDF6B",
+ "\uD83D\uDCA3",
+ "\uD83D\uDC7D",
+ "\uD83D\uDD2E",
+ "\uD83D\uDC0D",
+ "\uD83D\uDC7E",
+ "\uD83C\uDF20",
+ "\uD83C\uDF6D",
+ "⚽",
+ "\uD83C\uDFC0",
+ "\uD83D\uDC79",
+ "\uD83C\uDF81",
+ "\uD83C\uDF89",
+ "\uD83C\uDF82",
+ )
+
+ fun sidebarLinesFormatted(): List<String> {
+ val list = mutableListOf<String>()
+ for (line in sidebarLinesRaw) {
+ val seperator = splitIcons.find { line.contains(it) }!!
+ val split = line.split(seperator)
+ val start = split[0]
+ var end = split[1]
+ if (end.length >= 2) {
+ end = end.substring(2)
+ }
+
+ list.add(start+end)
+
+ }
+
+ return list
+ }
+
var sidebarLines: List<String> = emptyList()
var sidebarLinesRaw: List<String> = emptyList()
}
@@ -33,8 +69,7 @@ class ScoreboardData {
val objective = scoreboard.getObjectiveInDisplaySlot(1) ?: return emptyList()
var scores = scoreboard.getSortedScores(objective)
val list = scores.filter { input: Score? ->
- input != null && input.playerName != null && !input.playerName
- .startsWith("#")
+ input != null && input.playerName != null && !input.playerName.startsWith("#")
}
scores = if (list.size > 15) {
list.drop(15)
diff --git a/src/main/java/at/hannibal2/skyhanni/data/SendTitleHelper.kt b/src/main/java/at/hannibal2/skyhanni/data/SendTitleHelper.kt
new file mode 100644
index 000000000..eda151f97
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/data/SendTitleHelper.kt
@@ -0,0 +1,42 @@
+package at.hannibal2.skyhanni.data
+
+import at.hannibal2.skyhanni.config.core.util.render.TextRenderUtils
+import net.minecraft.client.Minecraft
+import net.minecraft.client.gui.ScaledResolution
+import net.minecraft.client.renderer.GlStateManager
+import net.minecraftforge.client.event.RenderGameOverlayEvent
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+
+class SendTitleHelper {
+
+ companion object {
+ private var textToRender = ""
+ private var endTime = 0L
+
+ fun sendTitle(text: String, duration: Int) {
+ textToRender = text
+ endTime = System.currentTimeMillis() + duration
+ }
+ }
+
+ @SubscribeEvent
+ fun renderOverlay(event: RenderGameOverlayEvent.Post) {
+ if (event.type != RenderGameOverlayEvent.ElementType.ALL) return
+
+ if (System.currentTimeMillis() > endTime) return
+
+ val scaledResolution = ScaledResolution(Minecraft.getMinecraft())
+ val width = scaledResolution.scaledWidth
+ val height = scaledResolution.scaledHeight
+
+ GlStateManager.enableBlend()
+ GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0)
+ val renderer = Minecraft.getMinecraft().fontRendererObj
+
+ GlStateManager.pushMatrix()
+ GlStateManager.translate((width / 2).toFloat(), (height / 1.8).toFloat(), 0.0f)
+ GlStateManager.scale(4.0f, 4.0f, 4.0f)
+ TextRenderUtils.drawStringCenteredScaledMaxWidth(textToRender, renderer, 0f, 0f, false, 75, 0)
+ GlStateManager.popMatrix()
+ }
+} \ No newline at end of file