summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/combat
diff options
context:
space:
mode:
authorThunderblade73 <85900443+Thunderblade73@users.noreply.github.com>2024-02-10 00:24:52 +0100
committerGitHub <noreply@github.com>2024-02-10 00:24:52 +0100
commit4559e5ff05e19817a21ae49f1c0d8a97d273f6a1 (patch)
treee72dac91d07fc84bea80548c89e13276caa68b81 /src/main/java/at/hannibal2/skyhanni/features/combat
parentd3a7cc4ab970b457b7950489da781539e45e0dce (diff)
downloadskyhanni-4559e5ff05e19817a21ae49f1c0d8a97d273f6a1.tar.gz
skyhanni-4559e5ff05e19817a21ae49f1c0d8a97d273f6a1.tar.bz2
skyhanni-4559e5ff05e19817a21ae49f1c0d8a97d273f6a1.zip
Splitting many utils functions from LorenzUtils up into other classes: ChatUtils, CollectionUtils, ConditionalUtils. And code cleanup #978
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/combat')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/combat/BestiaryData.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/BossType.kt19
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/DamageCounter.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/DamageIndicatorManager.kt34
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/EntityData.kt1
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/MobFinder.kt35
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/combat/endernodetracker/EnderNodeTracker.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/combat/ghostcounter/GhostCounter.kt13
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/combat/ghostcounter/GhostUtil.kt8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/combat/mobs/AreaMiniBossFeatures.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/combat/mobs/AshfangMinisNametagHider.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/combat/mobs/MobHighlight.kt1
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/combat/mobs/SpawnTimers.kt12
13 files changed, 81 insertions, 72 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/BestiaryData.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/BestiaryData.kt
index 49526c6f8..a5b0cd386 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/combat/BestiaryData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/combat/BestiaryData.kt
@@ -9,12 +9,12 @@ import at.hannibal2.skyhanni.events.GuiContainerEvent
import at.hannibal2.skyhanni.events.GuiRenderEvent
import at.hannibal2.skyhanni.events.InventoryCloseEvent
import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
+import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.ConfigUtils
import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.LorenzColor
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.LorenzUtils.addButton
import at.hannibal2.skyhanni.utils.NumberUtil
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
@@ -168,7 +168,8 @@ object BestiaryData {
for ((lineIndex, line) in stack.getLore().withIndex()) {
val loreLine = line.removeColor()
if (loreLine.startsWith("Kills: ")) {
- actualRealTotalKill = "([0-9,.]+)".toRegex().find(loreLine)?.groupValues?.get(1)?.formatNumber() ?: 0
+ actualRealTotalKill = "([0-9,.]+)".toRegex().find(loreLine)?.groupValues?.get(1)?.formatNumber()
+ ?: 0
}
if (!loreLine.startsWith(" ")) continue
val previousLine = stack.getLore()[lineIndex - 1]
@@ -437,7 +438,7 @@ object BestiaryData {
val name: String,
val familiesFound: Long,
val totalFamilies: Long,
- val familiesCompleted: Long
+ val familiesCompleted: Long,
)
data class BestiaryMob(
@@ -447,7 +448,7 @@ object BestiaryData {
var totalKills: Long,
var killNeededForNextLevel: Long,
var currentKillToNextLevel: Long,
- var actualRealTotalKill: Long
+ var actualRealTotalKill: Long,
) {
fun killNeededToMax(): Long {
@@ -482,5 +483,4 @@ object BestiaryData {
}
private fun isEnabled() = LorenzUtils.inSkyBlock && config.enabled
-
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/BossType.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/BossType.kt
index 8f419f803..5562a4bf4 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/BossType.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/BossType.kt
@@ -8,9 +8,10 @@ enum class BossType(
val fullName: String,
val bossTypeToggle: Type,
val shortName: String = fullName,
- val showDeathTime: Boolean = false
+ val showDeathTime: Boolean = false,
) {
- //Nether Mini Bosses
+
+ // Nether Mini Bosses
NETHER_BLADESOUL("§8Bladesoul", Type.NETHER_MINI_BOSSES),
NETHER_MAGMA_BOSS("§4Magma Boss", Type.NETHER_MINI_BOSSES),
NETHER_ASHFANG("§cAshfang", Type.NETHER_MINI_BOSSES),
@@ -20,7 +21,7 @@ enum class BossType(
NETHER_VANQUISHER("§5Vanquisher", Type.VANQUISHER),
END_ENDSTONE_PROTECTOR("§cEndstone Protector", Type.ENDERSTONE_PROTECTOR),
- END_ENDER_DRAGON("Ender Dragon", Type.ENDER_DRAGON),//TODO fix totally
+ END_ENDER_DRAGON("Ender Dragon", Type.ENDER_DRAGON),// TODO fix totally
SLAYER_ZOMBIE_1("§aRevenant Horror 1", Type.REVENANT_HORROR, "§aRev 1", showDeathTime = true),
SLAYER_ZOMBIE_2("§eRevenant Horror 2", Type.REVENANT_HORROR, "§eRev 2", showDeathTime = true),
@@ -66,7 +67,6 @@ enum class BossType(
HUB_HEADLESS_HORSEMAN("§6Headless Horseman", Type.HEADLESS_HORSEMAN),
-
DUNGEON_F1_BONZO_FIRST("§cFunny Bonzo", Type.DUNGEON_FLOOR_1),
DUNGEON_F1_BONZO_SECOND("§cSad Bonzo", Type.DUNGEON_FLOOR_1),
@@ -106,7 +106,7 @@ enum class BossType(
LEECH_SUPREME("§cLeech Supreme", Type.THE_RIFT_BOSSES),
BACTE("§aBacte", Type.THE_RIFT_BOSSES),
- WINTER_REINDRAKE("Reindrake", Type.REINDRAKE),//TODO fix totally
+ WINTER_REINDRAKE("Reindrake", Type.REINDRAKE),// TODO fix totally
GARDEN_PEST_BEETLE("§cBeetle", Type.GARDEN_PESTS),
GARDEN_PEST_CRICKET("§cCricket", Type.GARDEN_PESTS),
@@ -119,11 +119,10 @@ enum class BossType(
GARDEN_PEST_SLUG("§cSlug", Type.GARDEN_PESTS),
GARDEN_PEST_EARTHWORM("§cEarthworm", Type.GARDEN_PESTS),
- //TODO arachne
-
- //TODO corelone
- //TODO bal
+ // TODO arachne
+ // TODO corelone
+ // TODO bal
/**
* TODO dungeon mini bosses
@@ -136,5 +135,5 @@ enum class BossType(
*
*/
- //TODO diana mythological creatures
+ // TODO diana mythological creatures
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/DamageCounter.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/DamageCounter.kt
index 1595b728a..9bf83e04e 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/DamageCounter.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/DamageCounter.kt
@@ -8,5 +8,4 @@ class DamageCounter {
var currentHealing = 0L
var oldDamages = LinkedList<OldDamage>()
var firstTick = 0L
-
-} \ No newline at end of file
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/DamageIndicatorManager.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/DamageIndicatorManager.kt
index 3e6b2e6da..b87002c0e 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/DamageIndicatorManager.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/DamageIndicatorManager.kt
@@ -18,6 +18,9 @@ import at.hannibal2.skyhanni.features.dungeon.DungeonAPI
import at.hannibal2.skyhanni.features.slayer.blaze.HellionShield
import at.hannibal2.skyhanni.features.slayer.blaze.setHellionShield
import at.hannibal2.skyhanni.test.command.ErrorManager
+import at.hannibal2.skyhanni.utils.ChatUtils
+import at.hannibal2.skyhanni.utils.CollectionUtils.editCopy
+import at.hannibal2.skyhanni.utils.CollectionUtils.put
import at.hannibal2.skyhanni.utils.ConfigUtils
import at.hannibal2.skyhanni.utils.EntityUtils
import at.hannibal2.skyhanni.utils.EntityUtils.canBeSeen
@@ -28,10 +31,7 @@ import at.hannibal2.skyhanni.utils.LocationUtils.distanceToPlayer
import at.hannibal2.skyhanni.utils.LorenzColor
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.LorenzUtils.baseMaxHealth
-import at.hannibal2.skyhanni.utils.LorenzUtils.editCopy
-import at.hannibal2.skyhanni.utils.LorenzUtils.put
import at.hannibal2.skyhanni.utils.LorenzUtils.round
-import at.hannibal2.skyhanni.utils.LorenzUtils.ticks
import at.hannibal2.skyhanni.utils.LorenzVec
import at.hannibal2.skyhanni.utils.NumberUtil
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
@@ -41,6 +41,7 @@ import at.hannibal2.skyhanni.utils.SimpleTimeMark.Companion.asTimeMark
import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
import at.hannibal2.skyhanni.utils.StringUtils.removeColor
import at.hannibal2.skyhanni.utils.TimeUtils.format
+import at.hannibal2.skyhanni.utils.TimeUtils.ticks
import at.hannibal2.skyhanni.utils.getLorenzVec
import com.google.gson.JsonArray
import net.minecraft.client.Minecraft
@@ -71,6 +72,7 @@ class DamageIndicatorManager {
private val enderSlayerHitsNumberPattern = ".* §[5fd]§l(?<hits>\\d+) Hits?".toPattern()
companion object {
+
private var data = mapOf<UUID, EntityData>()
private val damagePattern = "[✧✯]?(\\d+[⚔+✧❤♞☄✷ﬗ✯]*)".toPattern()
@@ -129,7 +131,7 @@ class DamageIndicatorManager {
GlStateManager.disableDepth()
GlStateManager.disableCull()
- //TODO config to define between 100ms and 5 sec
+ // TODO config to define between 100ms and 5 sec
val filter = data.filter {
val waitForRemoval = if (it.value.dead && !noDeathDisplay(it.value.bossType)) 4_000 else 100
(System.currentTimeMillis() > it.value.timeLastTick + waitForRemoval) || (it.value.dead && noDeathDisplay(it.value.bossType))
@@ -169,7 +171,7 @@ class DamageIndicatorManager {
for (data in data.values) {
- //TODO test end stone protector in hole? - maybe change eye pos
+ // TODO test end stone protector in hole? - maybe change eye pos
// data.ignoreBlocks =
// data.bossType == BossType.END_ENDSTONE_PROTECTOR && Minecraft.getMinecraft().thePlayer.isSneaking
@@ -266,7 +268,6 @@ class DamageIndicatorManager {
diff += 9f
}
}
-
}
GlStateManager.enableDepth()
GlStateManager.enableCull()
@@ -285,7 +286,7 @@ class DamageIndicatorManager {
BossType.SLAYER_BLAZE_QUAZII_3,
BossType.SLAYER_BLAZE_QUAZII_4,
- //TODO f3/m3 4 guardians, f2/m2 4 boss room fighters
+ // TODO f3/m3 4 guardians, f2/m2 4 boss room fighters
-> true
else -> false
@@ -399,7 +400,7 @@ class DamageIndicatorManager {
val thorn = checkThorn(health, maxHealth)
if (thorn == null) {
val floor = DungeonAPI.dungeonFloor
- LorenzUtils.error("problems with thorn detection! ($floor, $health/$maxHealth)")
+ ChatUtils.error("problems with thorn detection! ($floor, $health/$maxHealth)")
}
return thorn
}
@@ -437,7 +438,7 @@ class DamageIndicatorManager {
BossType.SLAYER_ZOMBIE_5 -> {
if ((entity as EntityZombie).hasNameTagWith(3, "§fBoom!")) {
- //TODO fix
+ // TODO fix
// val ticksAlive = entity.ticksExisted % (20 * 5)
// val remainingTicks = (5 * 20).toLong() - ticksAlive
// val format = formatDelay(remainingTicks * 50)
@@ -545,9 +546,9 @@ class DamageIndicatorManager {
}
} + " §f"
- //hide while in the middle
+ // hide while in the middle
// val position = entity.getLorenzVec()
- //TODO other logic or something
+ // TODO other logic or something
// entityData.healthLineHidden = position.x == -368.0 && position.z == -804.0
var calcHealth = -1
@@ -562,7 +563,7 @@ class DamageIndicatorManager {
calcHealth = 0
break
} else {
- LorenzUtils.error("unknown magma boss health sidebar format!")
+ ChatUtils.error("unknown magma boss health sidebar format!")
break
}
@@ -641,7 +642,7 @@ class DamageIndicatorManager {
entityData.namePrefix = ""
}
- //Hit phase
+ // Hit phase
var hitPhaseText: String? = null
val armorStandHits = entity.getNameTagWith(3, " Hit")
if (armorStandHits != null) {
@@ -659,7 +660,7 @@ class DamageIndicatorManager {
hitPhaseText = NumberUtil.percentageColor(hits.toLong(), maxHits.toLong()).getChatColor() + "$hits Hits"
}
- //Laser phase
+ // Laser phase
if (config.enderSlayer.laserPhaseTimer && entity.ridingEntity != null) {
val totalTimeAlive = 8.2.seconds
@@ -776,7 +777,7 @@ class DamageIndicatorManager {
}
}
} else {
- LorenzUtils.error("Invalid/impossible thorn floor!")
+ ChatUtils.error("Invalid/impossible thorn floor!")
return null
}
val color = NumberUtil.percentageColor(health.toLong(), maxHealth.toLong())
@@ -791,7 +792,7 @@ class DamageIndicatorManager {
damageCounter.currentDamage += damage
}
if (healing > 0) {
- //Hide auto heal every 10 ticks (with rounding errors)
+ // Hide auto heal every 10 ticks (with rounding errors)
if ((healing == 15_000L || healing == 15_001L) && entityData.bossType == BossType.SLAYER_ZOMBIE_5) return
val damageCounter = entityData.damageCounter
@@ -905,7 +906,6 @@ class DamageIndicatorManager {
result
}
-
}
fun isEnabled() = LorenzUtils.inSkyBlock && config.enabled
diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/EntityData.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/EntityData.kt
index af07242a6..1ab969946 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/EntityData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/EntityData.kt
@@ -25,6 +25,7 @@ class EntityData(
var firstDeath: Boolean = false, // TODO this defines if hp is very low, replace dead with this later
var deathLocation: LorenzVec? = null,
) {
+
val timeToKill by lazy {
"§e" + foundTime.passedSince().format(TimeUnit.SECOND, showMilliSeconds = true)
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/MobFinder.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/MobFinder.kt
index 3bc048aa0..6c284d596 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/MobFinder.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/MobFinder.kt
@@ -45,20 +45,20 @@ import java.util.UUID
class MobFinder {
- //F1
+ // F1
private var floor1bonzo1 = false
private var floor1bonzo1SpawnTime = 0L
private var floor1bonzo2 = false
private var floor1bonzo2SpawnTime = 0L
- //F2
+ // F2
private var floor2summons1 = false
private var floor2summons1SpawnTime = 0L
private var floor2summonsDiedOnce = mutableListOf<EntityOtherPlayerMP>()
private var floor2secondPhase = false
private var floor2secondPhaseSpawnTime = 0L
- //F3
+ // F3
private var floor3GuardianShield = false
private var floor3GuardianShieldSpawnTime = 0L
private var guardians = mutableListOf<EntityGuardian>()
@@ -69,13 +69,13 @@ class MobFinder {
private var floor3ProfessorGuardian = false
private var floor3ProfessorGuardianEntity: EntityGuardian? = null
- //F5
+ // F5
private var floor5lividEntity: EntityOtherPlayerMP? = null
private var floor5lividEntitySpawnTime = 0L
private val correctLividPattern =
"§c\\[BOSS] (.*) Livid§r§f: Impossible! How did you figure out which one I was\\?!".toPattern()
- //F6
+ // F6
private var floor6Giants = false
private var floor6GiantsSpawnTime = 0L
private var floor6GiantsSeparateDelay = mutableMapOf<UUID, Pair<Long, BossType>>()
@@ -166,7 +166,7 @@ class MobFinder {
}
if (floor2secondPhase && entity is EntityOtherPlayerMP) {
- //TODO only show scarf after (all/at least x) summons are dead?
+ // TODO only show scarf after (all/at least x) summons are dead?
if (entity.name == "Scarf ") {
return EntityResult(
floor2secondPhaseSpawnTime,
@@ -343,7 +343,7 @@ class MobFinder {
}
}
- //TODO testing and use sidebar data
+ // TODO testing and use sidebar data
private fun tryAddEntityDragon(entity: EntityLivingBase) = when {
IslandType.THE_END.isInIsland() -> EntityResult(bossType = BossType.END_ENDER_DRAGON)
IslandType.WINTER.isInIsland() -> EntityResult(bossType = BossType.WINTER_REINDRAKE)
@@ -482,22 +482,21 @@ class MobFinder {
var pos = 0
-
val type: BossType
if (loc.x > middle.x && loc.z > middle.z) {
- //first
+ // first
pos = 2
type = BossType.DUNGEON_F6_GIANT_3
} else if (loc.x > middle.x && loc.z < middle.z) {
- //second
+ // second
pos = 3
type = BossType.DUNGEON_F6_GIANT_4
} else if (loc.x < middle.x && loc.z < middle.z) {
- //third
+ // third
pos = 0
type = BossType.DUNGEON_F6_GIANT_1
} else if (loc.x < middle.x && loc.z > middle.z) {
- //fourth
+ // fourth
pos = 1
type = BossType.DUNGEON_F6_GIANT_2
} else {
@@ -505,7 +504,6 @@ class MobFinder {
type = BossType.DUNGEON_F6_GIANT_1
}
-
val extraDelay = 900L * pos
val pair = Pair(extraDelay, type)
floor6GiantsSeparateDelay[uuid] = pair
@@ -516,7 +514,7 @@ class MobFinder {
fun handleChat(message: String) {
if (!LorenzUtils.inDungeons) return
when (message) {
- //F1
+ // F1
"§c[BOSS] Bonzo§r§f: Gratz for making it this far, but I'm basically unbeatable." -> {
floor1bonzo1 = true
floor1bonzo1SpawnTime = System.currentTimeMillis() + 11_250
@@ -535,7 +533,7 @@ class MobFinder {
floor1bonzo2 = false
}
- //F2
+ // F2
"§c[BOSS] Scarf§r§f: ARISE, MY CREATIONS!" -> {
floor2summons1 = true
floor2summons1SpawnTime = System.currentTimeMillis() + 3_500
@@ -554,7 +552,7 @@ class MobFinder {
floor2secondPhase = false
}
- //F3
+ // F3
"§c[BOSS] The Professor§r§f: I was burdened with terrible news recently..." -> {
floor3GuardianShield = true
floor3GuardianShieldSpawnTime = System.currentTimeMillis() + 15_400
@@ -582,13 +580,13 @@ class MobFinder {
floor3ProfessorGuardian = false
}
- //F5
+ // F5
"§c[BOSS] Livid§r§f: This Orb you see, is Thorn, or what is left of him." -> {
floor5lividEntity = DungeonLividFinder.lividEntity
floor5lividEntitySpawnTime = System.currentTimeMillis() + 13_000
}
- //F6
+ // F6
"§c[BOSS] Sadan§r§f: ENOUGH!" -> {
floor6Giants = true
floor6GiantsSpawnTime = System.currentTimeMillis() + 7_400
@@ -614,7 +612,6 @@ class MobFinder {
if (LorenzUtils.inDungeons && floor3ProfessorGuardian && entity is EntityGuardian && floor3ProfessorGuardianEntity == null) {
floor3ProfessorGuardianEntity = entity
floor3ProfessorGuardianPrepare = false
-
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/endernodetracker/EnderNodeTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/endernodetracker/EnderNodeTracker.kt
index 87f83208a..adb0edd38 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/combat/endernodetracker/EnderNodeTracker.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/combat/endernodetracker/EnderNodeTracker.kt
@@ -11,12 +11,12 @@ import at.hannibal2.skyhanni.events.IslandChangeEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.events.OwnInventoryItemUpdateEvent
import at.hannibal2.skyhanni.events.SackChangeEvent
+import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
+import at.hannibal2.skyhanni.utils.CollectionUtils.addOrPut
+import at.hannibal2.skyhanni.utils.ConditionalUtils.afterChange
import at.hannibal2.skyhanni.utils.ConfigUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalNameOrNull
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList
-import at.hannibal2.skyhanni.utils.LorenzUtils.addOrPut
-import at.hannibal2.skyhanni.utils.LorenzUtils.afterChange
import at.hannibal2.skyhanni.utils.NEUItems.getNpcPriceOrNull
import at.hannibal2.skyhanni.utils.NEUItems.getPriceOrNull
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
@@ -28,6 +28,7 @@ import net.minecraft.client.Minecraft
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
object EnderNodeTracker {
+
private val config get() = SkyHanniMod.feature.combat.enderNodeTracker
private var miteGelInInventory = 0
@@ -191,7 +192,8 @@ object EnderNodeTracker {
EnderNode.END_LEGGINGS,
EnderNode.END_BOOTS,
EnderNode.ENDER_NECKLACE,
- EnderNode.ENDER_GAUNTLET -> true
+ EnderNode.ENDER_GAUNTLET,
+ -> true
else -> false
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/ghostcounter/GhostCounter.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/ghostcounter/GhostCounter.kt
index be138463f..5c1e0976e 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/combat/ghostcounter/GhostCounter.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/combat/ghostcounter/GhostCounter.kt
@@ -24,6 +24,9 @@ import at.hannibal2.skyhanni.features.combat.ghostcounter.GhostUtil.formatText
import at.hannibal2.skyhanni.features.combat.ghostcounter.GhostUtil.isUsingCTGhostCounter
import at.hannibal2.skyhanni.features.combat.ghostcounter.GhostUtil.preFormat
import at.hannibal2.skyhanni.features.combat.ghostcounter.GhostUtil.prettyTime
+import at.hannibal2.skyhanni.utils.ChatUtils.chat
+import at.hannibal2.skyhanni.utils.ChatUtils.clickableChat
+import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.CombatUtils._isKilling
import at.hannibal2.skyhanni.utils.CombatUtils.calculateETA
import at.hannibal2.skyhanni.utils.CombatUtils.calculateXP
@@ -38,9 +41,6 @@ import at.hannibal2.skyhanni.utils.CombatUtils.xpGainHourLast
import at.hannibal2.skyhanni.utils.ConfigUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList
-import at.hannibal2.skyhanni.utils.LorenzUtils.chat
-import at.hannibal2.skyhanni.utils.LorenzUtils.clickableChat
import at.hannibal2.skyhanni.utils.LorenzUtils.isInIsland
import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
@@ -131,7 +131,10 @@ object GhostCounter {
}
val avgMagicFind = when (Option.TOTALDROPS.get()) {
0.0 -> "0"
- else -> "${((((storage?.totalMF!! / Option.TOTALDROPS.get()) + Math.ulp(1.0)) * 100) / 100).roundToPrecision(2)}"
+ else -> {
+ val mf = (((storage?.totalMF!! / Option.TOTALDROPS.get()) + Math.ulp(1.0)) * 100) / 100
+ mf.roundToPrecision(2).toString()
+ }
}
val xpHourFormatting = textFormatting.xpHourFormatting
@@ -424,7 +427,7 @@ object GhostCounter {
Option.KILLCOMBO.set(0.0)
update()
}
- //replace with BestiaryLevelUpEvent ?
+ // replace with BestiaryLevelUpEvent ?
bestiaryPattern.matchMatcher(event.message) {
val currentLevel = group("nextLevel").toInt()
when (val nextLevel = if (currentLevel >= 25) 26 else currentLevel + 1) {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/ghostcounter/GhostUtil.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/ghostcounter/GhostUtil.kt
index 9c5de8c43..61e03cf97 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/combat/ghostcounter/GhostUtil.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/combat/ghostcounter/GhostUtil.kt
@@ -3,7 +3,7 @@ package at.hannibal2.skyhanni.features.combat.ghostcounter
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.config.ConfigManager
import at.hannibal2.skyhanni.data.ProfileStorageData
-import at.hannibal2.skyhanni.utils.LorenzUtils
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.NumberUtil
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.NumberUtil.roundToPrecision
@@ -65,7 +65,7 @@ object GhostUtil {
val c = ProfileStorageData.profileSpecific?.ghostCounter ?: return
if (isUsingCTGhostCounter()) {
if (c.ctDataImported) {
- LorenzUtils.userError("You already imported GhostCounterV3 data!")
+ ChatUtils.userError("You already imported GhostCounterV3 data!")
return
}
val json = ConfigManager.gson.fromJson(
@@ -83,9 +83,9 @@ object GhostUtil {
?: json["TotalMF"].asDouble
GhostData.Option.TOTALDROPS.add(json["TotalDrops"].asDouble)
c.ctDataImported = true
- LorenzUtils.chat("§aImported data successfully!")
+ ChatUtils.chat("§aImported data successfully!")
} else
- LorenzUtils.error("GhostCounterV3 ChatTriggers module not found!")
+ ChatUtils.error("GhostCounterV3 ChatTriggers module not found!")
}
fun String.formatText(option: GhostData.Option) = formatText(option.getInt(), option.getInt(true))
diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/AreaMiniBossFeatures.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/AreaMiniBossFeatures.kt
index af7c4804d..e3d76a41e 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/AreaMiniBossFeatures.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/AreaMiniBossFeatures.kt
@@ -25,6 +25,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.time.Duration.Companion.seconds
class AreaMiniBossFeatures {
+
private val config get() = SkyHanniMod.feature.combat.mobs
private var lastSpawnTime = SimpleTimeMark.farPast()
private var miniBossType: AreaMiniBossType? = null
@@ -92,8 +93,9 @@ class AreaMiniBossFeatures {
val health: Int,
val color: LorenzColor,
val colorOpacity: Int,
- vararg val spawnLocations: LorenzVec
+ vararg val spawnLocations: LorenzVec,
) {
+
GOLDEN_GHOUL(
EntityZombie::class.java, 45_000, LorenzColor.YELLOW, 127,
LorenzVec(-99.7, 39.0, -86.4),
diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/AshfangMinisNametagHider.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/AshfangMinisNametagHider.kt
index 657e13d73..aa861a29b 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/AshfangMinisNametagHider.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/AshfangMinisNametagHider.kt
@@ -9,6 +9,7 @@ import net.minecraftforge.fml.common.eventhandler.EventPriority
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class AshfangMinisNametagHider {
+
private val config get() = SkyHanniMod.feature.combat.mobs
@SubscribeEvent(priority = EventPriority.HIGH)
@@ -25,4 +26,4 @@ class AshfangMinisNametagHider {
event.isCanceled = true
}
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/MobHighlight.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/MobHighlight.kt
index b55fc7c03..d7ecc8f52 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/MobHighlight.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/MobHighlight.kt
@@ -18,6 +18,7 @@ import net.minecraft.entity.monster.EntitySpider
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class MobHighlight {
+
private val config get() = SkyHanniMod.feature.combat.mobs
@SubscribeEvent
diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/SpawnTimers.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/SpawnTimers.kt
index 81426c90f..08c8ddf31 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/SpawnTimers.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/SpawnTimers.kt
@@ -22,12 +22,15 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.time.Duration.Companion.seconds
class SpawnTimers {
+
private val config get() = SkyHanniMod.feature.combat.mobs
private val arachneAltarLocation = LorenzVec(-283f, 51f, -179f)
private var arachneSpawnTime = SimpleTimeMark.farPast()
- private val arachneFragmentMessage = "^☄ [a-z0-9_]{2,22} placed an arachne's calling! something is awakening! \\(4/4\\)\$".toPattern()
- private val arachneCrystalMessage = "^☄ [a-z0-9_]{2,22} placed an arachne crystal! something is awakening!$".toPattern()
+ private val arachneFragmentMessage =
+ "^☄ [a-z0-9_]{2,22} placed an arachne's calling! something is awakening! \\(4/4\\)\$".toPattern()
+ private val arachneCrystalMessage =
+ "^☄ [a-z0-9_]{2,22} placed an arachne crystal! something is awakening!$".toPattern()
private var saveNextTickParticles = false
private var particleCounter = 0
private var tickTime: Long = 0
@@ -76,7 +79,7 @@ class SpawnTimers {
if (particleCounter == 0 && tickTime == 0L) tickTime = System.currentTimeMillis()
if (System.currentTimeMillis() > tickTime + 60) {
- arachneSpawnTime = if (particleCounter <= 20) {
+ arachneSpawnTime = if (particleCounter <= 20) {
SimpleTimeMark.now() + 21.seconds
} else {
SimpleTimeMark.now() + 37.seconds
@@ -95,5 +98,6 @@ class SpawnTimers {
}
}
- fun isEnabled() = IslandType.SPIDER_DEN.isInIsland() && LorenzUtils.skyBlockArea == "Arachne's Sanctuary" && config.showArachneSpawnTimer
+ fun isEnabled() =
+ IslandType.SPIDER_DEN.isInIsland() && LorenzUtils.skyBlockArea == "Arachne's Sanctuary" && config.showArachneSpawnTimer
}