aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/data
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-04-28 20:43:18 +0200
committerhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-04-28 20:43:29 +0200
commitbd6a0bb93ed6c0499cc3c5e044b7554481825bb5 (patch)
treebe2eea214952108ae8acd658f4646403129a3e28 /src/main/java/at/hannibal2/skyhanni/data
parent9df04ac5aaa5e9897324af306dc73b8b1e67f600 (diff)
downloadSkyHanni-bd6a0bb93ed6c0499cc3c5e044b7554481825bb5.tar.gz
SkyHanni-bd6a0bb93ed6c0499cc3c5e044b7554481825bb5.tar.bz2
SkyHanni-bd6a0bb93ed6c0499cc3c5e044b7554481825bb5.zip
REGEX
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/GardenCropMilestones.kt17
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/SkillExperience.kt28
2 files changed, 21 insertions, 24 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/GardenCropMilestones.kt b/src/main/java/at/hannibal2/skyhanni/data/GardenCropMilestones.kt
index f4c2802f2..d07172609 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/GardenCropMilestones.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/GardenCropMilestones.kt
@@ -5,12 +5,13 @@ import at.hannibal2.skyhanni.events.CropMilestoneUpdateEvent
import at.hannibal2.skyhanni.events.InventoryOpenEvent
import at.hannibal2.skyhanni.features.garden.CropType
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
+import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
import net.minecraftforge.event.world.WorldEvent
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class GardenCropMilestones {
- private val cropPattern = "§7Harvest §f(.*) §7on .*".toPattern()
- private val totalPattern = "§7Total: §a(.*)".toPattern()
+ private val cropPattern = "§7Harvest §f(?<name>.*) §7on .*".toPattern()
+ private val totalPattern = "§7Total: §a(?<name>.*)".toPattern()
// Add when api support is there
// @SubscribeEvent
@@ -41,14 +42,12 @@ class GardenCropMilestones {
for ((_, stack) in event.inventoryItems) {
var crop: CropType? = null
for (line in stack.getLore()) {
- var matcher = cropPattern.matcher(line)
- if (matcher.matches()) {
- val name = matcher.group(1)
- crop = CropType.getByNameOrNull(name) ?: continue
+ cropPattern.matchMatcher(line) {
+ val name = group("name")
+ crop = CropType.getByNameOrNull(name)
}
- matcher = totalPattern.matcher(line)
- if (matcher.matches()) {
- val amount = matcher.group(1).replace(",", "").toLong()
+ totalPattern.matchMatcher(line) {
+ val amount = group("name").replace(",", "").toLong()
crop?.setCounter(amount)
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/data/SkillExperience.kt b/src/main/java/at/hannibal2/skyhanni/data/SkillExperience.kt
index c6d540ecb..11435ae96 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/SkillExperience.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/SkillExperience.kt
@@ -9,13 +9,13 @@ import at.hannibal2.skyhanni.utils.ItemUtils.name
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.NumberUtil.formatNumber
import at.hannibal2.skyhanni.utils.NumberUtil.romanToDecimal
+import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
import at.hannibal2.skyhanni.utils.StringUtils.removeColor
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class SkillExperience {
-
- private val actionBarPattern = "(?:.*)§3\\+(?:.*) (.*) \\((.*)\\/(.*)\\)(?:.*)".toPattern()
- private val inventoryPattern = "(?:.*) §e(.*)§6\\/(?:.*)".toPattern()
+ private val actionBarPattern = "(?:.*)§3\\+(?:.*) (?<skill>.*) \\((?<overflow>.*)\\/(?<needed>.*)\\)(?:.*)".toPattern()
+ private val inventoryPattern = "(?:.*) §e(?<number>.*)§6\\/(?:.*)".toPattern()
@SubscribeEvent
fun onProfileDataLoad(event: ProfileApiDataLoadedEvent) {
@@ -38,15 +38,14 @@ class SkillExperience {
fun onActionBar(event: LorenzActionBarEvent) {
if (!LorenzUtils.inSkyBlock) return
- val matcher = actionBarPattern.matcher(event.message)
- if (!matcher.matches()) return
-
- val skill = matcher.group(1).lowercase()
- val overflow = matcher.group(2).formatNumber()
- val neededForNextLevel = matcher.group(3).formatNumber()
- val nextLevel = getLevelForExpExactly(neededForNextLevel)
- val baseExp = getExpForLevel(nextLevel - 1)
- skillExp[skill] = baseExp + overflow
+ actionBarPattern.matchMatcher(event.message) {
+ val skill = group("skill").lowercase()
+ val overflow = group("overflow").formatNumber()
+ val neededForNextLevel = group("needed").formatNumber()
+ val nextLevel = getLevelForExpExactly(neededForNextLevel)
+ val baseExp = getExpForLevel(nextLevel - 1)
+ skillExp[skill] = baseExp + overflow
+ }
}
@SubscribeEvent
@@ -70,9 +69,8 @@ class SkillExperience {
val skillName = split[0].lowercase()
val level = split[1].romanToDecimal()
val baseExp = getExpForLevel(level)
- val matcher = inventoryPattern.matcher(line)
- if (matcher.matches()) {
- val rawNumber = matcher.group(1)
+ inventoryPattern.matchMatcher(line) {
+ val rawNumber = group("number")
val overflow = rawNumber.formatNumber()
val experience = baseExp + overflow
skillExp[skillName] = experience