aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/garden
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/garden')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropMilestoneFix.kt16
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenLevelDisplay.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterInventoryNumbers.kt53
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/contest/FarmingContestAPI.kt12
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/CaptureFarmingGear.kt15
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenInventoryNumbers.kt9
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestAPI.kt7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorTimer.kt24
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
}
}