diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java index ecbd4730bc..3199e27fe4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java @@ -25,10 +25,11 @@ */ package net.runelite.client.plugins.chatnotifications; +import com.google.common.base.Splitter; import com.google.common.base.Strings; import com.google.common.eventbus.Subscribe; import com.google.inject.Provides; -import java.util.Arrays; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import static java.util.regex.Pattern.quote; @@ -56,6 +57,8 @@ import net.runelite.client.util.Text; ) public class ChatNotificationsPlugin extends Plugin { + private static final Splitter SPLITTER = Splitter.on(",").trimResults().omitEmptyStrings(); + @Inject private Client client; @@ -115,8 +118,8 @@ public class ChatNotificationsPlugin extends Plugin if (!config.highlightWordsString().trim().equals("")) { - String[] items = config.highlightWordsString().trim().split(", "); - String joined = Arrays.stream(items) + List items = SPLITTER.splitToList(config.highlightWordsString()); + String joined = items.stream() .map(Pattern::quote) .collect(Collectors.joining("|")); highlightMatcher = Pattern.compile("\\b(" + joined + ")\\b", Pattern.CASE_INSENSITIVE); diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPluginTest.java index 93afbc9850..59e687a8c8 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPluginTest.java @@ -24,9 +24,12 @@ */ package net.runelite.client.plugins.chatnotifications; +import com.google.common.base.Splitter; import com.google.inject.Guice; import com.google.inject.testing.fieldbinder.Bind; import com.google.inject.testing.fieldbinder.BoundFieldModule; +import java.util.Iterator; +import java.util.List; import javax.inject.Inject; import net.runelite.api.ChatMessageType; import net.runelite.api.Client; @@ -34,6 +37,7 @@ import net.runelite.api.MessageNode; import net.runelite.api.events.SetMessage; import net.runelite.client.Notifier; import net.runelite.client.chat.ChatMessageManager; +import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -88,4 +92,19 @@ public class ChatNotificationsPluginTest verify(messageNode).setValue("Deathbeam, Deathbeam OSRS"); } + + @Test + public void highlightListTest() + { + when(config.highlightWordsString()).thenReturn("this,is, a , test, "); + final Splitter splitter = Splitter.on(",").trimResults().omitEmptyStrings(); + final List higlights = splitter.splitToList(config.highlightWordsString()); + assertEquals(4, higlights.size()); + + final Iterator iterator = higlights.iterator(); + assertEquals("this", iterator.next()); + assertEquals("is", iterator.next()); + assertEquals("a", iterator.next()); + assertEquals("test", iterator.next()); + } } \ No newline at end of file