Fix chat notification highlight words split regex (#5798)
Fixes an issue where the chat notifications plugin would not split word highlights with input as `some,highlight` even though they are supposed to be valid
This commit is contained in:
@@ -25,10 +25,11 @@
|
|||||||
*/
|
*/
|
||||||
package net.runelite.client.plugins.chatnotifications;
|
package net.runelite.client.plugins.chatnotifications;
|
||||||
|
|
||||||
|
import com.google.common.base.Splitter;
|
||||||
import com.google.common.base.Strings;
|
import com.google.common.base.Strings;
|
||||||
import com.google.common.eventbus.Subscribe;
|
import com.google.common.eventbus.Subscribe;
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
import java.util.Arrays;
|
import java.util.List;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import static java.util.regex.Pattern.quote;
|
import static java.util.regex.Pattern.quote;
|
||||||
@@ -56,6 +57,8 @@ import net.runelite.client.util.Text;
|
|||||||
)
|
)
|
||||||
public class ChatNotificationsPlugin extends Plugin
|
public class ChatNotificationsPlugin extends Plugin
|
||||||
{
|
{
|
||||||
|
private static final Splitter SPLITTER = Splitter.on(",").trimResults().omitEmptyStrings();
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private Client client;
|
private Client client;
|
||||||
|
|
||||||
@@ -115,8 +118,8 @@ public class ChatNotificationsPlugin extends Plugin
|
|||||||
|
|
||||||
if (!config.highlightWordsString().trim().equals(""))
|
if (!config.highlightWordsString().trim().equals(""))
|
||||||
{
|
{
|
||||||
String[] items = config.highlightWordsString().trim().split(", ");
|
List<String> items = SPLITTER.splitToList(config.highlightWordsString());
|
||||||
String joined = Arrays.stream(items)
|
String joined = items.stream()
|
||||||
.map(Pattern::quote)
|
.map(Pattern::quote)
|
||||||
.collect(Collectors.joining("|"));
|
.collect(Collectors.joining("|"));
|
||||||
highlightMatcher = Pattern.compile("\\b(" + joined + ")\\b", Pattern.CASE_INSENSITIVE);
|
highlightMatcher = Pattern.compile("\\b(" + joined + ")\\b", Pattern.CASE_INSENSITIVE);
|
||||||
|
|||||||
@@ -24,9 +24,12 @@
|
|||||||
*/
|
*/
|
||||||
package net.runelite.client.plugins.chatnotifications;
|
package net.runelite.client.plugins.chatnotifications;
|
||||||
|
|
||||||
|
import com.google.common.base.Splitter;
|
||||||
import com.google.inject.Guice;
|
import com.google.inject.Guice;
|
||||||
import com.google.inject.testing.fieldbinder.Bind;
|
import com.google.inject.testing.fieldbinder.Bind;
|
||||||
import com.google.inject.testing.fieldbinder.BoundFieldModule;
|
import com.google.inject.testing.fieldbinder.BoundFieldModule;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import net.runelite.api.ChatMessageType;
|
import net.runelite.api.ChatMessageType;
|
||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
@@ -34,6 +37,7 @@ import net.runelite.api.MessageNode;
|
|||||||
import net.runelite.api.events.SetMessage;
|
import net.runelite.api.events.SetMessage;
|
||||||
import net.runelite.client.Notifier;
|
import net.runelite.client.Notifier;
|
||||||
import net.runelite.client.chat.ChatMessageManager;
|
import net.runelite.client.chat.ChatMessageManager;
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
@@ -88,4 +92,19 @@ public class ChatNotificationsPluginTest
|
|||||||
|
|
||||||
verify(messageNode).setValue("<colHIGHLIGHT>Deathbeam<colNORMAL>, <colHIGHLIGHT>Deathbeam<colNORMAL> OSRS");
|
verify(messageNode).setValue("<colHIGHLIGHT>Deathbeam<colNORMAL>, <colHIGHLIGHT>Deathbeam<colNORMAL> OSRS");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void highlightListTest()
|
||||||
|
{
|
||||||
|
when(config.highlightWordsString()).thenReturn("this,is, a , test, ");
|
||||||
|
final Splitter splitter = Splitter.on(",").trimResults().omitEmptyStrings();
|
||||||
|
final List<String> higlights = splitter.splitToList(config.highlightWordsString());
|
||||||
|
assertEquals(4, higlights.size());
|
||||||
|
|
||||||
|
final Iterator<String> iterator = higlights.iterator();
|
||||||
|
assertEquals("this", iterator.next());
|
||||||
|
assertEquals("is", iterator.next());
|
||||||
|
assertEquals("a", iterator.next());
|
||||||
|
assertEquals("test", iterator.next());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user