From 531506dcf7b61e2dea50e14bfe32e9547f7997be Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Fri, 23 Sep 2022 20:40:58 +0200 Subject: code cleanup --- .../java/at/hannibal2/skyhanni/SkyHanniMod.java | 4 +- .../features/slayer/blaze/BlazeSlayerPillar.kt | 81 +++++++++++++++++++++ .../slayer/blaze/BlazeSlayerPillarTimer.kt | 85 ---------------------- 3 files changed, 83 insertions(+), 87 deletions(-) create mode 100644 src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerPillar.kt delete mode 100644 src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerPillarTimer.kt (limited to 'src') diff --git a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java index 2805354b4..da0e6ca78 100644 --- a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java +++ b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java @@ -33,7 +33,7 @@ import at.hannibal2.skyhanni.features.slayer.EndermanSlayerBeacon; import at.hannibal2.skyhanni.features.slayer.HideMobNames; import at.hannibal2.skyhanni.features.slayer.HighlightSlayerMiniboss; import at.hannibal2.skyhanni.features.slayer.blaze.BlazeSlayerDaggerHelper; -import at.hannibal2.skyhanni.features.slayer.blaze.BlazeSlayerPillarTimer; +import at.hannibal2.skyhanni.features.slayer.blaze.BlazeSlayerPillar; import at.hannibal2.skyhanni.features.summonings.SummoningMobManager; import at.hannibal2.skyhanni.features.summonings.SummoningSoulsName; import at.hannibal2.skyhanni.test.LorenzTest; @@ -133,7 +133,7 @@ public class SkyHanniMod { registerEvent(new HideMobNames()); registerEvent(new HideDamageSplash()); registerEvent(new ThunderSparksHighlight()); - registerEvent(new BlazeSlayerPillarTimer()); + registerEvent(new BlazeSlayerPillar()); registerEvent(new BlazeSlayerDaggerHelper()); registerEvent(new PlayerChatFilter()); registerEvent(new HideArmor()); diff --git a/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerPillar.kt b/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerPillar.kt new file mode 100644 index 000000000..2612f8aa8 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerPillar.kt @@ -0,0 +1,81 @@ +package at.hannibal2.skyhanni.features.slayer.blaze + +import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.events.LorenzChatEvent +import at.hannibal2.skyhanni.features.damageindicator.BossType +import at.hannibal2.skyhanni.features.damageindicator.DamageIndicatorManager +import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.LorenzUtils.matchRegex +import at.hannibal2.skyhanni.utils.RenderUtils.renderString +import net.minecraft.client.Minecraft +import net.minecraft.entity.item.EntityArmorStand +import net.minecraftforge.client.event.RenderGameOverlayEvent +import net.minecraftforge.event.world.WorldEvent +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent +import net.minecraftforge.fml.common.gameevent.TickEvent +import java.text.DecimalFormat +import java.util.regex.Pattern + +class BlazeSlayerPillar { + + private var patternPillarExploded = Pattern.compile("§cYou took §r§f(.+) §r§ctrue damage from an exploding fire pillar!") + private var lastPillarSpawnTime = -1L + private val pillarEntities = mutableListOf() + + @SubscribeEvent + fun onTick(event: TickEvent.ClientTickEvent) { + if (!isEnabled()) return + for (armorStand in Minecraft.getMinecraft().theWorld.loadedEntityList.filterIsInstance()) { + val name = armorStand.name + if (name.matchRegex("§6§l.s §c§l8 hits")) { + if (armorStand !in pillarEntities) { + pillarEntities.add(armorStand) + lastPillarSpawnTime = System.currentTimeMillis() + } + } + } + } + + @SubscribeEvent + fun onChatMessage(event: LorenzChatEvent) { + if (!isEnabled()) return + + val message = event.message + val matcher = patternPillarExploded.matcher(message) + if (matcher.matches()) { + lastPillarSpawnTime = -1L + } + if (message == " §r§a§lSLAYER QUEST COMPLETE!") { + lastPillarSpawnTime = -1L + } + + if (message == "§eYour Slayer boss was despawned, but you have kept your quest progress!") { + lastPillarSpawnTime = -1L + } + } + + @SubscribeEvent + fun renderOverlay(event: RenderGameOverlayEvent.Post) { + if (!isEnabled()) return + if (lastPillarSpawnTime == -1L) return + + val duration = System.currentTimeMillis() - lastPillarSpawnTime + val maxDuration = 7_000 + + val remainingLong = maxDuration - duration + val remaining = (remainingLong.toFloat() / 1000) + val format = DecimalFormat("0.0").format(remaining + 0.1) + SkyHanniMod.feature.slayer.firePillarsPos.renderString("§cBlaze Pillar: §a${format}s") + } + + private fun isEnabled(): Boolean { + return LorenzUtils.inSkyblock && SkyHanniMod.feature.slayer.firePillars && DamageIndicatorManager.isBossSpawned( + BossType.SLAYER_BLAZE_2, BossType.SLAYER_BLAZE_3, BossType.SLAYER_BLAZE_4 + ) + } + + @SubscribeEvent + fun onWorldChange(event: WorldEvent.Load) { + pillarEntities.clear() + } +} \ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerPillarTimer.kt b/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerPillarTimer.kt deleted file mode 100644 index b75da2cc5..000000000 --- a/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerPillarTimer.kt +++ /dev/null @@ -1,85 +0,0 @@ -package at.hannibal2.skyhanni.features.slayer.blaze - -import at.hannibal2.skyhanni.SkyHanniMod -import at.hannibal2.skyhanni.events.LorenzChatEvent -import at.hannibal2.skyhanni.features.damageindicator.BossType -import at.hannibal2.skyhanni.features.damageindicator.DamageIndicatorManager -import at.hannibal2.skyhanni.utils.LorenzUtils -import at.hannibal2.skyhanni.utils.LorenzUtils.matchRegex -import at.hannibal2.skyhanni.utils.RenderUtils.renderString -import net.minecraft.client.Minecraft -import net.minecraft.entity.item.EntityArmorStand -import net.minecraftforge.client.event.RenderGameOverlayEvent -import net.minecraftforge.event.world.WorldEvent -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent -import net.minecraftforge.fml.common.gameevent.TickEvent -import java.text.DecimalFormat -import java.util.regex.Pattern - -class BlazeSlayerPillarTimer { - - private var pattern = Pattern.compile("§cYou took §r§f(.+) §r§ctrue damage from an exploding fire pillar!") - - private var lastFound = -1L - - private val pillarTimerEntities = mutableListOf() - - var tick = 0 - - @SubscribeEvent - fun onTick(event: TickEvent.ClientTickEvent) { - if (!isEnabled()) return - for (armorStand in Minecraft.getMinecraft().theWorld.loadedEntityList.filterIsInstance()) { - val name = armorStand.name - if (name.matchRegex("§6§l.s §c§l8 hits")) { - if (armorStand !in pillarTimerEntities) { - pillarTimerEntities.add(armorStand) - lastFound = System.currentTimeMillis() - } - } - } - } - - @SubscribeEvent - fun onChatMessage(event: LorenzChatEvent) { - if (!isEnabled()) return - - val message = event.message - val matcher = pattern.matcher(message) - if (matcher.matches()) { - lastFound = -1L - } - if (message == " §r§a§lSLAYER QUEST COMPLETE!") { - lastFound = -1L - } - - if (message == "§eYour Slayer boss was despawned, but you have kept your quest progress!") { - lastFound = -1L - } - } - - @SubscribeEvent - fun renderOverlay(event: RenderGameOverlayEvent.Post) { - if (!isEnabled()) return - if (lastFound == -1L) return - - val duration = System.currentTimeMillis() - lastFound - val maxDuration = 7_000 - - val remainingLong = maxDuration - duration - val remaining = (remainingLong.toFloat() / 1000) - val format = DecimalFormat("0.0").format(remaining + 0.1) - SkyHanniMod.feature.slayer.firePillarsPos.renderString("§cBlaze Pillar: §a${format}s") - } - - private fun isEnabled(): Boolean { - return LorenzUtils.inSkyblock && SkyHanniMod.feature.slayer.firePillars && DamageIndicatorManager.isBossSpawned( - BossType.SLAYER_BLAZE_2, BossType.SLAYER_BLAZE_3, BossType.SLAYER_BLAZE_4 - ) - } - - @SubscribeEvent - fun onWorldChange(event: WorldEvent.Load) { - pillarTimerEntities.clear() - } -} \ No newline at end of file -- cgit