diff options
author | CalMWolfs <94038482+CalMWolfs@users.noreply.github.com> | 2023-10-16 20:13:09 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-16 11:13:09 +0200 |
commit | f36ef92c5df4a8257b17758a6170bfd6b2b6ffab (patch) | |
tree | 5add5d657dcec12605c0848d8de000f7d4f6f708 /src/main/java/at/hannibal2/skyhanni/utils | |
parent | 218fc4352fd1c0af67d52a3264632f0617179aa8 (diff) | |
download | skyhanni-f36ef92c5df4a8257b17758a6170bfd6b2b6ffab.tar.gz skyhanni-f36ef92c5df4a8257b17758a6170bfd6b2b6ffab.tar.bz2 skyhanni-f36ef92c5df4a8257b17758a6170bfd6b2b6ffab.zip |
Fix: Chat symbols (#567)
Hopefully fixed all chat symbol issues and removed the chat symbols on private messages. #567
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/utils')
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/utils/StringUtils.kt | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/StringUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/StringUtils.kt index 2e0a57c53..187407cbf 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/StringUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/StringUtils.kt @@ -15,8 +15,8 @@ import java.util.regex.Matcher import java.util.regex.Pattern object StringUtils { - private val playerChatPattern = ".*§[f7]: .*".toPattern() - private val chatUsernamePattern = "^(?:\\[\\d+] )?(?:\\S )?(?:\\[\\w.+] )?(?<username>\\w+)(?: \\[.+?])?\$".toPattern() + private val playerChatPattern = "(?<important>.*?)(?:§[f7r])*: .*".toPattern() + private val chatUsernamePattern = "^(?:§\\w\\[§\\w\\d+§\\w] )?(?:(?:§\\w)+\\S )?(?<rankedName>(?:§\\w\\[\\w.+] )?(?:§\\w)?(?<username>\\w+))(?: (?:§\\w)?\\[.+?])?".toPattern() private val whiteSpaceResetPattern = "^(?:\\s|§r)*|(?:\\s|§r)*$".toPattern() private val resetPattern = "(?i)§R".toPattern() @@ -201,24 +201,32 @@ object StringUtils { } fun String.getPlayerNameFromChatMessage(): String? { - if (!playerChatPattern.matcher(this).matches()) return null + val matcher = matchPlayerChatMessage(this) ?: return null + return matcher.group("username") + } - var username = this.removeColor().split(":")[0] + fun String.getPlayerNameAndRankFromChatMessage(): String? { + val matcher = matchPlayerChatMessage(this) ?: return null + return matcher.group("rankedName") + } + + private fun matchPlayerChatMessage(string: String): Matcher? { + var username = "" + var matcher = playerChatPattern.matcher(string) + if (matcher.matches()) { + username = matcher.group("important").removeResets() + } + if (username == "") return null if (username.contains(">")) { username = username.substring(username.indexOf('>') + 1).trim() } - if (username.startsWith("From ")) { - username = username.removePrefix("From ") - } - if (username.startsWith("To ")) { - username = username.removePrefix("To ") - } - val matcher = chatUsernamePattern.matcher(username) + username = username.removePrefix("§dFrom ") + username = username.removePrefix("§dTo ") - if (!matcher.matches()) return null - return matcher.group("username") + matcher = chatUsernamePattern.matcher(username) + return if (matcher.matches()) matcher else null } fun String.convertToFormatted(): String { |