From 7bde14535264d20e37c5c085f8a03db3275044b5 Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal002@users.noreply.github.com> Date: Thu, 22 Feb 2024 21:54:12 +0100 Subject: Removed duplicate pet level detection logic. #1027 --- src/main/java/at/hannibal2/skyhanni/data/PetAPI.kt | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/main/java/at/hannibal2/skyhanni/data') diff --git a/src/main/java/at/hannibal2/skyhanni/data/PetAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/PetAPI.kt index d5efd3735..2a0f97ae2 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/PetAPI.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/PetAPI.kt @@ -12,13 +12,22 @@ object PetAPI { ) private val petItemName by patternGroup.pattern( "item.name", - "§.\\[Lvl (?\\d)] (?.*)" + "(?:§.)*\\[Lvl (?\\d+)] (?.*)" ) private val neuRepoPetItemName by patternGroup.pattern( "item.name.neu.format", "(§f§f)?§7\\[Lvl 1➡(100|200)] (?.*)" ) + private val ignoredPetStrings = listOf( + "Archer", + "Berserk", + "Mage", + "Tank", + "Healer", + "➡", + ) + fun isPetMenu(inventoryTitle: String): Boolean = petMenuPattern.matches(inventoryTitle) // Contains color code + name and for older SkyHanni users maybe also the pet level @@ -40,4 +49,10 @@ object PetAPI { return null } + + fun getPetLevel(nameWithLevel: String): Int? = petItemName.matchMatcher(nameWithLevel) { + group("level").toInt() + } + + fun hasPetName(name: String): Boolean = petItemName.matches(name) && !ignoredPetStrings.any { name.contains(it) } } -- cgit