diff options
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/garden')
9 files changed, 67 insertions, 75 deletions
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 21e4175f1..23e9b8a5e 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt @@ -327,6 +327,9 @@ object FarmingFortuneDisplay { reforgeFortune = 0.0 itemBaseFortune = 0.0 greenThumbFortune = 0.0 + + //TODO code cleanup + for (line in tool?.getLore()!!) { tooltipFortunePattern.matchMatcher(line) { displayedFortune = group(1)!!.toDouble() diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropMilestoneFix.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropMilestoneFix.kt index c4f85ae45..f233ab97f 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropMilestoneFix.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropMilestoneFix.kt @@ -14,6 +14,7 @@ import at.hannibal2.skyhanni.utils.NEUInternalName import at.hannibal2.skyhanni.utils.NEUItems import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators import at.hannibal2.skyhanni.utils.NumberUtil.romanToDecimalIfNecessary +import at.hannibal2.skyhanni.utils.StringUtils.matchFirst import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import net.minecraftforge.fml.common.eventhandler.SubscribeEvent @@ -78,15 +79,12 @@ class GardenCropMilestoneFix { @SubscribeEvent fun onTabListUpdate(event: TabListUpdateEvent) { - for (line in event.tabList) { - tabListPattern.matchMatcher(line) { - val tier = group("tier").toInt() - val percentage = group("percentage").toDouble() - val cropName = group("crop") - - check(cropName, tier, percentage) - return - } + event.tabList.matchFirst(tabListPattern) { + val tier = group("tier").toInt() + val percentage = group("percentage").toDouble() + val cropName = group("crop") + + check(cropName, tier, percentage) } } diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenLevelDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenLevelDisplay.kt index 40df08a57..54db1d71d 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenLevelDisplay.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenLevelDisplay.kt @@ -14,6 +14,7 @@ import at.hannibal2.skyhanni.utils.NumberUtil.formatLong import at.hannibal2.skyhanni.utils.NumberUtil.romanToDecimalIfNecessary import at.hannibal2.skyhanni.utils.RenderUtils.renderString import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher +import at.hannibal2.skyhanni.utils.StringUtils.matches import at.hannibal2.skyhanni.utils.StringUtils.removeColor import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import net.minecraftforge.fml.common.eventhandler.SubscribeEvent @@ -87,7 +88,7 @@ class GardenLevelDisplay { "SkyBlock Menu" -> event.inventoryItems[10] ?: return else -> return } - gardenItemNamePattern.matchMatcher(item.name.removeColor()) {} ?: return + if (!gardenItemNamePattern.matches(item.name.removeColor())) return var nextLevelExp = 0L var currentLevel = 0 for (line in item.getLore()) { diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterInventoryNumbers.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterInventoryNumbers.kt index 5747032cf..c740812a1 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterInventoryNumbers.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterInventoryNumbers.kt @@ -7,7 +7,7 @@ import at.hannibal2.skyhanni.utils.ItemUtils.getLore import at.hannibal2.skyhanni.utils.NumberUtil import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators import at.hannibal2.skyhanni.utils.NumberUtil.formatInt -import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher +import at.hannibal2.skyhanni.utils.StringUtils.matchFirst import at.hannibal2.skyhanni.utils.StringUtils.removeColor import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import net.minecraftforge.fml.common.eventhandler.SubscribeEvent @@ -37,41 +37,36 @@ class ComposterInventoryNumbers { // Composts Available if (slotNumber == 13) { - for (line in stack.getLore()) { - amountPattern.matchMatcher(line) { - val total = group("amount").formatInt() - event.offsetY = -2 - event.offsetX = -20 - event.stackTip = "§6${total.addSeparators()}" - return - } + stack.getLore().matchFirst(amountPattern) { + val total = group("amount").formatInt() + event.offsetY = -2 + event.offsetX = -20 + event.stackTip = "§6${total.addSeparators()}" + return } } // Organic Matter or Fuel if (slotNumber == 46 || slotNumber == 52) { - for (line in stack.getLore()) { - valuePattern.matchMatcher(line) { - val having = group("having").removeColor().formatInt() - val havingFormat = NumberUtil.format(having) - val total = group("total").removeColor() - - val color = if (slotNumber == 46) { - // Organic Matter - event.offsetY = -95 - event.offsetX = 5 - event.alignLeft = false - "§e" - } else { - // Fuel - event.offsetY = -41 - event.offsetX = -20 - "§a" - } + stack.getLore().matchFirst(valuePattern) { + val having = group("having").removeColor().formatInt() + val havingFormat = NumberUtil.format(having) + val total = group("total").removeColor() - event.stackTip = "$color$havingFormat/$total" - return + val color = if (slotNumber == 46) { + // Organic Matter + event.offsetY = -95 + event.offsetX = 5 + event.alignLeft = false + "§e" + } else { + // Fuel + event.offsetY = -41 + event.offsetX = -20 + "§a" } + + event.stackTip = "$color$havingFormat/$total" } } } diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/FarmingContestAPI.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/FarmingContestAPI.kt index 1e133f8e5..36a2779a2 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/FarmingContestAPI.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/FarmingContestAPI.kt @@ -15,6 +15,7 @@ import at.hannibal2.skyhanni.utils.ItemUtils.getLore import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.NumberUtil.formatInt import at.hannibal2.skyhanni.utils.SimpleTimeMark +import at.hannibal2.skyhanni.utils.StringUtils.matchFirst import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import io.github.moulberry.notenoughupdates.util.SkyBlockTime @@ -127,16 +128,15 @@ object FarmingContestAPI { private fun createContest(time: Long, item: ItemStack): FarmingContest { val lore = item.getLore() - val crop = lore.firstNotNullOfOrNull { - cropPattern.matchMatcher(it) { CropType.getByName(group("crop")) } + + val crop = lore.matchFirst(cropPattern) { + CropType.getByName(group("crop")) } ?: error("Crop not found in lore!") val brackets = buildMap { for (bracket in ContestBracket.entries) { - val amount = lore.firstNotNullOfOrNull { - bracket.bracketPattern.matchMatcher(it) { - group("amount").formatInt() - } + val amount = lore.matchFirst(bracket.bracketPattern) { + group("amount").formatInt() } ?: continue put(bracket, amount) } diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/CaptureFarmingGear.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/CaptureFarmingGear.kt index edf3cb8a2..4d3cc3ae1 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/CaptureFarmingGear.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/CaptureFarmingGear.kt @@ -18,6 +18,7 @@ import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.NumberUtil.romanToDecimal import at.hannibal2.skyhanni.utils.NumberUtil.romanToDecimalIfNecessary import at.hannibal2.skyhanni.utils.SkyBlockItemModifierUtils.getEnchantments +import at.hannibal2.skyhanni.utils.StringUtils.matchFirst import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher import at.hannibal2.skyhanni.utils.StringUtils.removeColor import at.hannibal2.skyhanni.utils.TabListData @@ -106,10 +107,9 @@ object CaptureFarmingGear { } } } - for (line in TabListData.getTabList()) { - strengthPattern.matchMatcher(line) { - GardenAPI.storage?.fortune?.farmingStrength = group("strength").toInt() - } + + TabListData.getTabList().matchFirst(strengthPattern) { + GardenAPI.storage?.fortune?.farmingStrength = group("strength").toInt() } } @@ -189,10 +189,9 @@ object CaptureFarmingGear { for ((_, item) in items) { if (item.displayName.contains("Extra Farming Fortune")) { level = 0 - for (line in item.getLore()) { - anitaMenuPattern.matchMatcher(line) { - level = group("level").toInt() / 4 - } + + item.getLore().matchFirst(anitaMenuPattern) { + level = group("level").toInt() / 4 } } } diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenInventoryNumbers.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenInventoryNumbers.kt index 5d76e6c57..86495cb24 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenInventoryNumbers.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenInventoryNumbers.kt @@ -10,6 +10,7 @@ import at.hannibal2.skyhanni.utils.InventoryUtils import at.hannibal2.skyhanni.utils.ItemUtils.getLore import at.hannibal2.skyhanni.utils.ItemUtils.name import at.hannibal2.skyhanni.utils.NumberUtil.romanToDecimalIfNecessary +import at.hannibal2.skyhanni.utils.StringUtils.matchFirst import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import net.minecraftforge.fml.common.eventhandler.SubscribeEvent @@ -39,11 +40,9 @@ class GardenInventoryNumbers { if (InventoryUtils.openInventoryName() == "Crop Upgrades") { if (!config.cropUpgrades) return - event.stack.getLore() - .map { upgradeTierPattern.matcher(it) } - .filter { it.matches() } - .map { it.group("tier") } - .forEach { event.stackTip = "" + it } + event.stack.getLore().matchFirst(upgradeTierPattern) { + event.stackTip = group("tier") + } } if (InventoryUtils.openInventoryName() == "Composter Upgrades") { diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestAPI.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestAPI.kt index 8c218845a..f4df7f94e 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestAPI.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestAPI.kt @@ -21,6 +21,7 @@ import at.hannibal2.skyhanni.utils.LocationUtils.distanceSqToPlayer import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName import at.hannibal2.skyhanni.utils.NumberUtil.formatInt import at.hannibal2.skyhanni.utils.SimpleTimeMark +import at.hannibal2.skyhanni.utils.StringUtils.matchFirst import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher import at.hannibal2.skyhanni.utils.StringUtils.matches import at.hannibal2.skyhanni.utils.StringUtils.removeColor @@ -154,10 +155,8 @@ object PestAPI { plot.pests = 0 plot.isPestCountInaccurate = false val item = event.inventoryItems[plot.inventorySlot] ?: continue - for (line in item.getLore()) { - pestInventoryPattern.matchMatcher(line) { - plot.pests = group("amount").toInt() - } + item.getLore().matchFirst(pestInventoryPattern) { + plot.pests = group("amount").toInt() } } updatePests() diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorTimer.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorTimer.kt index c35cb9266..205085c53 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorTimer.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorTimer.kt @@ -14,7 +14,7 @@ import at.hannibal2.skyhanni.utils.RenderUtils.renderString import at.hannibal2.skyhanni.utils.SimpleTimeMark import at.hannibal2.skyhanni.utils.SimpleTimeMark.Companion.asTimeMark import at.hannibal2.skyhanni.utils.SoundUtils -import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher +import at.hannibal2.skyhanni.utils.StringUtils.matchFirst import at.hannibal2.skyhanni.utils.StringUtils.removeColor import at.hannibal2.skyhanni.utils.TabListData import at.hannibal2.skyhanni.utils.TimeUtils @@ -82,23 +82,21 @@ class GardenVisitorTimer { var visitorInterval = visitorInterval ?: return var millis = visitorInterval var queueFull = false - loop@ for (line in TabListData.getTabList()) { - timePattern.matchMatcher(line) { - val timeInfo = group("info").removeColor() - if (timeInfo == "Not Unlocked!") { - display = "§cVisitors not unlocked!" - return - } - if (timeInfo == "Queue Full!") { - queueFull = true - break@loop - } + + TabListData.getTabList().matchFirst(timePattern) { + val timeInfo = group("info").removeColor() + if (timeInfo == "Not Unlocked!") { + display = "§cVisitors not unlocked!" + return + } + if (timeInfo == "Queue Full!") { + queueFull = true + } else { if (lastTimerValue != timeInfo) { lastTimerUpdate = SimpleTimeMark.now() lastTimerValue = timeInfo } millis = TimeUtils.getDuration(timeInfo) - break@loop } } |