From 15db91ced38a8cc4c7c16565422fce5566c6057c Mon Sep 17 00:00:00 2001 From: CalMWolfs <94038482+CalMWolfs@users.noreply.github.com> Date: Fri, 5 Apr 2024 05:46:27 +1100 Subject: Backend: matchFirst function for lists of strings (#1353) Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com> --- src/main/java/at/hannibal2/skyhanni/utils/StringUtils.kt | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/main/java/at/hannibal2/skyhanni/utils') diff --git a/src/main/java/at/hannibal2/skyhanni/utils/StringUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/StringUtils.kt index bcb185f60..5079aa7fe 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/StringUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/StringUtils.kt @@ -99,6 +99,13 @@ object StringUtils { inline fun Pattern.findMatcher(text: String, consumer: Matcher.() -> T) = matcher(text).let { if (it.find()) consumer(it) else null } + inline fun List.matchFirst(pattern: Pattern, consumer: Matcher.() -> T): T? { + for (line in this) { + pattern.matcher(line).let { if (it.matches()) return consumer(it) } + } + return null + } + private fun String.internalCleanPlayerName(): String { val split = trim().split(" ") return if (split.size > 1) { -- cgit