aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/ConfigUpdaterMigrator.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/garden/EliteFarmingWeightConfig.java2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/CropAccessoryData.kt6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/MaxwellAPI.kt32
-rw-r--r--src/main/java/at/hannibal2/skyhanni/events/SecondPassedEvent.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/bingo/card/BingoCardDisplay.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/chat/PlayerDeathMessages.kt8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/dungeon/CroesusChestTracker.kt22
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/event/diana/InquisitorWaypointShare.kt9
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/event/winter/NewYearCakeReminder.kt29
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/fame/AccountUpgradeReminder.kt12
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/fame/CityProjectFeatures.kt19
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/fishing/TotemOfCorruption.kt14
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/AtmosphericFilterDisplay.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenNextJacobContest.kt34
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/composter/GardenComposterInventoryFeatures.kt20
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/ArmorDropTracker.kt9
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropMoneyDisplay.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/FarmingWeightDisplay.kt18
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropMilestoneDisplay.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/visitor/HighlightVisitorsOutsideOfGarden.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbility.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/mining/KingTalismanHelper.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/mining/eventtracker/MiningEventTracker.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/ServerRestartTitle.kt57
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/items/EstimatedItemValue.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/items/EstimatedItemValueCalculator.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/items/EstimatedWardrobePrice.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/dailyquest/DailyQuestHelper.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingCaveDefenseBlocks.kt8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingMetalSuitProgress.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/rift/area/stillgorechateau/RiftBloodEffigies.kt22
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/rift/area/westvillage/kloon/KloonHacking.kt8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/rift/everywhere/CruxTalismanDisplay.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerClearView.kt35
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/slayer/enderman/EndermanSlayerFeatures.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/test/SkyHanniDebugsAndTests.kt6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/ColorUtils.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt22
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/NumberUtil.kt6
43 files changed, 205 insertions, 278 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt
index e33295acd..a2a99eb20 100644
--- a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt
+++ b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt
@@ -710,7 +710,7 @@ class SkyHanniMod {
loadModule(SackDisplay)
loadModule(GardenStartLocation)
loadModule(PetCandyUsedDisplay())
- loadModule(ServerRestartTitle())
+ loadModule(ServerRestartTitle)
loadModule(CityProjectFeatures())
loadModule(GardenPlotIcon)
loadModule(GardenPlotBorders)
@@ -758,7 +758,7 @@ class SkyHanniMod {
loadModule(RiftMotesOrb())
loadModule(ChestValue())
loadModule(SlayerBossSpawnSoon())
- loadModule(RiftBloodEffigies())
+ loadModule(RiftBloodEffigies)
loadModule(RiftWiltedBerberisHelper())
loadModule(RiftHorsezookaHider())
loadModule(GriffinPetWarning())
diff --git a/src/main/java/at/hannibal2/skyhanni/config/ConfigUpdaterMigrator.kt b/src/main/java/at/hannibal2/skyhanni/config/ConfigUpdaterMigrator.kt
index e762273f0..1e768df6e 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/ConfigUpdaterMigrator.kt
+++ b/src/main/java/at/hannibal2/skyhanni/config/ConfigUpdaterMigrator.kt
@@ -11,7 +11,7 @@ import com.google.gson.JsonPrimitive
object ConfigUpdaterMigrator {
val logger = LorenzLogger("ConfigMigration")
- const val CONFIG_VERSION = 33
+ const val CONFIG_VERSION = 34
fun JsonElement.at(chain: List<String>, init: Boolean): JsonElement? {
if (chain.isEmpty()) return this
if (this !is JsonObject) return null
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/EliteFarmingWeightConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/EliteFarmingWeightConfig.java
index 682236efb..1a681fddc 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/garden/EliteFarmingWeightConfig.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/EliteFarmingWeightConfig.java
@@ -46,7 +46,7 @@ public class EliteFarmingWeightConfig {
@Expose
@ConfigOption(name = "ETA Goal", desc = "Override the Overtake ETA to show when you'll reach the specified rank (if not there yet). (Default: \"10,000\")")
@ConfigEditorText
- public String ETAGoalRank = "10000";
+ public String etaGoalRank = "10000";
@Expose
@ConfigOption(name = "Show below 200", desc = "Show the farming weight data even if you are below 200 weight.")
diff --git a/src/main/java/at/hannibal2/skyhanni/data/CropAccessoryData.kt b/src/main/java/at/hannibal2/skyhanni/data/CropAccessoryData.kt
index b05cc0e56..321e81e26 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/CropAccessoryData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/CropAccessoryData.kt
@@ -2,8 +2,8 @@ package at.hannibal2.skyhanni.data
import at.hannibal2.skyhanni.events.InventoryCloseEvent
import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.ProfileJoinEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.features.garden.CropAccessory
import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.utils.InventoryUtils
@@ -28,7 +28,6 @@ class CropAccessoryData {
)
private var loadedAccessoryThisProfile = false
- private var ticks = 0
private var accessoryInBag: CropAccessory? = null
private var accessoryInInventory = CropAccessory.NONE
@@ -84,8 +83,7 @@ class CropAccessoryData {
// Handle inventory detection
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
- if (!event.repeatSeconds(1)) return
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!LorenzUtils.inSkyBlock) return
accessoryInInventory = bestCropAccessory(InventoryUtils.getItemsInOwnInventory())
if (accessoryInInventory == CropAccessory.NONE) return
diff --git a/src/main/java/at/hannibal2/skyhanni/data/MaxwellAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/MaxwellAPI.kt
index ebfb4a892..eed541571 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/MaxwellAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/MaxwellAPI.kt
@@ -51,64 +51,64 @@ object MaxwellAPI {
private var powers = mutableListOf<String>()
- private val group = RepoPattern.group("data.maxwell")
- private val chatPowerpattern by group.pattern(
+ private val patternGroup = RepoPattern.group("data.maxwell")
+ private val chatPowerpattern by patternGroup.pattern(
"chat.power",
"§eYou selected the §a(?<power>.*) §e(power )?for your §aAccessory Bag§e!"
)
- private val inventoryPowerPattern by group.pattern(
+ private val inventoryPowerPattern by patternGroup.pattern(
"inventory.power",
"§7Selected Power: §a(?<power>.*)"
)
- private val inventoryMPPattern by group.pattern(
+ private val inventoryMPPattern by patternGroup.pattern(
"inventory.magicalpower",
"§7Magical Power: §6(?<mp>[\\d,]+)"
)
- private val thaumaturgyGuiPattern by group.pattern(
+ private val thaumaturgyGuiPattern by patternGroup.pattern(
"gui.thaumaturgy",
"Accessory Bag Thaumaturgy"
)
- private val thaumaturgyStartPattern by group.pattern(
+ private val thaumaturgyStartPattern by patternGroup.pattern(
"gui.thaumaturgy.start",
"§7Your tuning:"
)
- private val thaumaturgyDataPattern by group.pattern(
+ private val thaumaturgyDataPattern by patternGroup.pattern(
"gui.thaumaturgy.data",
"§(?<color>.)\\+(?<amount>[^ ]+)(?<icon>.) (?<name>.+)"
)
- private val thaumaturgyMagicalPowerPattern by group.pattern(
+ private val thaumaturgyMagicalPowerPattern by patternGroup.pattern(
"gui.thaumaturgy.magicalpower",
"§7Total: §6(?<mp>\\d+) Magical Power"
)
- private val statsTuningGuiPattern by group.pattern(
+ private val statsTuningGuiPattern by patternGroup.pattern(
"gui.thaumaturgy.statstuning",
"Stats Tuning"
)
- private val statsTuningDataPattern by group.pattern(
+ private val statsTuningDataPattern by patternGroup.pattern(
"thaumaturgy.statstuning",
"§7You have: .+ §7\\+ §(?<color>.)(?<amount>[^ ]+) (?<icon>.)"
)
- private val tuningAutoAssignedPattern by group.pattern(
+ private val tuningAutoAssignedPattern by patternGroup.pattern(
"tuningpoints.chat.autoassigned",
"§aYour §r§eTuning Points §r§awere auto-assigned as convenience!"
)
- private val yourBagsGuiPattern by group.pattern(
+ private val yourBagsGuiPattern by patternGroup.pattern(
"gui.yourbags",
"Your Bags"
)
- private val powerSelectedPattern by group.pattern(
+ private val powerSelectedPattern by patternGroup.pattern(
"gui.selectedpower",
"§aPower is selected!"
)
- private val noPowerSelectedPattern by group.pattern(
+ private val noPowerSelectedPattern by patternGroup.pattern(
"gui.noselectedpower",
"(?:§.)*Visit Maxwell in the Hub to learn"
)
- private val accessoryBagStack by group.pattern(
+ private val accessoryBagStack by patternGroup.pattern(
"stack.accessorybag",
"§.Accessory Bag"
)
- private val redstoneCollectionRequirementPattern by group.pattern(
+ private val redstoneCollectionRequirementPattern by patternGroup.pattern(
"collection.redstone.requirement",
"(?:§.)*Requires (?:§.)*Redstone Collection I+(?:§.)*\\."
)
diff --git a/src/main/java/at/hannibal2/skyhanni/events/SecondPassedEvent.kt b/src/main/java/at/hannibal2/skyhanni/events/SecondPassedEvent.kt
index 0175fefc5..d422a026f 100644
--- a/src/main/java/at/hannibal2/skyhanni/events/SecondPassedEvent.kt
+++ b/src/main/java/at/hannibal2/skyhanni/events/SecondPassedEvent.kt
@@ -1,5 +1,5 @@
package at.hannibal2.skyhanni.events
class SecondPassedEvent(private val totalSeconds: Int) : LorenzEvent() {
- fun repeatSeconds(i: Int) = i % totalSeconds == 0
+ fun repeatSeconds(i: Int) = totalSeconds % i == 0
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/bingo/card/BingoCardDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/bingo/card/BingoCardDisplay.kt
index e1cd1dbca..9fca47fbc 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/bingo/card/BingoCardDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/bingo/card/BingoCardDisplay.kt
@@ -4,7 +4,7 @@ import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator
import at.hannibal2.skyhanni.events.ConfigLoadEvent
import at.hannibal2.skyhanni.events.GuiRenderEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.events.bingo.BingoCardUpdateEvent
import at.hannibal2.skyhanni.features.bingo.BingoAPI
import at.hannibal2.skyhanni.features.bingo.card.goals.BingoGoal
@@ -71,11 +71,9 @@ class BingoCardDisplay {
}
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
- if (event.repeatSeconds(1)) {
- if (hasHiddenPersonalGoals) {
- update()
- }
+ fun onSecondPassed(event: SecondPassedEvent) {
+ if (hasHiddenPersonalGoals) {
+ update()
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/chat/PlayerDeathMessages.kt b/src/main/java/at/hannibal2/skyhanni/features/chat/PlayerDeathMessages.kt
index f44185c4c..2823d57d9 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/chat/PlayerDeathMessages.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/chat/PlayerDeathMessages.kt
@@ -2,8 +2,8 @@ package at.hannibal2.skyhanni.features.chat
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.events.LorenzChatEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.features.dungeon.DungeonAPI
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.features.misc.MarkedPlayerManager
import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.EntityUtils
@@ -27,12 +27,10 @@ class PlayerDeathMessages {
)
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!isHideFarDeathsEnabled()) return
- if (event.repeatSeconds(1)) {
- checkOtherPlayers()
- }
+ checkOtherPlayers()
}
@SubscribeEvent
diff --git a/src/main/java/at/hannibal2/skyhanni/features/dungeon/CroesusChestTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/dungeon/CroesusChestTracker.kt
index ea94117af..176a40f59 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/dungeon/CroesusChestTracker.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/CroesusChestTracker.kt
@@ -34,19 +34,19 @@ class CroesusChestTracker {
private val config get() = SkyHanniMod.feature.dungeon.chest
- private val repoGroup = RepoPattern.group("dungeon.croesus")
+ private val patternGroup = RepoPattern.group("dungeon.croesus")
- private val croesusPattern by repoGroup.pattern("inventory", "Croesus")
- private val croesusEmptyPattern by repoGroup.pattern("empty", "§cNo treasures!")
- private val kismetPattern by repoGroup.pattern("kismet.reroll", "§aReroll Chest")
- private val kismetUsedPattern by repoGroup.pattern("kismet.used", "§aYou already rerolled a chest!")
+ private val croesusPattern by patternGroup.pattern("inventory", "Croesus")
+ private val croesusEmptyPattern by patternGroup.pattern("empty", "§cNo treasures!")
+ private val kismetPattern by patternGroup.pattern("kismet.reroll", "§aReroll Chest")
+ private val kismetUsedPattern by patternGroup.pattern("kismet.used", "§aYou already rerolled a chest!")
- private val floorPattern by repoGroup.pattern("chest.floor", "§7Tier: §eFloor (?<floor>[IV]+)")
- private val masterPattern by repoGroup.pattern("chest.master", ".*Master.*")
+ private val floorPattern by patternGroup.pattern("chest.floor", "§7Tier: §eFloor (?<floor>[IV]+)")
+ private val masterPattern by patternGroup.pattern("chest.master", ".*Master.*")
- private val keyUsedPattern by repoGroup.pattern("chest.state.keyused", "§aNo more Chests to open!")
- private val openedPattern by repoGroup.pattern("chest.state.opened", "§8Opened Chest:.*")
- private val unopenedPattern by repoGroup.pattern("chest.state.unopened", "§8No Chests Opened!")
+ private val keyUsedPattern by patternGroup.pattern("chest.state.keyused", "§aNo more Chests to open!")
+ private val openedPattern by patternGroup.pattern("chest.state.opened", "§8Opened Chest:.*")
+ private val unopenedPattern by patternGroup.pattern("chest.state.unopened", "§8No Chests Opened!")
private val kismetSlotId = 50
private val emptySlotId = 22
@@ -115,7 +115,7 @@ class CroesusChestTracker {
private fun kismetDungeonChestSetup(event: InventoryFullyOpenedEvent) {
chestInventory = DungeonChest.getByInventoryName(event.inventoryName) ?: return
if (config.kismetStackSize) {
- kismetAmountCache = getKismetAmount().toInt()
+ kismetAmountCache = getKismetAmount()
}
if (config.showUsedKismets) {
val kismetItem = event.inventoryItems[kismetSlotId] ?: return
diff --git a/src/main/java/at/hannibal2/skyhanni/features/event/diana/InquisitorWaypointShare.kt b/src/main/java/at/hannibal2/skyhanni/features/event/diana/InquisitorWaypointShare.kt
index 42a4c8850..33f7efab4 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/event/diana/InquisitorWaypointShare.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/event/diana/InquisitorWaypointShare.kt
@@ -4,9 +4,9 @@ import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.events.EntityHealthUpdateEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.events.LorenzKeyPressEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent
import at.hannibal2.skyhanni.events.PacketEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.CollectionUtils.editCopy
import at.hannibal2.skyhanni.utils.EntityUtils
@@ -84,15 +84,14 @@ object InquisitorWaypointShare {
}
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!isEnabled()) return
if (event.repeatSeconds(3)) {
inquisitorsNearby = inquisitorsNearby.editCopy { removeIf { it.isDead } }
}
- if (event.repeatSeconds(1)) {
- waypoints = waypoints.editCopy { values.removeIf { it.spawnTime.passedSince() > 75.seconds } }
- }
+
+ waypoints = waypoints.editCopy { values.removeIf { it.spawnTime.passedSince() > 75.seconds } }
}
@SubscribeEvent
diff --git a/src/main/java/at/hannibal2/skyhanni/features/event/winter/NewYearCakeReminder.kt b/src/main/java/at/hannibal2/skyhanni/features/event/winter/NewYearCakeReminder.kt
index 4bc6c02b5..9a68947dc 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/event/winter/NewYearCakeReminder.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/event/winter/NewYearCakeReminder.kt
@@ -2,10 +2,10 @@ package at.hannibal2.skyhanni.features.event.winter
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.data.ProfileStorageData
+import at.hannibal2.skyhanni.data.ScoreboardData
import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
-import at.hannibal2.skyhanni.events.ScoreboardChangeEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.features.fame.ReminderUtils
import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.LorenzUtils
@@ -23,14 +23,12 @@ class NewYearCakeReminder {
"event.winter.newyearcake.reminder.sidebar",
"§dNew Year Event!§f (?<time>.*)"
)
-
- private var cakeTime = false
private var lastReminderSend = SimpleTimeMark.farPast()
@SubscribeEvent
fun onChat(event: LorenzChatEvent) {
if (event.message == "§aYou claimed a §r§cNew Year Cake§r§a!") {
- makedClaimed()
+ markCakeClaimed()
}
}
@@ -38,11 +36,11 @@ class NewYearCakeReminder {
fun onInventoryOpen(event: InventoryFullyOpenedEvent) {
// cake already claimed
if (event.inventoryName == "Baker") {
- makedClaimed()
+ markCakeClaimed()
}
}
- private fun makedClaimed() {
+ private fun markCakeClaimed() {
val playerSpecific = ProfileStorageData.playerSpecific ?: return
playerSpecific.winter.cakeCollectedYear = SkyBlockTime.now().year
}
@@ -53,21 +51,10 @@ class NewYearCakeReminder {
}
@SubscribeEvent
- fun onScoreboardChange(event: ScoreboardChangeEvent) {
- cakeTime = event.newList.any { sidebarDetectionPattern.matches(it) }
- }
-
- @SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!LorenzUtils.inSkyBlock) return
- if (event.repeatSeconds(1)) {
- check()
- }
- }
-
- private fun check() {
- if (!cakeTime) return
if (!config.newYearCakeReminder) return
+ if (!isCakeTime()) return
if (ReminderUtils.isBusy()) return
if (isClaimed()) return
@@ -79,4 +66,6 @@ class NewYearCakeReminder {
"openbaker"
)
}
+
+ private fun isCakeTime() = ScoreboardData.sidebarLinesFormatted.any { sidebarDetectionPattern.matches(it) }
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/fame/AccountUpgradeReminder.kt b/src/main/java/at/hannibal2/skyhanni/features/fame/AccountUpgradeReminder.kt
index 4f1e3b5ea..ca700e2b1 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/fame/AccountUpgradeReminder.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/fame/AccountUpgradeReminder.kt
@@ -6,7 +6,7 @@ import at.hannibal2.skyhanni.events.GuiContainerEvent
import at.hannibal2.skyhanni.events.InventoryCloseEvent
import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.LorenzUtils
@@ -32,16 +32,11 @@ class AccountUpgradeReminder {
}
}
+ // TODO: Merge this logic with CityProjectFeatures reminder to reduce duplication
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!LorenzUtils.inSkyBlock) return
- if (event.repeatSeconds(1)) {
- checkReminder()
- }
- }
- // TODO: Merge this logic with CityProjectFeatures reminder to reduce duplication
- private fun checkReminder() {
if (!isEnabled()) return
val playerSpecific = ProfileStorageData.playerSpecific ?: return
if (ReminderUtils.isBusy()) return
@@ -50,7 +45,6 @@ class AccountUpgradeReminder {
val upgrade = playerSpecific.currentAccountUpgrade ?: return
val nextCompletionTime = nextCompletionTime ?: return
if (!nextCompletionTime.isInPast()) return
-
if (lastReminderSend.passedSince() < 30.seconds) return
lastReminderSend = SimpleTimeMark.now()
diff --git a/src/main/java/at/hannibal2/skyhanni/features/fame/CityProjectFeatures.kt b/src/main/java/at/hannibal2/skyhanni/features/fame/CityProjectFeatures.kt
index c2bfd586e..f5f45862e 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/fame/CityProjectFeatures.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/fame/CityProjectFeatures.kt
@@ -7,7 +7,7 @@ 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.events.LorenzTickEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.features.inventory.bazaar.BazaarApi
import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
@@ -38,12 +38,13 @@ import net.minecraft.client.gui.inventory.GuiEditSign
import net.minecraft.inventory.ContainerChest
import net.minecraft.item.ItemStack
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import kotlin.time.Duration.Companion.seconds
class CityProjectFeatures {
private var display = emptyList<List<Any>>()
private var inInventory = false
- private var lastReminderSend = 0L
+ private var lastReminderSend = SimpleTimeMark.farPast()
private val patternGroup = RepoPattern.group("fame.projects")
private val contributeAgainPattern by patternGroup.pattern(
@@ -65,14 +66,7 @@ class CityProjectFeatures {
}
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
- if (!LorenzUtils.inSkyBlock) return
- if (event.repeatSeconds(1)) {
- checkDailyReminder()
- }
- }
-
- private fun checkDailyReminder() {
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!config.dailyReminder) return
val playerSpecific = ProfileStorageData.playerSpecific ?: return
if (ReminderUtils.isBusy()) return
@@ -81,9 +75,8 @@ class CityProjectFeatures {
if (playerSpecific.nextCityProjectParticipationTime == 0L) return
if (System.currentTimeMillis() <= playerSpecific.nextCityProjectParticipationTime) return
-
- if (lastReminderSend + 30_000 > System.currentTimeMillis()) return
- lastReminderSend = System.currentTimeMillis()
+ if (lastReminderSend.passedSince() < 30.seconds) return
+ lastReminderSend = SimpleTimeMark.now()
ChatUtils.clickableChat(
"Daily City Project Reminder! (Click here to disable this reminder)",
diff --git a/src/main/java/at/hannibal2/skyhanni/features/fishing/TotemOfCorruption.kt b/src/main/java/at/hannibal2/skyhanni/features/fishing/TotemOfCorruption.kt
index 54e5d6c30..b6da38ccd 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/fishing/TotemOfCorruption.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/fishing/TotemOfCorruption.kt
@@ -4,8 +4,8 @@ import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.config.features.fishing.TotemOfCorruptionConfig.OutlineType
import at.hannibal2.skyhanni.events.GuiRenderEvent
import at.hannibal2.skyhanni.events.LorenzRenderWorldEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.ReceiveParticleEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.utils.ColorUtils.toChromaColor
import at.hannibal2.skyhanni.utils.EntityUtils
import at.hannibal2.skyhanni.utils.LocationUtils.distanceToPlayer
@@ -35,16 +35,16 @@ class TotemOfCorruption {
private var display = emptyList<String>()
private var totems: List<Totem> = emptyList()
- private val group = RepoPattern.group("fishing.totemofcorruption")
- private val totemNamePattern by group.pattern(
+ private val patternGroup = RepoPattern.group("fishing.totemofcorruption")
+ private val totemNamePattern by patternGroup.pattern(
"totemname",
"§5§lTotem of Corruption"
)
- private val timeRemainingPattern by group.pattern(
+ private val timeRemainingPattern by patternGroup.pattern(
"timeremaining",
"§7Remaining: §e(?:(?<min>\\d+)m )?(?<sec>\\d+)s"
)
- private val ownerPattern by group.pattern(
+ private val ownerPattern by patternGroup.pattern(
"owner",
"§7Owner: §e(?<owner>.+)"
)
@@ -56,7 +56,7 @@ class TotemOfCorruption {
}
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!event.repeatSeconds(2)) return
if (!isOverlayEnabled()) return
@@ -148,7 +148,7 @@ class TotemOfCorruption {
private fun isEffectiveAreaEnabled() = LorenzUtils.inSkyBlock && config.outlineType != OutlineType.NONE
}
-class Totem(
+private class Totem(
val location: LorenzVec,
val timeRemaining: Duration,
val ownerName: String,
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/AtmosphericFilterDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/AtmosphericFilterDisplay.kt
index e4f81bf2e..dfd5c6533 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/AtmosphericFilterDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/AtmosphericFilterDisplay.kt
@@ -3,7 +3,7 @@ package at.hannibal2.skyhanni.features.garden
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.config.enums.OutsideSbFeature
import at.hannibal2.skyhanni.events.GuiRenderEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.RenderUtils.renderString
import at.hannibal2.skyhanni.utils.Season
@@ -16,10 +16,9 @@ class AtmosphericFilterDisplay {
private var display = ""
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!isEnabled()) return
if (!GardenAPI.inGarden() && !config.outsideGarden) return
- if (!event.repeatSeconds(1)) return
display = drawDisplay(Season.getCurrentSeason() ?: return)
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt
index 3df7a8bbf..cf826429d 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt
@@ -15,7 +15,7 @@ import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.CollectionUtils.nextAfter
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
-import at.hannibal2.skyhanni.utils.LorenzUtils
+import at.hannibal2.skyhanni.utils.LorenzUtils.round
import at.hannibal2.skyhanni.utils.NEUInternalName
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.RenderUtils.renderRenderables
@@ -159,7 +159,7 @@ object FarmingFortuneDisplay {
list.add(Renderable.string(
"§6Farming Fortune§7: §e" + if (!recentlySwitchedTool && farmingFortune != -1.0) {
- LorenzUtils.formatDouble(farmingFortune, 0)
+ farmingFortune.round(0).addSeparators()
} else "§7" + (displayCrop.getLatestTrueFarmingFortune()?.addSeparators() ?: "?")
))
add(Renderable.horizontalContainer(list))
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenNextJacobContest.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenNextJacobContest.kt
index 055b79a02..6be8da28f 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenNextJacobContest.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenNextJacobContest.kt
@@ -10,7 +10,7 @@ import at.hannibal2.skyhanni.events.DebugDataCollectEvent
import at.hannibal2.skyhanni.events.GuiRenderEvent
import at.hannibal2.skyhanni.events.InventoryCloseEvent
import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.events.TabListUpdateEvent
import at.hannibal2.skyhanni.features.garden.GardenAPI.addCropIcon
import at.hannibal2.skyhanni.test.command.ErrorManager
@@ -74,8 +74,9 @@ object GardenNextJacobContest {
"§(e○|6☘) §7(?<crop>.*)"
)
- private val closeToNewYear = "§7Close to new SB year!"
- private const val maxContestsPerYear = 124
+ private const val CLOSE_TO_NEW_YEAR_TEXT = "§7Close to new SB year!"
+ private const val MAX_CONTESTS_PER_YEAR = 124
+
private val contestDuration = 20.minutes
private var lastWarningTime = SimpleTimeMark.farPast()
@@ -146,7 +147,7 @@ object GardenNextJacobContest {
}
if (isCloseToNewYear()) {
- newList.add(closeToNewYear)
+ newList.add(CLOSE_TO_NEW_YEAR_TEXT)
} else {
newList.add("§cOpen calendar for")
newList.add("§cmore exact data!")
@@ -166,9 +167,8 @@ object GardenNextJacobContest {
}
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!isEnabled()) return
- if (!event.repeatSeconds(2)) return
if (inCalendar) return
update()
@@ -221,7 +221,7 @@ object GardenNextJacobContest {
}
// Skip if contests are already loaded for this year
- if (contests.size == maxContestsPerYear) return
+ if (contests.size == MAX_CONTESTS_PER_YEAR) return
// Manually loading contests
for (item in items) {
@@ -241,7 +241,7 @@ object GardenNextJacobContest {
}
// If contests were just fully saved
- if (contests.size == maxContestsPerYear) {
+ if (contests.size == MAX_CONTESTS_PER_YEAR) {
nextContestsAvailableAt = SkyBlockTime(SkyBlockTime.now().year + 1, 1, 2).toMillis()
if (isSendEnabled()) {
@@ -302,7 +302,7 @@ object GardenNextJacobContest {
}
return
}
- if (contests.size == maxContestsPerYear) {
+ if (contests.size == MAX_CONTESTS_PER_YEAR) {
sendContests()
}
if (!SkyHanniMod.feature.storage.contestSendingAsked && config.shareAutomatically == ShareContestsEntry.ASK) {
@@ -338,7 +338,7 @@ object GardenNextJacobContest {
if (inCalendar) {
val size = contests.size
- val percentage = size.toDouble() / maxContestsPerYear
+ val percentage = size.toDouble() / MAX_CONTESTS_PER_YEAR
val formatted = LorenzUtils.formatPercentage(percentage)
list.add("§eDetected $formatted of farming contests this year")
@@ -347,7 +347,7 @@ object GardenNextJacobContest {
if (contests.isEmpty()) {
if (isCloseToNewYear()) {
- list.add(closeToNewYear)
+ list.add(CLOSE_TO_NEW_YEAR_TEXT)
} else {
list.add("§cOpen calendar to read Jacob contest times!")
}
@@ -361,7 +361,7 @@ object GardenNextJacobContest {
if (nextContest != null) return drawNextContest(nextContest, list)
if (isCloseToNewYear()) {
- list.add(closeToNewYear)
+ list.add(CLOSE_TO_NEW_YEAR_TEXT)
} else {
list.add("§cOpen calendar to read Jacob contest times!")
}
@@ -378,7 +378,7 @@ object GardenNextJacobContest {
): MutableList<Any> {
var duration = nextContest.endTime.timeUntil()
if (duration > 4.days) {
- list.add(closeToNewYear)
+ list.add(CLOSE_TO_NEW_YEAR_TEXT)
return list
}
@@ -524,7 +524,7 @@ object GardenNextJacobContest {
config.shareAutomatically == ShareContestsEntry.ASK // (Only call if isSendEnabled())
private fun fetchContestsIfAble() {
- if (isFetchingContests || contests.size == maxContestsPerYear || !isFetchEnabled()) return
+ if (isFetchingContests || contests.size == MAX_CONTESTS_PER_YEAR || !isFetchEnabled()) return
// Allows retries every 10 minutes when it's after 1 day into the new year
val currentMills = System.currentTimeMillis()
if (lastFetchAttempted + 600_000 > currentMills || currentMills < nextContestsAvailableAt) return
@@ -565,7 +565,7 @@ object GardenNextJacobContest {
ChatUtils.clickableChat("Click here to open your calendar!", "calendar")
}
- if (newContests.count() == maxContestsPerYear) {
+ if (newContests.count() == MAX_CONTESTS_PER_YEAR) {
ChatUtils.chat("Successfully loaded this year's contests from elitebot.dev automatically!")
contests = newContests
@@ -585,7 +585,7 @@ object GardenNextJacobContest {
}
private fun sendContests() {
- if (isSendingContests || contests.size != maxContestsPerYear || isCloseToNewYear()) return
+ if (isSendingContests || contests.size != MAX_CONTESTS_PER_YEAR || isCloseToNewYear()) return
isSendingContests = true
@@ -614,7 +614,7 @@ object GardenNextJacobContest {
} else {
ErrorManager.logErrorStateWithData(
"Something went wrong submitting upcoming contests!",
- "submitContestsToElite not sucessful"
+ "submitContestsToElite not successful"
)
}
} catch (e: Exception) {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/GardenComposterInventoryFeatures.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/GardenComposterInventoryFeatures.kt
index c8eebc10a..bffd6ac17 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/GardenComposterInventoryFeatures.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/GardenComposterInventoryFeatures.kt
@@ -4,14 +4,14 @@ import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator
import at.hannibal2.skyhanni.events.GuiContainerEvent
import at.hannibal2.skyhanni.events.LorenzToolTipEvent
import at.hannibal2.skyhanni.features.garden.GardenAPI
-import at.hannibal2.skyhanni.utils.ChatUtils
+import at.hannibal2.skyhanni.test.command.ErrorManager
import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.InventoryUtils.getUpperItems
import at.hannibal2.skyhanni.utils.ItemUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.LorenzColor
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.NEUItems
+import at.hannibal2.skyhanni.utils.NEUInternalName
import at.hannibal2.skyhanni.utils.NEUItems.getPrice
import at.hannibal2.skyhanni.utils.NumberUtil
import at.hannibal2.skyhanni.utils.RenderUtils.highlight
@@ -48,14 +48,18 @@ class GardenComposterInventoryFeatures {
if (line.endsWith(" Copper")) continue
if (line == "") break
val (itemName, amount) = ItemUtils.readItemAmount(line) ?: run {
- ChatUtils.error("Could not read item '$line'")
+ ErrorManager.logErrorStateWithData(
+ "Error reading item line",
+ "could not read item line",
+ "line" to line
+ )
continue
}
- val internalName = NEUItems.getInternalNameOrNull(itemName)
- if (internalName == null) {
- ChatUtils.error(
- "Error reading internal name for item '$itemName§c' " +
- "(in GardenComposterInventoryFeatures)"
+ val internalName = NEUInternalName.fromItemNameOrNull(itemName) ?: run {
+ ErrorManager.logErrorStateWithData(
+ "Error reading internal name for item: $itemName",
+ "could not find internal name for",
+ "itemName" to itemName
)
continue
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/ArmorDropTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/ArmorDropTracker.kt
index 5e6494f66..46ff67a2b 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/ArmorDropTracker.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/ArmorDropTracker.kt
@@ -7,9 +7,9 @@ import at.hannibal2.skyhanni.data.jsonobjects.repo.ArmorDropsJson.DropInfo
import at.hannibal2.skyhanni.events.GuiRenderEvent
import at.hannibal2.skyhanni.events.IslandChangeEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.ProfileJoinEvent
import at.hannibal2.skyhanni.events.RepositoryReloadEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.features.garden.CropType
import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
@@ -51,6 +51,7 @@ object ArmorDropTracker {
var drops: MutableMap<ArmorDropType, Int> = mutableMapOf()
}
+ // Todo use repo pattern
enum class ArmorDropType(val dropName: String, val chatMessage: String) {
CROPIE("§9Cropie", "§6§lRARE CROP! §r§f§r§9Cropie §r§b(Armor Set Bonus)"),
SQUASH("§5Squash", "§6§lRARE CROP! §r§f§r§5Squash §r§b(Armor Set Bonus)"),
@@ -105,13 +106,11 @@ object ArmorDropTracker {
}
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!GardenAPI.inGarden()) return
if (!config.enabled) return
- if (event.repeatSeconds(1)) {
- checkArmor()
- }
+ checkArmor()
}
private fun checkArmor() {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropMoneyDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropMoneyDisplay.kt
index 3b5ee8dab..3f796c47d 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropMoneyDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropMoneyDisplay.kt
@@ -5,8 +5,8 @@ import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator
import at.hannibal2.skyhanni.config.features.garden.MoneyPerHourConfig.CustomFormatEntry
import at.hannibal2.skyhanni.events.GardenToolChangeEvent
import at.hannibal2.skyhanni.events.GuiRenderEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.ProfileJoinEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.features.garden.CropType
import at.hannibal2.skyhanni.features.garden.CropType.Companion.getByNameOrNull
import at.hannibal2.skyhanni.features.garden.GardenAPI
@@ -80,7 +80,7 @@ object CropMoneyDisplay {
}
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!isEnabled()) return
if (!event.repeatSeconds(5)) return
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/FarmingWeightDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/FarmingWeightDisplay.kt
index eda69d483..71490fe2a 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/FarmingWeightDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/FarmingWeightDisplay.kt
@@ -21,6 +21,7 @@ import at.hannibal2.skyhanni.test.command.ErrorManager
import at.hannibal2.skyhanni.utils.APIUtil
import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.LorenzUtils
+import at.hannibal2.skyhanni.utils.LorenzUtils.round
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.OSUtils
import at.hannibal2.skyhanni.utils.RenderUtils.renderRenderables
@@ -95,6 +96,7 @@ class FarmingWeightDisplay {
event.move(3, "garden.eliteFarmingWeightETAGoalRank", "garden.eliteFarmingWeights.ETAGoalRank")
event.move(3, "garden.eliteFarmingWeightIgnoreLow", "garden.eliteFarmingWeights.ignoreLow")
event.move(14, "garden.eliteFarmingWeight.offScreenDropMessage", "garden.eliteFarmingWeights.showLbChange")
+ event.move(34, "garden.eliteFarmingWeights.ETAGoalRank", "garden.eliteFarmingWeights.etaGoalRank")
}
companion object {
@@ -219,22 +221,22 @@ class FarmingWeightDisplay {
}
val totalWeight = (localWeight + weight)
- return "§e" + LorenzUtils.formatDouble(totalWeight, 2)
+ return "§e" + totalWeight.round(2).addSeparators()
}
private fun getRankGoal(): Int {
- val value = config.ETAGoalRank
+ val value = config.etaGoalRank
var goal = 10000
// Check that the provided string is valid
val parsed = value.toIntOrNull() ?: 0
if (parsed < 1 || parsed > goal) {
- ChatUtils.error("Invalid Farming Weight Overtake Goal!")
- ChatUtils.chat(
- "§eEdit the Overtake Goal config value with a valid number [1-10000] to use this feature!",
- false
+ ChatUtils.chatAndOpenConfig(
+ "Invalid Farming Weight Overtake Goal! Click here to edit the Overtake Goal config value " +
+ "to a valid number [1-10000] to use this feature!",
+ GardenAPI.config.eliteFarmingWeights::etaGoalRank
)
- config.ETAGoalRank = goal.toString()
+ config.etaGoalRank = goal.toString()
} else {
goal = parsed
}
@@ -299,7 +301,7 @@ class FarmingWeightDisplay {
" §7(§b$format§7)"
} else ""
- val weightFormat = LorenzUtils.formatDouble(weightUntilOvertake, 2)
+ val weightFormat = weightUntilOvertake.round(2).addSeparators()
val text = "§e$weightFormat$timeFormat §7behind §b$nextName"
return if (showRankGoal) {
Renderable.string(text)
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropMilestoneDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropMilestoneDisplay.kt
index 112fce914..43b3f8ab7 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropMilestoneDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropMilestoneDisplay.kt
@@ -197,7 +197,7 @@ object GardenCropMilestoneDisplay {
val format = (farmingFortuneSpeed * 60).addSeparators()
lineMap[4] = Collections.singletonList("§7Crops/Minute§8: §e$format")
- val formatBps = LorenzUtils.formatDouble(speed, config.blocksBrokenPrecision)
+ val formatBps = speed.round(config.blocksBrokenPrecision).addSeparators()
lineMap[5] = Collections.singletonList("§7Blocks/Second§8: §e$formatBps")
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/HighlightVisitorsOutsideOfGarden.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/HighlightVisitorsOutsideOfGarden.kt
index 582f0b359..1faa94c81 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/HighlightVisitorsOutsideOfGarden.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/HighlightVisitorsOutsideOfGarden.kt
@@ -2,9 +2,9 @@ package at.hannibal2.skyhanni.features.garden.visitor
import at.hannibal2.skyhanni.config.features.garden.visitor.VisitorConfig.VisitorBlockBehaviour
import at.hannibal2.skyhanni.data.jsonobjects.repo.GardenJson
-import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.PacketEvent
import at.hannibal2.skyhanni.events.RepositoryReloadEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.mixins.hooks.RenderLivingEntityHelper
import at.hannibal2.skyhanni.utils.ChatUtils
@@ -63,9 +63,8 @@ class HighlightVisitorsOutsideOfGarden {
}
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!config.highlightVisitors) return
- if (!event.repeatSeconds(1)) return
EntityUtils.getEntities<EntityLivingBase>()
.filter { it !is EntityArmorStand && isVisitor(it) }
.forEach {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbility.kt b/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbility.kt
index 2787215f0..256beb0de 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbility.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbility.kt
@@ -3,6 +3,7 @@ package at.hannibal2.skyhanni.features.itemabilities.abilitycooldown
import at.hannibal2.skyhanni.features.dungeon.DungeonAPI
import at.hannibal2.skyhanni.utils.LorenzColor
import at.hannibal2.skyhanni.utils.LorenzUtils
+import at.hannibal2.skyhanni.utils.LorenzUtils.round
import at.hannibal2.skyhanni.utils.NEUInternalName
import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
@@ -103,7 +104,7 @@ enum class ItemAbility(
duration /= 100
var d = duration.toDouble()
d /= 10.0
- LorenzUtils.formatDouble(d)
+ d.round(1).addSeparators()
} else {
duration /= 1000
duration++
diff --git a/src/main/java/at/hannibal2/skyhanni/features/mining/KingTalismanHelper.kt b/src/main/java/at/hannibal2/skyhanni/features/mining/KingTalismanHelper.kt
index ca92ddb2b..1643c460a 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/mining/KingTalismanHelper.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/mining/KingTalismanHelper.kt
@@ -5,7 +5,7 @@ import at.hannibal2.skyhanni.data.IslandType
import at.hannibal2.skyhanni.data.ProfileStorageData
import at.hannibal2.skyhanni.events.GuiRenderEvent
import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.CollectionUtils.sorted
import at.hannibal2.skyhanni.utils.CollectionUtils.sortedDesc
@@ -70,8 +70,7 @@ class KingTalismanHelper {
kingLocation.distanceToPlayer() < 10
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
- if (!event.repeatSeconds(1)) return
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!isEnabled()) return
val storage = storage ?: return
diff --git a/src/main/java/at/hannibal2/skyhanni/features/mining/eventtracker/MiningEventTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/mining/eventtracker/MiningEventTracker.kt
index 9d0ce3c33..251466cc9 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/mining/eventtracker/MiningEventTracker.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/mining/eventtracker/MiningEventTracker.kt
@@ -8,8 +8,8 @@ import at.hannibal2.skyhanni.data.HypixelData
import at.hannibal2.skyhanni.data.IslandType
import at.hannibal2.skyhanni.events.BossbarUpdateEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.test.command.ErrorManager
import at.hannibal2.skyhanni.utils.APIUtil
import at.hannibal2.skyhanni.utils.LorenzUtils
@@ -89,8 +89,7 @@ class MiningEventTracker {
}
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
- if (!event.repeatSeconds(1)) return
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!config.enabled) return
if (!LorenzUtils.inSkyBlock || (!config.outsideMining && !LorenzUtils.inAdvancedMiningIsland())) return
if (!canRequestAt.isInPast()) return
diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/ServerRestartTitle.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/ServerRestartTitle.kt
index acab50046..7c483a63a 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/misc/ServerRestartTitle.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/ServerRestartTitle.kt
@@ -2,57 +2,40 @@ package at.hannibal2.skyhanni.features.misc
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.data.ScoreboardData
-import at.hannibal2.skyhanni.events.LorenzTickEvent
-import at.hannibal2.skyhanni.test.command.ErrorManager
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
+import at.hannibal2.skyhanni.utils.StringUtils.matchFirst
import at.hannibal2.skyhanni.utils.TimeUtils.format
import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.time.Duration.Companion.minutes
import kotlin.time.Duration.Companion.seconds
-class ServerRestartTitle {
+object ServerRestartTitle {
private val config get() = SkyHanniMod.feature.misc
-
- companion object {
- private val restartingGroup = RepoPattern.group("features.misc.serverrestart")
- private val restartingPattern by restartingGroup.pattern(
- "time",
- "§cServer closing: (?<minutes>\\d+):(?<seconds>\\d+) ?§8.*"
- )
- val restartingGreedyPattern by restartingGroup.pattern(
- "greedy",
- "§cServer closing.*"
- )
- }
+ private val patternGroup = RepoPattern.group("features.misc.serverrestart")
+ private val restartingPattern by patternGroup.pattern(
+ "time",
+ "§cServer closing: (?<minutes>\\d+):(?<seconds>\\d+) ?§8.*"
+ )
+ val restartingGreedyPattern by patternGroup.pattern(
+ "greedy",
+ "§cServer closing.*"
+ )
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!LorenzUtils.inSkyBlock) return
if (!config.serverRestartTitle) return
- if (!event.repeatSeconds(1)) return
-
- for (line in ScoreboardData.sidebarLinesFormatted) {
- restartingPattern.matchMatcher(line) {
- try {
- val minutes = group("minutes").toInt().minutes
- val seconds = group("seconds").toInt().seconds
- val totalTime = minutes + seconds
- if (totalTime > 2.minutes && totalTime.inWholeSeconds % 30 != 0L) return
- val time = totalTime.format()
- LorenzUtils.sendTitle("§cServer Restart in §b$time", 2.seconds)
- } catch (e: Throwable) {
- ErrorManager.logErrorWithData(
- e, "Error reading server restart time from scoreboard",
- "line" to line,
- "restartPattern" to restartingPattern.pattern(),
- )
- }
- return
- }
+ ScoreboardData.sidebarLinesFormatted.matchFirst(restartingPattern) {
+ val minutes = group("minutes").toInt().minutes
+ val seconds = group("seconds").toInt().seconds
+ val totalTime = minutes + seconds
+ if (totalTime > 2.minutes && totalTime.inWholeSeconds % 30 != 0L) return
+ val time = totalTime.format()
+ LorenzUtils.sendTitle("§cServer Restart in §b$time", 2.seconds)
}
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/items/EstimatedItemValue.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/items/EstimatedItemValue.kt
index 71b0f831d..6106e4c1b 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/misc/items/EstimatedItemValue.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/items/EstimatedItemValue.kt
@@ -38,7 +38,7 @@ import kotlin.math.roundToLong
object EstimatedItemValue {
- val config get() = SkyHanniMod.feature.inventory.estimatedItemValues
+ private val config get() = SkyHanniMod.feature.inventory.estimatedItemValues
private var display = emptyList<List<Any>>()
private val cache = mutableMapOf<ItemStack, List<List<Any>>>()
private var lastToolTipTime = 0L
diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/items/EstimatedItemValueCalculator.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/items/EstimatedItemValueCalculator.kt
index 1baf781ef..14812cd74 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/misc/items/EstimatedItemValueCalculator.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/items/EstimatedItemValueCalculator.kt
@@ -1,5 +1,6 @@
package at.hannibal2.skyhanni.features.misc.items
+import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.test.command.ErrorManager
import at.hannibal2.skyhanni.utils.CollectionUtils.sortedDesc
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
@@ -54,7 +55,7 @@ import java.util.Locale
object EstimatedItemValueCalculator {
- private val config get() = EstimatedItemValue.config
+ private val config get() = SkyHanniMod.feature.inventory.estimatedItemValues
private val additionalCostFunctions = listOf(
::addAttributeCost,
::addReforgeStone,
diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/items/EstimatedWardrobePrice.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/items/EstimatedWardrobePrice.kt
index c36fdbbf5..2c3e00803 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/misc/items/EstimatedWardrobePrice.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/items/EstimatedWardrobePrice.kt
@@ -1,5 +1,6 @@
package at.hannibal2.skyhanni.features.misc.items
+import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator
import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
import at.hannibal2.skyhanni.events.LorenzToolTipEvent
@@ -13,7 +14,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class EstimatedWardrobePrice {
- private val config get() = EstimatedItemValue.config
+ private val config get() = SkyHanniMod.feature.inventory.estimatedItemValues
var data = mutableMapOf<Int, MutableList<ItemStack>>()
@SubscribeEvent
diff --git a/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/dailyquest/DailyQuestHelper.kt b/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/dailyquest/DailyQuestHelper.kt
index 30356b9c9..f06a997ec 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/dailyquest/DailyQuestHelper.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/dailyquest/DailyQuestHelper.kt
@@ -8,7 +8,7 @@ import at.hannibal2.skyhanni.events.GuiContainerEvent
import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.events.LorenzRenderWorldEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.events.TabListUpdateEvent
import at.hannibal2.skyhanni.features.nether.kuudra.KuudraTier
import at.hannibal2.skyhanni.features.nether.reputationhelper.CrimsonIsleReputationHelper
@@ -71,7 +71,7 @@ class DailyQuestHelper(val reputationHelper: CrimsonIsleReputationHelper) {
}
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!isEnabled()) return
if (event.repeatSeconds(3)) {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingCaveDefenseBlocks.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingCaveDefenseBlocks.kt
index 17af7fd1a..7b673f65e 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingCaveDefenseBlocks.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingCaveDefenseBlocks.kt
@@ -2,8 +2,8 @@ package at.hannibal2.skyhanni.features.rift.area.livingcave
import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator
import at.hannibal2.skyhanni.events.LorenzRenderWorldEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.ReceiveParticleEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.events.ServerBlockChangeEvent
import at.hannibal2.skyhanni.features.rift.RiftAPI
import at.hannibal2.skyhanni.mixins.hooks.RenderLivingEntityHelper
@@ -31,11 +31,9 @@ class LivingCaveDefenseBlocks {
class DefenseBlock(val entity: EntityOtherPlayerMP, val location: LorenzVec, var hidden: Boolean = false)
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!isEnabled()) return
- if (event.repeatSeconds(1)) {
- staticBlocks = staticBlocks.editCopy { removeIf { it.entity.isDead } }
- }
+ staticBlocks = staticBlocks.editCopy { removeIf { it.entity.isDead } }
}
@SubscribeEvent
diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingMetalSuitProgress.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingMetalSuitProgress.kt
index aa8bc1889..f64d5b42c 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingMetalSuitProgress.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingMetalSuitProgress.kt
@@ -1,7 +1,7 @@
package at.hannibal2.skyhanni.features.rift.area.livingcave
import at.hannibal2.skyhanni.events.GuiRenderEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.features.rift.RiftAPI
import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.InventoryUtils
@@ -56,9 +56,8 @@ class LivingMetalSuitProgress {
}
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!isEnabled()) return
- if (!event.repeatSeconds(1)) return
val old = progressMap
progressMap = buildMap {
for (armor in InventoryUtils.getArmor().filterNotNull()) {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/stillgorechateau/RiftBloodEffigies.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/stillgorechateau/RiftBloodEffigies.kt
index 261229e09..b31c7fb40 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/stillgorechateau/RiftBloodEffigies.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/stillgorechateau/RiftBloodEffigies.kt
@@ -28,24 +28,22 @@ import net.minecraft.entity.item.EntityArmorStand
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.time.Duration.Companion.minutes
-class RiftBloodEffigies {
+object RiftBloodEffigies {
private val config get() = RiftAPI.config.area.stillgoreChateau.bloodEffigies
private var locations: List<LorenzVec> = emptyList()
private var effigiesTimes = cleanMap()
- companion object {
- private val group = RepoPattern.group("rift.area.stillgore.effegies")
- val effigiesTimerPattern by group.pattern(
- "respawn",
- "§eRespawn §c(?<time>.*) §7\\(or click!\\)"
- )
- val heartsPattern by group.pattern(
- "heart",
- "Effigies: (?<hearts>((§[7c])?⧯)*)"
- )
- }
+ private val patternGroup = RepoPattern.group("rift.area.stillgore.effegies")
+ private val effigiesTimerPattern by patternGroup.pattern(
+ "respawn",
+ "§eRespawn §c(?<time>.*) §7\\(or click!\\)"
+ )
+ val heartsPattern by patternGroup.pattern(
+ "heart",
+ "Effigies: (?<hearts>((§[7c])?⧯)*)"
+ )
@SubscribeEvent
fun onWorldChange(event: LorenzWorldChangeEvent) {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/westvillage/kloon/KloonHacking.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/westvillage/kloon/KloonHacking.kt
index 83890c360..2470eacda 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/westvillage/kloon/KloonHacking.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/westvillage/kloon/KloonHacking.kt
@@ -7,8 +7,8 @@ import at.hannibal2.skyhanni.events.InventoryCloseEvent
import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.events.LorenzRenderWorldEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.LorenzToolTipEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.features.rift.RiftAPI
import at.hannibal2.skyhanni.test.GriffinUtils.drawWaypointFilled
import at.hannibal2.skyhanni.utils.InventoryUtils
@@ -39,11 +39,9 @@ class KloonHacking {
private var nearestTerminal: KloonTerminal? = null
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!RiftAPI.inRift()) return
- if (event.repeatSeconds(1)) {
- checkHelmet()
- }
+ checkHelmet()
}
private fun checkHelmet() {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/everywhere/CruxTalismanDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/everywhere/CruxTalismanDisplay.kt
index a38de4fd3..7ba556680 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/rift/everywhere/CruxTalismanDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/rift/everywhere/CruxTalismanDisplay.kt
@@ -2,7 +2,7 @@ package at.hannibal2.skyhanni.features.rift.everywhere
import at.hannibal2.skyhanni.events.ConfigLoadEvent
import at.hannibal2.skyhanni.events.GuiRenderEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.features.rift.RiftAPI
import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.ConditionalUtils
@@ -86,7 +86,7 @@ object CruxTalismanDisplay {
}
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!isEnabled()) return
if (!event.repeatSeconds(2)) return
if (!InventoryUtils.getItemsInOwnInventory().any { it.getInternalName().startsWith(partialName) }) return
diff --git a/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerClearView.kt b/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerClearView.kt
index a4555eaf3..7724c7e22 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerClearView.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerClearView.kt
@@ -3,8 +3,8 @@ package at.hannibal2.skyhanni.features.slayer.blaze
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator
import at.hannibal2.skyhanni.events.CheckRenderEntityEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.ReceiveParticleEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.features.combat.damageindicator.BossType
import at.hannibal2.skyhanni.features.combat.damageindicator.DamageIndicatorManager
import at.hannibal2.skyhanni.utils.LorenzUtils
@@ -16,24 +16,23 @@ class BlazeSlayerClearView {
private var nearBlaze = false
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!LorenzUtils.inSkyBlock) return
- if (event.repeatSeconds(3)) {
- nearBlaze = DamageIndicatorManager.getDistanceTo(
- BossType.SLAYER_BLAZE_1,
- BossType.SLAYER_BLAZE_2,
- BossType.SLAYER_BLAZE_3,
- BossType.SLAYER_BLAZE_4,
- BossType.SLAYER_BLAZE_TYPHOEUS_1,
- BossType.SLAYER_BLAZE_TYPHOEUS_2,
- BossType.SLAYER_BLAZE_TYPHOEUS_3,
- BossType.SLAYER_BLAZE_TYPHOEUS_4,
- BossType.SLAYER_BLAZE_QUAZII_1,
- BossType.SLAYER_BLAZE_QUAZII_2,
- BossType.SLAYER_BLAZE_QUAZII_3,
- BossType.SLAYER_BLAZE_QUAZII_4,
- ) < 10
- }
+ if (!event.repeatSeconds(3)) return
+ nearBlaze = DamageIndicatorManager.getDistanceTo(
+ BossType.SLAYER_BLAZE_1,
+ BossType.SLAYER_BLAZE_2,
+ BossType.SLAYER_BLAZE_3,
+ BossType.SLAYER_BLAZE_4,
+ BossType.SLAYER_BLAZE_TYPHOEUS_1,
+ BossType.SLAYER_BLAZE_TYPHOEUS_2,
+ BossType.SLAYER_BLAZE_TYPHOEUS_3,
+ BossType.SLAYER_BLAZE_TYPHOEUS_4,
+ BossType.SLAYER_BLAZE_QUAZII_1,
+ BossType.SLAYER_BLAZE_QUAZII_2,
+ BossType.SLAYER_BLAZE_QUAZII_3,
+ BossType.SLAYER_BLAZE_QUAZII_4,
+ ) < 10
}
@SubscribeEvent
diff --git a/src/main/java/at/hannibal2/skyhanni/features/slayer/enderman/EndermanSlayerFeatures.kt b/src/main/java/at/hannibal2/skyhanni/features/slayer/enderman/EndermanSlayerFeatures.kt
index fb6b57bab..a3359202c 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/slayer/enderman/EndermanSlayerFeatures.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/slayer/enderman/EndermanSlayerFeatures.kt
@@ -5,8 +5,8 @@ import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator
import at.hannibal2.skyhanni.data.IslandType
import at.hannibal2.skyhanni.events.CheckRenderEntityEvent
import at.hannibal2.skyhanni.events.LorenzRenderWorldEvent
-import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent
+import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.events.ServerBlockChangeEvent
import at.hannibal2.skyhanni.mixins.hooks.RenderLivingEntityHelper
import at.hannibal2.skyhanni.test.GriffinUtils.drawWaypointFilled
@@ -161,9 +161,8 @@ class EndermanSlayerFeatures {
}
@SubscribeEvent
- fun onTick(event: LorenzTickEvent) {
+ fun onSecondPassed(event: SecondPassedEvent) {
if (!IslandType.THE_END.isInIsland()) return
- if (!event.repeatSeconds(1)) return
nukekubiSkulls.removeAll {
if (it.isDead) {
diff --git a/src/main/java/at/hannibal2/skyhanni/test/SkyHanniDebugsAndTests.kt b/src/main/java/at/hannibal2/skyhanni/test/SkyHanniDebugsAndTests.kt
index 4ece06c55..43e3974da 100644
--- a/src/main/java/at/hannibal2/skyhanni/test/SkyHanniDebugsAndTests.kt
+++ b/src/main/java/at/hannibal2/skyhanni/test/SkyHanniDebugsAndTests.kt
@@ -337,9 +337,9 @@ class SkyHanniDebugsAndTests {
fun copyLocation(args: Array<String>) {
val location = LocationUtils.playerLocation()
- val x = LorenzUtils.formatDouble(location.x + 0.001).replace(",", ".")
- val y = LorenzUtils.formatDouble(location.y + 0.001).replace(",", ".")
- val z = LorenzUtils.formatDouble(location.z + 0.001).replace(",", ".")
+ val x = (location.x + 0.001).round(1)
+ val y = (location.y + 0.001).round(1)
+ val z = (location.z + 0.001).round(1)
if (args.size == 1 && args[0].equals("json", false)) {
OSUtils.copyToClipboard("\"$x:$y:$z\"")
return
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/ColorUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/ColorUtils.kt
index 3b1986d40..97a1342c1 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/ColorUtils.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/ColorUtils.kt
@@ -34,5 +34,3 @@ object ColorUtils {
fun Color.withAlpha(alpha: Int): Int = (alpha.coerceIn(0, 255) shl 24) or (this.rgb and 0x00ffffff)
}
-
-
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt
index c292abafd..bf258dab9 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt
@@ -15,7 +15,6 @@ import at.hannibal2.skyhanni.test.TestBingo
import at.hannibal2.skyhanni.utils.ChatUtils.lastButtonClicked
import at.hannibal2.skyhanni.utils.ItemUtils.getItemCategoryOrNull
import at.hannibal2.skyhanni.utils.NEUItems.getItemStackOrNull
-import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.StringUtils.capAtMinecraftLength
import at.hannibal2.skyhanni.utils.StringUtils.removeColor
import at.hannibal2.skyhanni.utils.StringUtils.toDashlessUUID
@@ -133,11 +132,6 @@ object LorenzUtils {
fun formatPercentage(percentage: Double, format: String?): String =
DecimalFormat(format).format(percentage * 100).replace(',', '.') + "%"
- @Deprecated("old code", ReplaceWith("d.round(round).addSeparators()"))
- fun formatDouble(d: Double, round: Int = 1): String {
- return d.round(round).addSeparators()
- }
-
fun consoleLog(text: String) {
SkyHanniMod.consoleLog(text)
}
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt b/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt
index 2330a6a1d..87a265c84 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt
@@ -93,9 +93,6 @@ object NEUItems {
return map
}
- @Deprecated("moved", ReplaceWith("NEUInternalName.fromItemNameOrNull(itemName)"))
- fun getInternalNameOrNull(itemName: String): NEUInternalName? = NEUInternalName.fromItemNameOrNull(itemName)
-
fun getInternalName(itemStack: ItemStack): String? = ItemResolutionQuery(manager)
.withCurrentGuiContext()
.withItemStack(itemStack)
@@ -171,9 +168,9 @@ object NEUItems {
val translateX: Float
val translateY: Float
if (isSkull) {
- val skulldiff = ((scaleMultiplier) * 2.5).toFloat()
- translateX = x - skulldiff
- translateY = y - skulldiff
+ val skullDiff = ((scaleMultiplier) * 2.5).toFloat()
+ translateX = x - skullDiff
+ translateY = y - skullDiff
} else {
translateX = x
translateY = y
@@ -277,19 +274,10 @@ object NEUItems {
return result
}
- @Deprecated("Do not use strings as id", ReplaceWith("NEUItems.getMultiplier(internalName.asInternalName())"))
- fun getMultiplier(internalName: String, tryCount: Int = 0): Pair<String, Int> {
- val pair = getMultiplier(internalName.asInternalName(), tryCount)
- return Pair(pair.first.asString(), pair.second)
- }
-
fun getRecipes(internalName: NEUInternalName): Set<NeuRecipe> {
- if (recipesCache.contains(internalName)) {
- return recipesCache[internalName]!!
+ return recipesCache.getOrPut(internalName) {
+ manager.getRecipesFor(internalName.asString())
}
- val recipes = manager.getRecipesFor(internalName.asString())
- recipesCache[internalName] = recipes
- return recipes
}
fun NeuRecipe.getCachedIngredients() = ingredientsCache.getOrPut(this) { ingredients }
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/NumberUtil.kt b/src/main/java/at/hannibal2/skyhanni/utils/NumberUtil.kt
index f9b1ceb7a..e2df5349f 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/NumberUtil.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/NumberUtil.kt
@@ -170,11 +170,11 @@ object NumberUtil {
lastDecimal + decimal
}
- val pattern = "^[0-9]*$".toPattern()
- val formatPattern = "^[0-9,.]*[kmb]?$".toPattern()
+ private val numberPattern = "^[0-9]*$".toPattern()
+ private val formatPattern = "^[0-9,.]*[kmb]?$".toPattern()
fun String.isInt(): Boolean {
- return isNotEmpty() && pattern.matcher(this).matches()
+ return isNotEmpty() && numberPattern.matcher(this).matches()
}
fun String.isFormatNumber(): Boolean {