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 --- .../skyhanni/features/combat/BestiaryData.kt | 14 ++++++-- .../features/combat/ghostcounter/GhostCounter.kt | 38 ++++++++++++++++------ .../skyhanni/features/combat/mobs/SpawnTimers.kt | 19 +++++++---- 3 files changed, 53 insertions(+), 18 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/features/combat') diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/BestiaryData.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/BestiaryData.kt index a5b0cd386..bd1d58894 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/combat/BestiaryData.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/combat/BestiaryData.kt @@ -27,18 +27,28 @@ import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher import at.hannibal2.skyhanni.utils.StringUtils.removeColor import at.hannibal2.skyhanni.utils.renderables.Renderable +import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import net.minecraft.item.ItemStack import net.minecraftforge.fml.common.eventhandler.SubscribeEvent object BestiaryData { private val config get() = SkyHanniMod.feature.combat.bestiary + + private val patternGroup = RepoPattern.group("combat.bestiary.data") + private val progressPattern by patternGroup.pattern( + "progress", + "(?[0-9kKmMbB,.]+)/(?[0-9kKmMbB,.]+\$)" + ) + private val titlePattern by patternGroup.pattern( + "title", + "^(?:\\(\\d+/\\d+\\) )?(Bestiary|.+) ➜ (.+)\$" + ) + private var display = emptyList>() private val mobList = mutableListOf() private val stackList = mutableMapOf() private val catList = mutableListOf() - private val progressPattern = "(?[0-9kKmMbB,.]+)/(?[0-9kKmMbB,.]+$)".toPattern() - private val titlePattern = "^(?:\\(\\d+/\\d+\\) )?(Bestiary|.+) ➜ (.+)$".toPattern() private var inInventory = false private var isCategory = false private var overallProgressEnabled = false diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/ghostcounter/GhostCounter.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/ghostcounter/GhostCounter.kt index 5c1e0976e..0364bda1a 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/combat/ghostcounter/GhostCounter.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/combat/ghostcounter/GhostCounter.kt @@ -52,6 +52,7 @@ import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher import at.hannibal2.skyhanni.utils.StringUtils.removeColor import at.hannibal2.skyhanni.utils.renderables.Renderable +import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import io.github.moulberry.notenoughupdates.util.Utils import io.github.moulberry.notenoughupdates.util.XPInformation import net.minecraftforge.fml.common.eventhandler.SubscribeEvent @@ -68,16 +69,33 @@ object GhostCounter { private var display = emptyList>() var ghostCounterV3File = File("." + File.separator + "config" + File.separator + "ChatTriggers" + File.separator + "modules" + File.separator + "GhostCounterV3" + File.separator + ".persistantData.json") - private val skillXPPattern = "[+](?[0-9,.]+) \\((?[0-9,.]+)(?:/(?[0-9,.]+))?\\)".toPattern() - private val combatSectionPattern = - ".*[+](?[0-9,.]+) (?[A-Za-z]+) \\((?(?[0-9.,]+)/(?[0-9.,]+)|(?[0-9.]+)%)\\).*".toPattern() - private val killComboExpiredPattern = - "§cYour Kill Combo has expired! You reached a (?.*) Kill Combo!".toPattern() - private val ghostXPPattern = - "(?\\d+(?:\\.\\d+)?(?:,\\d+)?[kK]?)/(?\\d+(?:\\.\\d+)?(?:,\\d+)?[kKmM]?)".toPattern() - private val bestiaryPattern = - ".*(?:§\\d|§\\w)+BESTIARY (?:§\\d|§\\w)+Ghost (?:§\\d|§\\w)(?\\d+)➜(?:§\\d|§\\w)(?\\d+).*".toPattern() // &3&lBESTIARY &b&lGhost &89➜&b10 - private val skillLevelPattern = ".*§e§lSkills: §r§a(?.*) (?\\d+).*".toPattern() + + private val patternGroup = RepoPattern.group("combat.ghostcounter") + private val skillXPPattern by patternGroup.pattern( + "skillxp", + "[+](?[0-9,.]+) \\((?[0-9,.]+)(?:/(?[0-9,.]+))?\\)" + ) + private val combatSectionPattern by patternGroup.pattern( + "combatsection", + ".*[+](?[0-9,.]+) (?[A-Za-z]+) \\((?(?[0-9.,]+)/(?[0-9.,]+)|(?[0-9.]+)%)\\).*" + ) + private val killComboExpiredPattern by patternGroup.pattern( + "killcomboexpired", + "§cYour Kill Combo has expired! You reached a (?.*) Kill Combo!" + ) + private val ghostXPPattern by patternGroup.pattern( + "ghostxp", + "(?\\d+(?:\\.\\d+)?(?:,\\d+)?[kK]?)/(?\\d+(?:\\.\\d+)?(?:,\\d+)?[kKmM]?)" + ) + private val bestiaryPattern by patternGroup.pattern( + "bestiary", + ".*(?:§\\d|§\\w)+BESTIARY (?:§\\d|§\\w)+Ghost (?:§\\d|§\\w)(?\\d+)➜(?:§\\d|§\\w)(?\\d+).*" + ) + private val skillLevelPattern by patternGroup.pattern( + "skilllevel", + ".*§e§lSkills: §r§a(?.*) (?\\d+).*" + ) + private val format = NumberFormat.getInstance() private var percent: Float = 0.0f private var totalSkillXp = 0 diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/SpawnTimers.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/SpawnTimers.kt index 08c8ddf31..f92e8dccd 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/SpawnTimers.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/combat/mobs/SpawnTimers.kt @@ -14,6 +14,7 @@ import at.hannibal2.skyhanni.utils.SimpleTimeMark import at.hannibal2.skyhanni.utils.StringUtils.matches import at.hannibal2.skyhanni.utils.StringUtils.removeColor import at.hannibal2.skyhanni.utils.TimeUtils.format +import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import at.hannibal2.skyhanni.utils.toLorenzVec import net.minecraft.network.play.server.S2APacketParticles import net.minecraft.util.EnumParticleTypes @@ -25,12 +26,18 @@ class SpawnTimers { private val config get() = SkyHanniMod.feature.combat.mobs + private val patternGroup = RepoPattern.group("combat.mobs.spawntime.arachne") + private val arachneFragmentPattern by patternGroup.pattern( + "fragment", + "^☄ [a-z0-9_]{2,22} placed an arachne's calling! something is awakening! \\(4/4\\)\$" + ) + private val arachneCrystalPattern by patternGroup.pattern( + "crystal", + "^☄ [a-z0-9_]{2,22} placed an arachne crystal! something is awakening!$" + ) + private val arachneAltarLocation = LorenzVec(-283f, 51f, -179f) private var arachneSpawnTime = SimpleTimeMark.farPast() - private val arachneFragmentMessage = - "^☄ [a-z0-9_]{2,22} placed an arachne's calling! something is awakening! \\(4/4\\)\$".toPattern() - private val arachneCrystalMessage = - "^☄ [a-z0-9_]{2,22} placed an arachne crystal! something is awakening!$".toPattern() private var saveNextTickParticles = false private var particleCounter = 0 private var tickTime: Long = 0 @@ -60,8 +67,8 @@ class SpawnTimers { if (!isEnabled()) return val message = event.message.removeColor().lowercase() - if (arachneFragmentMessage.matches(message) || arachneCrystalMessage.matches(message)) { - if (arachneCrystalMessage.matches(message)) { + if (arachneFragmentPattern.matches(message) || arachneCrystalPattern.matches(message)) { + if (arachneCrystalPattern.matches(message)) { saveNextTickParticles = true searchTime = System.currentTimeMillis() particleCounter = 0 -- cgit