summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/utils
diff options
context:
space:
mode:
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 {