From f91973d60948d449cc45a4add901e6fe43aebd62 Mon Sep 17 00:00:00 2001 From: CalMWolfs <94038482+CalMWolfs@users.noreply.github.com> Date: Fri, 16 Feb 2024 21:21:43 +1100 Subject: Moved many regex patterns in the repo and code cleanup. #871 --- .../hannibal2/skyhanni/data/CropAccessoryData.kt | 8 +++-- .../java/at/hannibal2/skyhanni/data/FriendAPI.kt | 35 ++++++++++++++++------ .../skyhanni/data/GardenCropMilestones.kt | 14 ++++++--- .../data/GardenCropMilestonesCommunityFix.kt | 10 +++++-- .../at/hannibal2/skyhanni/data/ItemAddManager.kt | 7 +++-- .../hannibal2/skyhanni/data/ProfileStorageData.kt | 16 +++++++--- .../java/at/hannibal2/skyhanni/data/PurseAPI.kt | 16 +++++++--- .../at/hannibal2/skyhanni/data/SkillExperience.kt | 19 ++++++++---- 8 files changed, 92 insertions(+), 33 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/data') diff --git a/src/main/java/at/hannibal2/skyhanni/data/CropAccessoryData.kt b/src/main/java/at/hannibal2/skyhanni/data/CropAccessoryData.kt index 9ea5742a1..b05cc0e56 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/CropAccessoryData.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/CropAccessoryData.kt @@ -11,6 +11,7 @@ import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.NEUItems import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher +import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import com.google.gson.JsonElement import net.minecraft.item.ItemStack import net.minecraft.nbt.CompressedStreamTools @@ -21,8 +22,11 @@ import java.util.Base64 class CropAccessoryData { - // TODO USE SH-REPO - private val accessoryBagNamePattern = "Accessory Bag \\((?\\d)/(?\\d)\\)".toPattern() + private val accessoryBagNamePattern by RepoPattern.pattern( + "data.accessory.bagname", + "Accessory Bag \\((?\\d)/(?\\d)\\)" + ) + private var loadedAccessoryThisProfile = false private var ticks = 0 private var accessoryInBag: CropAccessory? = null diff --git a/src/main/java/at/hannibal2/skyhanni/data/FriendAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/FriendAPI.kt index c9cfcc62f..f00b2bb4d 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/FriendAPI.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/FriendAPI.kt @@ -10,19 +10,37 @@ import at.hannibal2.skyhanni.test.command.ErrorManager import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.StringUtils.cleanPlayerName import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher +import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import net.minecraft.util.ChatStyle import net.minecraftforge.fml.common.eventhandler.SubscribeEvent import java.util.UUID object FriendAPI { - - // TODO USE SH-REPO - private val removedFriendPattern = - ".*\n§r§eYou removed §r(?.*)§e from your friends list!§r§9§m\n.*".toPattern() - private val addedFriendPattern = "§aYou are now friends with (?.*)".toPattern() - private val noBestFriendPattern = ".*\n§r(?.*)§e is no longer a best friend!§r§9§m\n.*".toPattern() - private val bestFriendPattern = ".*\n(?.*)§a is now a best friend!§r§9§m\n.*".toPattern() - private val readFriendListPattern = "/viewprofile (?.*)".toPattern() + private val patternGroup = RepoPattern.group("data.friends") + private val removedFriendPattern by patternGroup.pattern( + "remove", + ".*\n§r§eYou removed §r(?.*)§e from your friends list!§r§9§m\n.*" + ) + private val addedFriendPattern by patternGroup.pattern( + "add", + "§aYou are now friends with (?.*)" + ) + private val noBestFriendPattern by patternGroup.pattern( + "removebest", + ".*\n§r(?.*)§e is no longer a best friend!§r§9§m\n.*" + ) + private val bestFriendPattern by patternGroup.pattern( + "addbest", + ".*\n(?.*)§a is now a best friend!§r§9§m\n.*" + ) + private val rawNamePattern by patternGroup.pattern( + "rawname", + "\\n§eClick to view §.(?.*)§e's profile" + ) + private val readFriendListPattern by patternGroup.pattern( + "readfriends", + "/viewprofile (?.*)" + ) private val tempFriends = mutableListOf() @@ -130,7 +148,6 @@ object FriendAPI { private fun readName(chatStyle: ChatStyle): String? { for (component in chatStyle.chatHoverEvent.value.siblings) { val rawName = component.unformattedText - val rawNamePattern = "\\n§eClick to view §.(?.*)§e's profile".toPattern() rawNamePattern.matchMatcher(rawName) { return group("name") } diff --git a/src/main/java/at/hannibal2/skyhanni/data/GardenCropMilestones.kt b/src/main/java/at/hannibal2/skyhanni/data/GardenCropMilestones.kt index dfa275cb7..5f61f0330 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/GardenCropMilestones.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/GardenCropMilestones.kt @@ -9,14 +9,20 @@ import at.hannibal2.skyhanni.features.garden.GardenAPI import at.hannibal2.skyhanni.utils.ItemUtils.getLore import at.hannibal2.skyhanni.utils.NumberUtil.formatNumber import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher +import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import net.minecraft.item.ItemStack import net.minecraftforge.fml.common.eventhandler.SubscribeEvent object GardenCropMilestones { - - // TODO USE SH-REPO - private val cropPattern = "§7Harvest §f(?.*) §7on .*".toPattern() - val totalPattern = "§7Total: §a(?.*)".toPattern() + private val patternGroup = RepoPattern.group("data.garden.milestone") + private val cropPattern by patternGroup.pattern( + "crop", + "§7Harvest §f(?.*) §7on .*" + ) + val totalPattern by patternGroup.pattern( + "total", + "§7Total: §a(?.*)" + ) fun getCropTypeByLore(itemStack: ItemStack): CropType? { for (line in itemStack.getLore()) { diff --git a/src/main/java/at/hannibal2/skyhanni/data/GardenCropMilestonesCommunityFix.kt b/src/main/java/at/hannibal2/skyhanni/data/GardenCropMilestonesCommunityFix.kt index 950f226f1..e38e3d075 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/GardenCropMilestonesCommunityFix.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/GardenCropMilestonesCommunityFix.kt @@ -19,13 +19,17 @@ import at.hannibal2.skyhanni.utils.OSUtils 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 kotlinx.coroutines.launch import net.minecraft.item.ItemStack import net.minecraftforge.fml.common.eventhandler.SubscribeEvent object GardenCropMilestonesCommunityFix { + private val amountPattern by RepoPattern.pattern( + "data.garden.milestonefix.amount", + ".*§e(?.*)§6/§e(?.*)" + ) - private val pattern = ".*§e(?.*)§6/§e(?.*)".toPattern() private var showWrongData = false private var showWhenAllCorrect = false @@ -92,7 +96,7 @@ object GardenCropMilestonesCommunityFix { crop ) - GardenCropMilestones.getCropsForTier(realTier, crop) // debug("guessNextMax: ${guessNextMax.addSeparators()}") - val nextMax = pattern.matchMatcher(next) { + val nextMax = amountPattern.matchMatcher(next) { group("max").formatNumber() } ?: return // debug("nextMax real: ${nextMax.addSeparators()}") @@ -103,7 +107,7 @@ object GardenCropMilestonesCommunityFix { val guessTotalMax = GardenCropMilestones.getCropsForTier(46, crop) // println("guessTotalMax: ${guessTotalMax.addSeparators()}") - val totalMax = pattern.matchMatcher(total) { + val totalMax = amountPattern.matchMatcher(total) { group("max").formatNumber() } ?: return // println("totalMax real: ${totalMax.addSeparators()}") diff --git a/src/main/java/at/hannibal2/skyhanni/data/ItemAddManager.kt b/src/main/java/at/hannibal2/skyhanni/data/ItemAddManager.kt index 3d4b8f067..601fafb12 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/ItemAddManager.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/ItemAddManager.kt @@ -11,6 +11,7 @@ import at.hannibal2.skyhanni.utils.NEUInternalName import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName import at.hannibal2.skyhanni.utils.SimpleTimeMark import at.hannibal2.skyhanni.utils.StringUtils.matches +import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import net.minecraftforge.fml.common.eventhandler.SubscribeEvent import kotlin.time.Duration.Companion.milliseconds import kotlin.time.Duration.Companion.seconds @@ -25,8 +26,10 @@ class ItemAddManager { private val ARCHFIEND_DICE = "ARCHFIEND_DICE".asInternalName() private val HIGH_CLASS_ARCHFIEND_DICE = "HIGH_CLASS_ARCHFIEND_DICE".asInternalName() - private val diceRollChatPattern = - "§eYour §r§(5|6High Class )Archfiend Dice §r§erolled a §r§.(?.)§r§e! Bonus: §r§.(?.*)❤".toPattern() + private val diceRollChatPattern by RepoPattern.pattern( + "data.itemmanager.diceroll", + "§eYour §r§(5|6High Class )Archfiend Dice §r§erolled a §r§.(?.)§r§e! Bonus: §r§.(?.*)❤" + ) private var inSackInventory = false private var lastSackInventoryLeave = SimpleTimeMark.farPast() diff --git a/src/main/java/at/hannibal2/skyhanni/data/ProfileStorageData.kt b/src/main/java/at/hannibal2/skyhanni/data/ProfileStorageData.kt index e4b54115c..08894d4a3 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/ProfileStorageData.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/ProfileStorageData.kt @@ -14,6 +14,7 @@ import at.hannibal2.skyhanni.events.TabListUpdateEvent import at.hannibal2.skyhanni.utils.ChatUtils import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher +import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import net.minecraftforge.fml.common.eventhandler.EventPriority import net.minecraftforge.fml.common.eventhandler.SubscribeEvent @@ -26,8 +27,16 @@ object ProfileStorageData { private var nextProfile: String? = null - // TODO USE SH-REPO - private val profileSwitchPattern = "§7Switching to profile (?.*)\\.\\.\\.".toPattern() + private val patternGroup = RepoPattern.group("data.profile") + private val profileSwitchPattern by patternGroup.pattern( + "switch", + "§7Switching to profile (?.*)\\.\\.\\." + ) + private val profileNamePattern by patternGroup.pattern( + "name", + "§e§lProfile: §r§a(?.*)" + ) + private var sackPlayers: SackData.PlayerSpecific? = null var sackProfiles: SackData.ProfileSpecific? = null @@ -85,8 +94,7 @@ object ProfileStorageData { val playerSpecific = playerSpecific ?: return val sackPlayers = sackPlayers ?: return for (line in event.tabList) { - val pattern = "§e§lProfile: §r§a(?.*)".toPattern() - pattern.matchMatcher(line) { + profileNamePattern.matchMatcher(line) { val profileName = group("name").lowercase() loadProfileSpecific(playerSpecific, sackPlayers, profileName) nextProfile = null diff --git a/src/main/java/at/hannibal2/skyhanni/data/PurseAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/PurseAPI.kt index e5f226945..184d41567 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/PurseAPI.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/PurseAPI.kt @@ -7,13 +7,21 @@ import at.hannibal2.skyhanni.events.PurseChangeEvent import at.hannibal2.skyhanni.utils.NumberUtil.formatNumber import at.hannibal2.skyhanni.utils.NumberUtil.milion import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher +import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import net.minecraft.client.Minecraft import net.minecraftforge.fml.common.eventhandler.SubscribeEvent -class PurseAPI { +object PurseAPI { + private val patternGroup = RepoPattern.group("data.purse") + private val coinsPattern by patternGroup.pattern( + "coins", + "(Piggy|Purse): §6(?[\\d,]+).*" + ) + val piggyPattern by patternGroup.pattern( + "piggy", + "Piggy: (?.*)" + ) - // TODO USE SH-REPO - private val pattern = "(Piggy|Purse): §6(?[\\d,]*).*".toPattern() private var currentPurse = 0.0 private var inventoryCloseTime = 0L @@ -26,7 +34,7 @@ class PurseAPI { fun onTick(event: LorenzTickEvent) { for (line in ScoreboardData.sidebarLinesFormatted) { - val newPurse = pattern.matchMatcher(line) { + val newPurse = coinsPattern.matchMatcher(line) { group("coins").formatNumber().toDouble() } ?: continue val diff = newPurse - currentPurse diff --git a/src/main/java/at/hannibal2/skyhanni/data/SkillExperience.kt b/src/main/java/at/hannibal2/skyhanni/data/SkillExperience.kt index f7915a94c..93fb6e14e 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/SkillExperience.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/SkillExperience.kt @@ -11,14 +11,23 @@ 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 at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class SkillExperience { - - // TODO USE SH-REPO - private val actionBarPattern = ".*§3\\+.* (?.*) \\((?.*)/(?.*)\\).*".toPattern() - private val inventoryPattern = ".* §e(?.*)§6/.*".toPattern() - private val actionBarLowLevelPattern = ".*§3+(?.+) (?.*) \\((?.*)%\\).*".toPattern() + private val patternGroup = RepoPattern.group("data.skill") + private val actionBarPattern by patternGroup.pattern( + "actionbar", + ".*§3\\+.* (?.*) \\((?.*)/(?.*)\\).*" + ) + private val inventoryPattern by patternGroup.pattern( + "inventory", + ".* §e(?.*)§6/.*" + ) + private val actionBarLowLevelPattern by patternGroup.pattern( + "actionbarlow", + ".*§3+(?.+) (?.*) \\((?.*)%\\).*" + ) @SubscribeEvent fun onProfileJoin(event: ProfileJoinEvent) { -- cgit