aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/com/ambientaddons/utils/dungeon
diff options
context:
space:
mode:
authorAppability <appable@icloud.com>2022-10-12 20:48:51 -0700
committerAppability <appable@icloud.com>2022-10-12 20:48:51 -0700
commitc599ee0d78ed8bc17488636f2d9b9b1d5b6dd4a8 (patch)
treef362a5f60f31e27f1567c7319a78d861b19430a7 /src/main/kotlin/com/ambientaddons/utils/dungeon
parent03728b81851af00cd265fadd4ce6eaa3a8066dcb (diff)
downloadAmbientAddons-c599ee0d78ed8bc17488636f2d9b9b1d5b6dd4a8.tar.gz
AmbientAddons-c599ee0d78ed8bc17488636f2d9b9b1d5b6dd4a8.tar.bz2
AmbientAddons-c599ee0d78ed8bc17488636f2d9b9b1d5b6dd4a8.zip
uh a lot of things
Diffstat (limited to 'src/main/kotlin/com/ambientaddons/utils/dungeon')
-rw-r--r--src/main/kotlin/com/ambientaddons/utils/dungeon/DungeonClass.kt16
-rw-r--r--src/main/kotlin/com/ambientaddons/utils/dungeon/DungeonPlayer.kt6
-rw-r--r--src/main/kotlin/com/ambientaddons/utils/dungeon/DungeonPlayers.kt28
3 files changed, 50 insertions, 0 deletions
diff --git a/src/main/kotlin/com/ambientaddons/utils/dungeon/DungeonClass.kt b/src/main/kotlin/com/ambientaddons/utils/dungeon/DungeonClass.kt
new file mode 100644
index 0000000..75442d0
--- /dev/null
+++ b/src/main/kotlin/com/ambientaddons/utils/dungeon/DungeonClass.kt
@@ -0,0 +1,16 @@
+package com.ambientaddons.utils.dungeon
+
+enum class DungeonClass {
+ Healer, Tank, Mage, Archer, Berserk;
+
+ companion object {
+ fun fromString(str: String?): DungeonClass? = when (str?.lowercase()) {
+ "healer" -> Healer
+ "tank" -> Tank
+ "mage" -> Mage
+ "archer" -> Archer
+ "berserk" -> Berserk
+ else -> null
+ }
+ }
+} \ No newline at end of file
diff --git a/src/main/kotlin/com/ambientaddons/utils/dungeon/DungeonPlayer.kt b/src/main/kotlin/com/ambientaddons/utils/dungeon/DungeonPlayer.kt
new file mode 100644
index 0000000..b7903f5
--- /dev/null
+++ b/src/main/kotlin/com/ambientaddons/utils/dungeon/DungeonPlayer.kt
@@ -0,0 +1,6 @@
+package com.ambientaddons.utils.dungeon
+
+data class DungeonPlayer(val name: String) {
+ var dungeonClass: DungeonClass? = null
+ var isAlive: Boolean = true
+}
diff --git a/src/main/kotlin/com/ambientaddons/utils/dungeon/DungeonPlayers.kt b/src/main/kotlin/com/ambientaddons/utils/dungeon/DungeonPlayers.kt
new file mode 100644
index 0000000..ba21a04
--- /dev/null
+++ b/src/main/kotlin/com/ambientaddons/utils/dungeon/DungeonPlayers.kt
@@ -0,0 +1,28 @@
+package com.ambientaddons.utils.dungeon
+
+import com.ambientaddons.utils.Extensions.stripControlCodes
+import com.ambientaddons.utils.Area
+import com.ambientaddons.utils.SkyBlock
+import com.ambientaddons.utils.TabListUtils
+import com.ambientaddons.utils.text
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import net.minecraftforge.fml.common.gameevent.TickEvent.ClientTickEvent
+
+object DungeonPlayers {
+ private val playerRegex = Regex("^\\[\\d{1,3}] (?<name>[\\w]{3,16}) (?:.*)*\\((?:(?<class>Healer|Tank|Berserk|Mage|Archer) (?<level>[XVIL0]+)|(?<status>DEAD|EMPTY))\\)")
+ var playerCount = 0
+ private val playerSlots = listOf(5, 9, 13, 17, 1)
+ private var ticks = 0
+
+ @SubscribeEvent
+ fun onTick(event: ClientTickEvent) {
+ if (SkyBlock.area != Area.Dungeon) return
+ if (ticks % 10 == 0) {
+ val rawPlayers = TabListUtils.fetchTabEntries().let { tabEntries ->
+ playerSlots.map { tabEntries[it].text.stripControlCodes() }
+ }
+ playerCount = rawPlayers.size
+ }
+ ticks++
+ }
+} \ No newline at end of file