diff options
| author | CalMWolfs <94038482+CalMWolfs@users.noreply.github.com> | 2024-02-16 21:21:43 +1100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-16 11:21:43 +0100 |
| commit | f91973d60948d449cc45a4add901e6fe43aebd62 (patch) | |
| tree | 4c8c77ec4a9585a821651a034ebe5bed3308a6af /src/main/java/at/hannibal2/skyhanni/data | |
| parent | 26fe548fa9a5cfe29b130a0a5585278df3429ee9 (diff) | |
| download | skyhanni-f91973d60948d449cc45a4add901e6fe43aebd62.tar.gz skyhanni-f91973d60948d449cc45a4add901e6fe43aebd62.tar.bz2 skyhanni-f91973d60948d449cc45a4add901e6fe43aebd62.zip | |
Moved many regex patterns in the repo and code cleanup. #871
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data')
8 files changed, 92 insertions, 33 deletions
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 \\((?<current>\\d)/(?<total>\\d)\\)".toPattern() + private val accessoryBagNamePattern by RepoPattern.pattern( + "data.accessory.bagname", + "Accessory Bag \\((?<current>\\d)/(?<total>\\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(?<name>.*)§e from your friends list!§r§9§m\n.*".toPattern() - private val addedFriendPattern = "§aYou are now friends with (?<name>.*)".toPattern() - private val noBestFriendPattern = ".*\n§r(?<name>.*)§e is no longer a best friend!§r§9§m\n.*".toPattern() - private val bestFriendPattern = ".*\n(?<name>.*)§a is now a best friend!§r§9§m\n.*".toPattern() - private val readFriendListPattern = "/viewprofile (?<uuid>.*)".toPattern() + private val patternGroup = RepoPattern.group("data.friends") + private val removedFriendPattern by patternGroup.pattern( + "remove", + ".*\n§r§eYou removed §r(?<name>.*)§e from your friends list!§r§9§m\n.*" + ) + private val addedFriendPattern by patternGroup.pattern( + "add", + "§aYou are now friends with (?<name>.*)" + ) + private val noBestFriendPattern by patternGroup.pattern( + "removebest", + ".*\n§r(?<name>.*)§e is no longer a best friend!§r§9§m\n.*" + ) + private val bestFriendPattern by patternGroup.pattern( + "addbest", + ".*\n(?<name>.*)§a is now a best friend!§r§9§m\n.*" + ) + private val rawNamePattern by patternGroup.pattern( + "rawname", + "\\n§eClick to view §.(?<name>.*)§e's profile" + ) + private val readFriendListPattern by patternGroup.pattern( + "readfriends", + "/viewprofile (?<uuid>.*)" + ) private val tempFriends = mutableListOf<Friend>() @@ -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 §.(?<name>.*)§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(?<name>.*) §7on .*".toPattern() - val totalPattern = "§7Total: §a(?<name>.*)".toPattern() + private val patternGroup = RepoPattern.group("data.garden.milestone") + private val cropPattern by patternGroup.pattern( + "crop", + "§7Harvest §f(?<name>.*) §7on .*" + ) + val totalPattern by patternGroup.pattern( + "total", + "§7Total: §a(?<name>.*)" + ) 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(?<having>.*)§6/§e(?<max>.*)" + ) - private val pattern = ".*§e(?<having>.*)§6/§e(?<max>.*)".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§.(?<number>.)§r§e! Bonus: §r§.(?<hearts>.*)❤".toPattern() + private val diceRollChatPattern by RepoPattern.pattern( + "data.itemmanager.diceroll", + "§eYour §r§(5|6High Class )Archfiend Dice §r§erolled a §r§.(?<number>.)§r§e! Bonus: §r§.(?<hearts>.*)❤" + ) 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 (?<name>.*)\\.\\.\\.".toPattern() + private val patternGroup = RepoPattern.group("data.profile") + private val profileSwitchPattern by patternGroup.pattern( + "switch", + "§7Switching to profile (?<name>.*)\\.\\.\\." + ) + private val profileNamePattern by patternGroup.pattern( + "name", + "§e§lProfile: §r§a(?<name>.*)" + ) + 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(?<name>.*)".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(?<coins>[\\d,]+).*" + ) + val piggyPattern by patternGroup.pattern( + "piggy", + "Piggy: (?<coins>.*)" + ) - // TODO USE SH-REPO - private val pattern = "(Piggy|Purse): §6(?<coins>[\\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\\+.* (?<skill>.*) \\((?<overflow>.*)/(?<needed>.*)\\).*".toPattern() - private val inventoryPattern = ".* §e(?<number>.*)§6/.*".toPattern() - private val actionBarLowLevelPattern = ".*§3+(?<add>.+) (?<skill>.*) \\((?<percentage>.*)%\\).*".toPattern() + private val patternGroup = RepoPattern.group("data.skill") + private val actionBarPattern by patternGroup.pattern( + "actionbar", + ".*§3\\+.* (?<skill>.*) \\((?<overflow>.*)/(?<needed>.*)\\).*" + ) + private val inventoryPattern by patternGroup.pattern( + "inventory", + ".* §e(?<number>.*)§6/.*" + ) + private val actionBarLowLevelPattern by patternGroup.pattern( + "actionbarlow", + ".*§3+(?<add>.+) (?<skill>.*) \\((?<percentage>.*)%\\).*" + ) @SubscribeEvent fun onProfileJoin(event: ProfileJoinEvent) { |
