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> --- .../skyhanni/features/fame/CityProjectFeatures.kt | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/features/fame') diff --git a/src/main/java/at/hannibal2/skyhanni/features/fame/CityProjectFeatures.kt b/src/main/java/at/hannibal2/skyhanni/features/fame/CityProjectFeatures.kt index 0fd475647..c2bfd586e 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/fame/CityProjectFeatures.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/fame/CityProjectFeatures.kt @@ -27,7 +27,7 @@ import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators import at.hannibal2.skyhanni.utils.RenderUtils.highlight import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems import at.hannibal2.skyhanni.utils.SimpleTimeMark -import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher +import at.hannibal2.skyhanni.utils.StringUtils.matchFirst import at.hannibal2.skyhanni.utils.StringUtils.matches import at.hannibal2.skyhanni.utils.TimeUtils import at.hannibal2.skyhanni.utils.renderables.Renderable @@ -123,15 +123,13 @@ class CityProjectFeatures { val lore = item.getLore() val completed = lore.lastOrNull()?.let { completedPattern.matches(it) } ?: false if (completed) continue - for (line in lore) { - contributeAgainPattern.matchMatcher(line) { - val rawTime = group("time") - if (rawTime.contains("Soon!")) return@matchMatcher - val duration = TimeUtils.getDuration(rawTime) - val endTime = now + duration - if (endTime < nextTime) { - nextTime = endTime - } + lore.matchFirst(contributeAgainPattern) { + val rawTime = group("time") + if (!rawTime.contains("Soon!")) return@matchFirst + val duration = TimeUtils.getDuration(rawTime) + val endTime = now + duration + if (endTime < nextTime) { + nextTime = endTime } } if (item.name != "§eContribute this component!") continue -- cgit