aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/utils
diff options
context:
space:
mode:
authorCalMWolfs <94038482+CalMWolfs@users.noreply.github.com>2023-10-16 20:13:09 +1100
committerGitHub <noreply@github.com>2023-10-16 11:13:09 +0200
commitf36ef92c5df4a8257b17758a6170bfd6b2b6ffab (patch)
tree5add5d657dcec12605c0848d8de000f7d4f6f708 /src/main/java/at/hannibal2/skyhanni/utils
parent218fc4352fd1c0af67d52a3264632f0617179aa8 (diff)
downloadskyhanni-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.kt34
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 {