diff options
| author | hannibal2 <24389977+hannibal002@users.noreply.github.com> | 2024-09-09 15:26:16 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-09 15:26:16 +0200 |
| commit | 18da4a7c13d215fb6cd7969654986d9072dd24fa (patch) | |
| tree | 493b5f4aed0e6511cac67cfdd7815d4eb7852b31 /src/main/java/at/hannibal2/skyhanni | |
| parent | e17e70b6933982ca417577f441928f77cbbf9ef1 (diff) | |
| download | skyhanni-18da4a7c13d215fb6cd7969654986d9072dd24fa.tar.gz skyhanni-18da4a7c13d215fb6cd7969654986d9072dd24fa.tar.bz2 skyhanni-18da4a7c13d215fb6cd7969654986d9072dd24fa.zip | |
Improvement: SH Tracker Search (#2477)
Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni')
22 files changed, 513 insertions, 261 deletions
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 931f3b622..51deea2b8 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 @@ -13,7 +13,7 @@ import at.hannibal2.skyhanni.events.OwnInventoryItemUpdateEvent import at.hannibal2.skyhanni.events.SackChangeEvent import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule import at.hannibal2.skyhanni.utils.CollectionUtils.addOrPut -import at.hannibal2.skyhanni.utils.CollectionUtils.addString +import at.hannibal2.skyhanni.utils.CollectionUtils.addSearchString import at.hannibal2.skyhanni.utils.ConditionalUtils.afterChange import at.hannibal2.skyhanni.utils.ConfigUtils import at.hannibal2.skyhanni.utils.InventoryUtils @@ -26,7 +26,7 @@ import at.hannibal2.skyhanni.utils.LorenzUtils.isInIsland import at.hannibal2.skyhanni.utils.NEUItems.getPriceOrNull import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators import at.hannibal2.skyhanni.utils.NumberUtil.shortFormat -import at.hannibal2.skyhanni.utils.renderables.Renderable +import at.hannibal2.skyhanni.utils.renderables.Searchable import at.hannibal2.skyhanni.utils.tracker.SkyHanniTracker import at.hannibal2.skyhanni.utils.tracker.TrackerData import com.google.gson.annotations.Expose @@ -212,36 +212,35 @@ object EnderNodeTracker { else -> null } - private fun drawDisplay(data: Data) = buildList<Renderable> { + private fun drawDisplay(data: Data) = buildList<Searchable> { val lootProfit = getLootProfit(data) - addString("§5§lEnder Node Tracker") - addString("§d${data.totalNodesMined.addSeparators()} Ender Nodes mined") - addString("§6${lootProfit.values.sum().shortFormat()} Coins made") - addString(" ") - addString("§b${data.totalEndermiteNests.addSeparators()} §cEndermite Nest") + addSearchString("§5§lEnder Node Tracker") + addSearchString("§d${data.totalNodesMined.addSeparators()} Ender Nodes mined") + addSearchString("§6${lootProfit.values.sum().shortFormat()} Coins made") + addSearchString(" ") + addSearchString("§b${data.totalEndermiteNests.addSeparators()} §cEndermite Nest", "Endermite Nest") for (item in EnderNode.entries.subList(0, 11)) { val count = (data.lootCount[item] ?: 0).addSeparators() val profit = (lootProfit[item] ?: 0.0).shortFormat() - addString("§b$count ${item.displayName} §7(§6$profit§7)") + addSearchString("§b$count ${item.displayName} §7(§6$profit§7)", item.displayName) } - addString(" ") + addSearchString(" ") val totalEnderArmor = calculateEnderArmor(data) - addString( - "§b${totalEnderArmor.addSeparators()} §5Ender Armor " + - "§7(§6${(totalEnderArmor * 10_000).shortFormat()}§7)" + addSearchString( + "§b${totalEnderArmor.addSeparators()} §5Ender Armor " + "§7(§6${(totalEnderArmor * 10_000).shortFormat()}§7)" ) for (item in EnderNode.entries.subList(11, 16)) { val count = (data.lootCount[item] ?: 0).addSeparators() val profit = (lootProfit[item] ?: 0.0).shortFormat() - addString("§b$count ${item.displayName} §7(§6$profit§7)") + addSearchString("§b$count ${item.displayName} §7(§6$profit§7)") } // enderman pet rarities val (c, u, r, e, l) = EnderNode.entries.subList(16, 21).map { (data.lootCount[it] ?: 0).addSeparators() } val profit = EnderNode.entries.subList(16, 21).sumOf { lootProfit[it] ?: 0.0 }.shortFormat() - addString("§f$c§7-§a$u§7-§9$r§7-§5$e§7-§6$l §fEnderman Pet §7(§6$profit§7)") + addSearchString("§f$c§7-§a$u§7-§9$r§7-§5$e§7-§6$l §fEnderman Pet §7(§6$profit§7)") } private fun calculateEnderArmor(storage: Data) = @@ -249,10 +248,10 @@ object EnderNodeTracker { .map { it.value } .sum() - private fun formatDisplay(map: List<Renderable>): List<Renderable> { + private fun formatDisplay(map: List<Searchable>): List<Searchable> { if (!ProfileStorageData.loaded) return emptyList() - val newList = mutableListOf<Renderable>() + val newList = mutableListOf<Searchable>() for (index in config.textFormat.get()) { // TODO, change functionality to use enum rather than ordinals newList.add(map[index.ordinal]) diff --git a/src/main/java/at/hannibal2/skyhanni/features/event/diana/DianaProfitTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/event/diana/DianaProfitTracker.kt index f8ae6165b..ade5966ea 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/event/diana/DianaProfitTracker.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/event/diana/DianaProfitTracker.kt @@ -9,7 +9,7 @@ import at.hannibal2.skyhanni.events.LorenzChatEvent import at.hannibal2.skyhanni.events.RepositoryReloadEvent import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule import at.hannibal2.skyhanni.utils.ChatUtils -import at.hannibal2.skyhanni.utils.CollectionUtils.addString +import at.hannibal2.skyhanni.utils.CollectionUtils.addSearchString import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.NEUInternalName import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators @@ -19,6 +19,8 @@ import at.hannibal2.skyhanni.utils.RegexUtils.matchMatcher import at.hannibal2.skyhanni.utils.RegexUtils.matches import at.hannibal2.skyhanni.utils.SimpleTimeMark import at.hannibal2.skyhanni.utils.renderables.Renderable +import at.hannibal2.skyhanni.utils.renderables.Searchable +import at.hannibal2.skyhanni.utils.renderables.toSearchable import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import at.hannibal2.skyhanni.utils.tracker.ItemTrackerData import at.hannibal2.skyhanni.utils.tracker.SkyHanniItemTracker @@ -77,8 +79,8 @@ object DianaProfitTracker { } } - private fun drawDisplay(data: Data): List<Renderable> = buildList { - addString("§e§lDiana Profit Tracker") + private fun drawDisplay(data: Data): List<Searchable> = buildList { + addSearchString("§e§lDiana Profit Tracker") val profit = tracker.drawItems(data, { true }, this) @@ -87,7 +89,7 @@ object DianaProfitTracker { Renderable.hoverTips( "§7Burrows dug: §e${treasureCoins.addSeparators()}", listOf("§7You dug out griffin burrows §e${treasureCoins.addSeparators()} §7times."), - ), + ).toSearchable(), ) add(tracker.addTotalProfit(profit, data.burrowsDug, "burrow")) diff --git a/src/main/java/at/hannibal2/skyhanni/features/event/diana/MythologicalCreatureTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/event/diana/MythologicalCreatureTracker.kt index fc7442faf..ec882d6ec 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/event/diana/MythologicalCreatureTracker.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/event/diana/MythologicalCreatureTracker.kt @@ -6,14 +6,14 @@ import at.hannibal2.skyhanni.events.GuiRenderEvent import at.hannibal2.skyhanni.events.LorenzChatEvent import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule import at.hannibal2.skyhanni.utils.CollectionUtils.addOrPut -import at.hannibal2.skyhanni.utils.CollectionUtils.addString +import at.hannibal2.skyhanni.utils.CollectionUtils.addSearchString import at.hannibal2.skyhanni.utils.CollectionUtils.sumAllValues import at.hannibal2.skyhanni.utils.ConditionalUtils import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators import at.hannibal2.skyhanni.utils.RegexUtils.matches import at.hannibal2.skyhanni.utils.SimpleTimeMark -import at.hannibal2.skyhanni.utils.renderables.Renderable +import at.hannibal2.skyhanni.utils.renderables.Searchable import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import at.hannibal2.skyhanni.utils.tracker.SkyHanniTracker import at.hannibal2.skyhanni.utils.tracker.TrackerData @@ -30,32 +30,31 @@ object MythologicalCreatureTracker { private val patternGroup = RepoPattern.group("event.diana.mythological.tracker") private val minotaurPattern by patternGroup.pattern( "minotaur", - ".* §r§eYou dug out a §r§2Minotaur§r§e!" + ".* §r§eYou dug out a §r§2Minotaur§r§e!", ) private val gaiaConstructPattern by patternGroup.pattern( "gaiaconstruct", - ".* §r§eYou dug out a §r§2Gaia Construct§r§e!" + ".* §r§eYou dug out a §r§2Gaia Construct§r§e!", ) private val minosChampionPattern by patternGroup.pattern( "minoschampion", - ".* §r§eYou dug out a §r§2Minos Champion§r§e!" + ".* §r§eYou dug out a §r§2Minos Champion§r§e!", ) private val siameseLynxesPattern by patternGroup.pattern( "siameselynxes", - ".* §r§eYou dug out §r§2Siamese Lynxes§r§e!" + ".* §r§eYou dug out §r§2Siamese Lynxes§r§e!", ) private val minosHunterPattern by patternGroup.pattern( "minoshunter", - ".* §r§eYou dug out a §r§2Minos Hunter§r§e!" + ".* §r§eYou dug out a §r§2Minos Hunter§r§e!", ) private val minosInquisitorPattern by patternGroup.pattern( "minosinquisitor", - ".* §r§eYou dug out a §r§2Minos Inquisitor§r§e!" + ".* §r§eYou dug out a §r§2Minos Inquisitor§r§e!", ) private val tracker = - SkyHanniTracker("Mythological Creature Tracker", { Data() }, { it.diana.mythologicalMobTracker }) - { drawDisplay(it) } + SkyHanniTracker("Mythological Creature Tracker", { Data() }, { it.diana.mythologicalMobTracker }) { drawDisplay(it) } class Data : TrackerData() { @@ -90,8 +89,7 @@ object MythologicalCreatureTracker { // TODO migrate to abstract feature in the future if (creatureType == MythologicalCreatureType.MINOS_INQUISITOR) { - event.chatComponent = - ChatComponentText(event.message + " §e(${it.creaturesSinceLastInquisitor})") + event.chatComponent = ChatComponentText(event.message + " §e(${it.creaturesSinceLastInquisitor})") it.creaturesSinceLastInquisitor = 0 } else it.creaturesSinceLastInquisitor++ } @@ -100,8 +98,8 @@ object MythologicalCreatureTracker { } } - private fun drawDisplay(data: Data): List<Renderable> = buildList { - addString("§7Mythological Creature Tracker:") + private fun drawDisplay(data: Data): List<Searchable> = buildList { + addSearchString("§7Mythological Creature Tracker:") val total = data.count.sumAllValues() for ((creatureType, amount) in data.count.entries.sortedByDescending { it.value }) { val percentageSuffix = if (config.showPercentage.get()) { @@ -109,10 +107,13 @@ object MythologicalCreatureTracker { " §7$percentage" } else "" - addString(" §7- §e${amount.addSeparators()} ${creatureType.displayName}$percentageSuffix") + addSearchString( + " §7- §e${amount.addSeparators()} ${creatureType.displayName}$percentageSuffix", + searchText = creatureType.displayName, + ) } - addString(" §7- §e${total.addSeparators()} §7Total Mythological Creatures") - addString(" §7- §e${data.creaturesSinceLastInquisitor.addSeparators()} §7Creatures since last Minos Inquisitor") + addSearchString(" §7- §e${total.addSeparators()} §7Total Mythological Creatures") + addSearchString(" §7- §e${data.creaturesSinceLastInquisitor.addSeparators()} §7Creatures since last Minos Inquisitor") } @SubscribeEvent diff --git a/src/main/java/at/hannibal2/skyhanni/features/event/jerry/frozentreasure/FrozenTreasureTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/event/jerry/frozentreasure/FrozenTreasureTracker.kt index 4fc5b824b..80812c4c5 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/event/jerry/frozentreasure/FrozenTreasureTracker.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/event/jerry/frozentreasure/FrozenTreasureTracker.kt @@ -12,7 +12,7 @@ import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent import at.hannibal2.skyhanni.events.SecondPassedEvent import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule import at.hannibal2.skyhanni.utils.CollectionUtils.addOrPut -import at.hannibal2.skyhanni.utils.CollectionUtils.addString +import at.hannibal2.skyhanni.utils.CollectionUtils.addSearchString import at.hannibal2.skyhanni.utils.ConfigUtils import at.hannibal2.skyhanni.utils.LorenzUtils.isInIsland import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators @@ -20,7 +20,7 @@ import at.hannibal2.skyhanni.utils.NumberUtil.shortFormat import at.hannibal2.skyhanni.utils.RegexUtils.matchMatcher import at.hannibal2.skyhanni.utils.RegexUtils.matches import at.hannibal2.skyhanni.utils.StringUtils.removeColor -import at.hannibal2.skyhanni.utils.renderables.Renderable +import at.hannibal2.skyhanni.utils.renderables.Searchable import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import at.hannibal2.skyhanni.utils.tracker.SkyHanniTracker import at.hannibal2.skyhanni.utils.tracker.TrackerData @@ -105,8 +105,8 @@ object FrozenTreasureTracker { icePerHour = (icePerSecond.average() * 3600).toInt() } - private fun formatDisplay(map: List<Renderable>): List<Renderable> { - val newList = mutableListOf<Renderable>() + private fun formatDisplay(map: List<Searchable>): List<Searchable> { + val newList = mutableListOf<Searchable>() for (index in config.textFormat) { // TODO, change functionality to use enum rather than ordinals newList.add(map[index.ordinal]) @@ -137,20 +137,20 @@ object FrozenTreasureTracker { } } - private fun drawDisplay(data: Data) = buildList { + private fun drawDisplay(data: Data) = buildList<Searchable> { calculateIce(data) - addString("§e§lFrozen Treasure Tracker") - addString("§6${formatNumber(data.treasuresMined)} Treasures Mined") - addString("§3${formatNumber(estimatedIce)} Total Ice") - addString("§3${formatNumber(icePerHour)} Ice/hr") - addString("§8${formatNumber(data.compactProcs)} Compact Procs") - addString("") + addSearchString("§e§lFrozen Treasure Tracker") + addSearchString("§6${formatNumber(data.treasuresMined)} Treasures Mined") + addSearchString("§3${formatNumber(estimatedIce)} Total Ice") + addSearchString("§3${formatNumber(icePerHour)} Ice/hr") + addSearchString("§8${formatNumber(data.compactProcs)} Compact Procs") + addSearchString("") for (treasure in FrozenTreasure.entries) { val count = (data.treasureCount[treasure] ?: 0) * if (config.showAsDrops) treasure.defaultAmount else 1 - addString("§b${formatNumber(count)} ${treasure.displayName}") + addSearchString("§b${formatNumber(count)} ${treasure.displayName}", treasure.displayName) } - addString("") + addSearchString("") } fun formatNumber(amount: Number): String { diff --git a/src/main/java/at/hannibal2/skyhanni/features/fishing/tracker/FishingProfitTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/fishing/tracker/FishingProfitTracker.kt index 619334a98..12f3accd1 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/fishing/tracker/FishingProfitTracker.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/fishing/tracker/FishingProfitTracker.kt @@ -13,8 +13,7 @@ import at.hannibal2.skyhanni.features.fishing.FishingAPI import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule import at.hannibal2.skyhanni.test.command.ErrorManager import at.hannibal2.skyhanni.utils.ChatUtils -import at.hannibal2.skyhanni.utils.CollectionUtils.addButton -import at.hannibal2.skyhanni.utils.CollectionUtils.addString +import at.hannibal2.skyhanni.utils.CollectionUtils.addSearchString import at.hannibal2.skyhanni.utils.DelayedRun import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.NEUInternalName @@ -26,6 +25,9 @@ import at.hannibal2.skyhanni.utils.RegexUtils.matchMatcher import at.hannibal2.skyhanni.utils.SimpleTimeMark import at.hannibal2.skyhanni.utils.StringUtils import at.hannibal2.skyhanni.utils.renderables.Renderable +import at.hannibal2.skyhanni.utils.renderables.RenderableUtils.addButton +import at.hannibal2.skyhanni.utils.renderables.Searchable +import at.hannibal2.skyhanni.utils.renderables.toSearchable import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import at.hannibal2.skyhanni.utils.tracker.ItemTrackerData import at.hannibal2.skyhanni.utils.tracker.SkyHanniItemTracker @@ -119,8 +121,8 @@ object FishingProfitTracker { return map } - private fun drawDisplay(data: Data): List<Renderable> = buildList { - addString("§e§lFishing Profit Tracker") + private fun drawDisplay(data: Data): List<Searchable> = buildList { + addSearchString("§e§lFishing Profit Tracker") val filter: (NEUInternalName) -> Boolean = addCategories(data) val profit = tracker.drawItems(data, filter, this) @@ -130,7 +132,7 @@ object FishingProfitTracker { Renderable.hoverTips( "§7Times fished: §e${fishedCount.addSeparators()}", listOf("§7You've reeled in §e${fishedCount.addSeparators()} §7catches."), - ), + ).toSearchable(), ) add(tracker.addTotalProfit(profit, data.totalCatchAmount, "catch")) @@ -138,7 +140,7 @@ object FishingProfitTracker { tracker.addPriceFromButton(this) } - private fun MutableList<Renderable>.addCategories(data: Data): (NEUInternalName) -> Boolean { + private fun MutableList<Searchable>.addCategories(data: Data): (NEUInternalName) -> Boolean { val amounts = getCurrentCategories(data) checkMissingItems(data) val list = amounts.keys.toList() diff --git a/src/main/java/at/hannibal2/skyhanni/features/fishing/tracker/SeaCreatureTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/fishing/tracker/SeaCreatureTracker.kt index fd41883ef..b293c2736 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/fishing/tracker/SeaCreatureTracker.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/fishing/tracker/SeaCreatureTracker.kt @@ -9,15 +9,15 @@ import at.hannibal2.skyhanni.features.fishing.FishingAPI import at.hannibal2.skyhanni.features.fishing.SeaCreatureManager import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule import at.hannibal2.skyhanni.test.command.ErrorManager -import at.hannibal2.skyhanni.utils.CollectionUtils.addButton import at.hannibal2.skyhanni.utils.CollectionUtils.addOrPut -import at.hannibal2.skyhanni.utils.CollectionUtils.addString +import at.hannibal2.skyhanni.utils.CollectionUtils.addSearchString import at.hannibal2.skyhanni.utils.CollectionUtils.sumAllValues import at.hannibal2.skyhanni.utils.ConditionalUtils import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators import at.hannibal2.skyhanni.utils.StringUtils.allLettersFirstUppercase -import at.hannibal2.skyhanni.utils.renderables.Renderable +import at.hannibal2.skyhanni.utils.renderables.RenderableUtils.addButton +import at.hannibal2.skyhanni.utils.renderables.Searchable import at.hannibal2.skyhanni.utils.tracker.SkyHanniTracker import at.hannibal2.skyhanni.utils.tracker.TrackerData import com.google.gson.annotations.Expose @@ -71,8 +71,8 @@ object SeaCreatureTracker { return map } - private fun drawDisplay(data: Data): List<Renderable> = buildList { - addString("§7Sea Creature Tracker:") + private fun drawDisplay(data: Data): List<Searchable> = buildList { + addSearchString("§7Sea Creature Tracker:") val filter: (String) -> Boolean = addCategories(data) val realAmount = data.amount.filter { filter(it.key) } @@ -94,12 +94,12 @@ object SeaCreatureTracker { " §7$percentage" } else "" - addString(" §7- §e${amount.addSeparators()} $displayName$percentageSuffix") + addSearchString(" §7- §e${amount.addSeparators()} $displayName$percentageSuffix", displayName) } - addString(" §7- §e${total.addSeparators()} §7Total Sea Creatures") + addSearchString(" §7- §e${total.addSeparators()} §7Total Sea Creatures") } - private fun MutableList<Renderable>.addCategories(data: Data): (String) -> Boolean { + private fun MutableList<Searchable>.addCategories(data: Data): (String) -> Boolean { val amounts = getCurrentCategories(data) val list = amounts.keys.toList() if (currentCategory !in list) { 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 1e9397d5f..90c68a046 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 @@ -14,13 +14,13 @@ import at.hannibal2.skyhanni.features.garden.CropType import at.hannibal2.skyhanni.features.garden.GardenAPI import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule import at.hannibal2.skyhanni.utils.CollectionUtils.addOrPut -import at.hannibal2.skyhanni.utils.CollectionUtils.addString +import at.hannibal2.skyhanni.utils.CollectionUtils.addSearchString import at.hannibal2.skyhanni.utils.CollectionUtils.sortedDesc import at.hannibal2.skyhanni.utils.InventoryUtils import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators import at.hannibal2.skyhanni.utils.SimpleTimeMark -import at.hannibal2.skyhanni.utils.renderables.Renderable +import at.hannibal2.skyhanni.utils.renderables.Searchable import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import at.hannibal2.skyhanni.utils.tracker.SkyHanniTracker import at.hannibal2.skyhanni.utils.tracker.TrackerData @@ -84,11 +84,11 @@ object ArmorDropTracker { } } - private fun drawDisplay(data: Data): List<Renderable> = buildList { - addString("§7Armor Drop Tracker:") + private fun drawDisplay(data: Data): List<Searchable> = buildList { + addSearchString("§7Armor Drop Tracker:") for ((drop, amount) in data.drops.sortedDesc()) { val dropName = drop.dropName - addString(" §7- §e${amount.addSeparators()}x $dropName") + addSearchString(" §7- §e${amount.addSeparators()}x $dropName", dropName) } } diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerRngDropTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerRngDropTracker.kt index 34d3fe53d..8cc8c55cb 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerRngDropTracker.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerRngDropTracker.kt @@ -10,12 +10,15 @@ import at.hannibal2.skyhanni.features.garden.CropType import at.hannibal2.skyhanni.features.garden.GardenAPI import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule import at.hannibal2.skyhanni.utils.CollectionUtils.addOrPut +import at.hannibal2.skyhanni.utils.CollectionUtils.addSearchString import at.hannibal2.skyhanni.utils.CollectionUtils.sortedDesc import at.hannibal2.skyhanni.utils.ConditionalUtils import at.hannibal2.skyhanni.utils.ItemUtils.name import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators import at.hannibal2.skyhanni.utils.RegexUtils.matchMatcher import at.hannibal2.skyhanni.utils.renderables.Renderable +import at.hannibal2.skyhanni.utils.renderables.Searchable +import at.hannibal2.skyhanni.utils.renderables.toSearchable import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import at.hannibal2.skyhanni.utils.tracker.SkyHanniTracker import at.hannibal2.skyhanni.utils.tracker.TrackerData @@ -120,30 +123,28 @@ object DicerRngDropTracker { } } - private fun drawDisplay(data: Data) = buildList<Renderable> { + private fun drawDisplay(data: Data) = buildList<Searchable> { val cropInHand = cropInHand ?: return@buildList val topLine = mutableListOf<Renderable>() topLine.add(Renderable.itemStack(cropInHand.icon)) topLine.add(Renderable.string("§7Dicer Tracker:")) - add(Renderable.horizontalContainer(topLine)) + add(Renderable.horizontalContainer(topLine).toSearchable()) val items = data.drops[cropInHand] ?: return@buildList - val list = mutableListOf<Renderable>() if (config.compact.get()) { val compactLine = items.sortedDesc().map { (rarity, amount) -> "§${rarity.colorCode}${amount.addSeparators()}" }.joinToString("§7/") - list.add(Renderable.string(compactLine)) + addSearchString(compactLine) } else { for ((rarity, amount) in items.sortedDesc()) { val colorCode = rarity.colorCode val displayName = rarity.displayName - list.add(Renderable.string(" §7- §e${amount.addSeparators()}x §$colorCode$displayName")) + addSearchString(" §7- §e${amount.addSeparators()}x §$colorCode$displayName", displayName) } } - add(Renderable.verticalContainer(list)) } private var cropInHand: CropType? = null diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestProfitTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestProfitTracker.kt index 7dcd07861..19506109e 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestProfitTracker.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestProfitTracker.kt @@ -11,7 +11,7 @@ import at.hannibal2.skyhanni.events.PurseChangeCause import at.hannibal2.skyhanni.events.PurseChangeEvent import at.hannibal2.skyhanni.features.garden.GardenAPI import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule -import at.hannibal2.skyhanni.utils.CollectionUtils.addString +import at.hannibal2.skyhanni.utils.CollectionUtils.addSearchString import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.NEUInternalName import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators @@ -19,6 +19,8 @@ import at.hannibal2.skyhanni.utils.NumberUtil.shortFormat import at.hannibal2.skyhanni.utils.RegexUtils.matchMatcher import at.hannibal2.skyhanni.utils.SimpleTimeMark import at.hannibal2.skyhanni.utils.renderables.Renderable +import at.hannibal2.skyhanni.utils.renderables.Searchable +import at.hannibal2.skyhanni.utils.renderables.toSearchable import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import at.hannibal2.skyhanni.utils.tracker.ItemTrackerData import at.hannibal2.skyhanni.utils.tracker.SkyHanniItemTracker @@ -117,8 +119,8 @@ object PestProfitTracker { lastPestKillTime = SimpleTimeMark.now() } - private fun drawDisplay(data: Data): List<Renderable> = buildList { - addString("§e§lPest Profit Tracker") + private fun drawDisplay(data: Data): List<Searchable> = buildList { + addSearchString("§e§lPest Profit Tracker") val profit = tracker.drawItems(data, { true }, this) val pestsKilled = data.totalPestsKills @@ -126,7 +128,7 @@ object PestProfitTracker { Renderable.hoverTips( "§7Pests killed: §e${pestsKilled.addSeparators()}", listOf("§7You killed pests §e${pestsKilled.addSeparators()} §7times."), - ), + ).toSearchable(), ) add(tracker.addTotalProfit(profit, data.totalPestsKills, "kill")) diff --git a/src/main/java/at/hannibal2/skyhanni/features/inventory/SackDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/inventory/SackDisplay.kt index 697947e3f..eb15f6165 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/inventory/SackDisplay.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/inventory/SackDisplay.kt @@ -27,6 +27,7 @@ import at.hannibal2.skyhanni.utils.NumberUtil.shortFormat import at.hannibal2.skyhanni.utils.RenderUtils.highlight import at.hannibal2.skyhanni.utils.RenderUtils.renderRenderables import at.hannibal2.skyhanni.utils.renderables.Renderable +import at.hannibal2.skyhanni.utils.renderables.buildSearchableTable import net.minecraftforge.fml.common.eventhandler.SubscribeEvent @SkyHanniModule @@ -82,7 +83,7 @@ object SackDisplay { val sortedPairs = sort(sackItems) val amountShowing = if (config.itemToShow > sortedPairs.size) sortedPairs.size else config.itemToShow list.addString("§7Items in Sacks: §o(Rendering $amountShowing of ${sortedPairs.size} items)") - val table = mutableListOf<List<Renderable>>() + va |
