diff options
| author | ronald <inglettronald@gmail.com> | 2023-07-29 00:13:53 -0500 |
|---|---|---|
| committer | ronald <inglettronald@gmail.com> | 2023-07-29 00:13:53 -0500 |
| commit | d3e13e38e22b8eecd5198c59cf6a132cc9425b33 (patch) | |
| tree | e70a8fdc86d00cf22a281fcde09b856f09b45a11 /src/main/kotlin/com/dulkirfabric/util | |
| parent | 71b8238eff91de0243e641c2eeadacd61b8f0f88 (diff) | |
| download | DulkirMod-Fabric-d3e13e38e22b8eecd5198c59cf6a132cc9425b33.tar.gz DulkirMod-Fabric-d3e13e38e22b8eecd5198c59cf6a132cc9425b33.tar.bz2 DulkirMod-Fabric-d3e13e38e22b8eecd5198c59cf6a132cc9425b33.zip | |
Lots of slayer backend and a smattering of random features (Lightning/fire culling, chat stacking improvements, aotv highlight stuff, etc)
Diffstat (limited to 'src/main/kotlin/com/dulkirfabric/util')
| -rw-r--r-- | src/main/kotlin/com/dulkirfabric/util/ScoreBoardUtils.kt | 26 | ||||
| -rw-r--r-- | src/main/kotlin/com/dulkirfabric/util/Utils.kt | 13 |
2 files changed, 34 insertions, 5 deletions
diff --git a/src/main/kotlin/com/dulkirfabric/util/ScoreBoardUtils.kt b/src/main/kotlin/com/dulkirfabric/util/ScoreBoardUtils.kt index fb2f967..c62cbab 100644 --- a/src/main/kotlin/com/dulkirfabric/util/ScoreBoardUtils.kt +++ b/src/main/kotlin/com/dulkirfabric/util/ScoreBoardUtils.kt @@ -2,6 +2,8 @@ package com.dulkirfabric.util import com.dulkirfabric.DulkirModFabric import com.dulkirfabric.events.LongUpdateEvent +import com.dulkirfabric.events.PlaySoundEvent +import com.dulkirfabric.events.SlayerBossEvents import meteordevelopment.orbit.EventHandler import net.minecraft.scoreboard.Team import net.minecraft.text.StringVisitable @@ -13,6 +15,7 @@ import java.util.* object ScoreBoardUtils { var hasActiveSlayerQuest = false + var slayerType: String? = "" /** * Gets Scoreboard lines, will return null if not in Skyblock. @@ -77,8 +80,27 @@ object ScoreBoardUtils { @EventHandler fun updateUtility(event: LongUpdateEvent) { val lines = getLines() ?: return - hasActiveSlayerQuest = lines.any { - it.contains("Slayer Quest") + lines.forEach { + when { + it.contains("Slayer Quest") -> { + hasActiveSlayerQuest = true + val i = lines.indexOf(it) + 1 + if (i == 0) return err() + slayerType = lines[i] + } + } } } + + @EventHandler + fun onSound(event: PlaySoundEvent) { + if (event.sound.id.path != "entity.wither.shoot") return + if (event.sound.pitch != 0.6984127f) return + if (event.sound.volume != .5f) return + SlayerBossEvents.Spawn(slayerType?: return err()).post() + } + + fun err() { + TextUtils.info("ยง6Error Determining active slayer type, please report.") + } }
\ No newline at end of file diff --git a/src/main/kotlin/com/dulkirfabric/util/Utils.kt b/src/main/kotlin/com/dulkirfabric/util/Utils.kt index 93597d2..1f781d3 100644 --- a/src/main/kotlin/com/dulkirfabric/util/Utils.kt +++ b/src/main/kotlin/com/dulkirfabric/util/Utils.kt @@ -1,6 +1,9 @@ package com.dulkirfabric.util import com.dulkirfabric.events.PlaySoundEvent +import com.dulkirfabric.events.SlayerBossEvents +import com.dulkirfabric.events.chat.ChatEvents +import meteordevelopment.orbit.EventHandler import net.minecraft.entity.Entity import net.minecraft.util.math.Vec3d @@ -13,9 +16,7 @@ object Utils { * Prints relevant information about a sound that is being displayed */ fun debugSound(event: PlaySoundEvent) { - if (event.sound.id.path == "entity.player.hurt" - && event.sound.pitch == 0f - && event.sound.volume == 0f) return + if (event.sound.id.path == "entity.player.hurt") return println("Path: ${event.sound.id.path}") println("Pitch: ${event.sound.pitch}") println("Volume: ${event.sound.volume}") @@ -32,4 +33,10 @@ object Utils { val prevPos = Vec3d(this.prevX, this.prevY, this.prevZ) return lerp(prevPos, this.pos, tickDelta) } + + @EventHandler + fun detectSlayerKill(event: ChatEvents.AllowChat) { + if (event.message.string.trim() != "SLAYER QUEST COMPLETE!") return + SlayerBossEvents.Kill(ScoreBoardUtils.slayerType?: return ScoreBoardUtils.err()).post() + } }
\ No newline at end of file |
