emoji plugin: support nbsp in messages

This commit is contained in:
William Collishaw
2019-07-24 13:06:31 -06:00
committed by Adam
parent b59405eec0
commit 87ec3f0bea
2 changed files with 18 additions and 2 deletions

View File

@@ -55,6 +55,7 @@ import net.runelite.client.util.ImageUtil;
public class EmojiPlugin extends Plugin public class EmojiPlugin extends Plugin
{ {
private static final Pattern TAG_REGEXP = Pattern.compile("<[^>]*>"); private static final Pattern TAG_REGEXP = Pattern.compile("<[^>]*>");
private static final Pattern WHITESPACE_REGEXP = Pattern.compile("[\\s\\u00A0]");
@Inject @Inject
private Client client; private Client client;
@@ -166,9 +167,9 @@ public class EmojiPlugin extends Plugin
} }
@Nullable @Nullable
private String updateMessage(final String message) String updateMessage(final String message)
{ {
final String[] messageWords = message.split(" "); final String[] messageWords = WHITESPACE_REGEXP.split(message);
boolean editedMessage = false; boolean editedMessage = false;
for (int i = 0; i < messageWords.length; i++) for (int i = 0; i < messageWords.length; i++)

View File

@@ -44,6 +44,8 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import org.mockito.runners.MockitoJUnitRunner; import org.mockito.runners.MockitoJUnitRunner;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
@RunWith(MockitoJUnitRunner.class) @RunWith(MockitoJUnitRunner.class)
public class EmojiPluginTest public class EmojiPluginTest
@@ -113,4 +115,17 @@ public class EmojiPluginTest
verify(messageNode).setRuneLiteFormatMessage("<img=10>"); verify(messageNode).setRuneLiteFormatMessage("<img=10>");
} }
@Test
public void testEmojiUpdateMessage()
{
String PARTY_POPPER = "<img=" + (-1 + Emoji.getEmoji("@@@").ordinal()) + '>';
String OPEN_MOUTH = "<img=" + (-1 + Emoji.getEmoji(":O").ordinal()) + '>';
assertNull(emojiPlugin.updateMessage("@@@@@"));
assertEquals(PARTY_POPPER, emojiPlugin.updateMessage("@@@"));
assertEquals(PARTY_POPPER + ' ' + PARTY_POPPER, emojiPlugin.updateMessage("@@@ @@@"));
assertEquals(PARTY_POPPER + ' ' + OPEN_MOUTH, emojiPlugin.updateMessage("@@@\u00A0:O"));
assertEquals(PARTY_POPPER + ' ' + OPEN_MOUTH + ' ' + PARTY_POPPER, emojiPlugin.updateMessage("@@@\u00A0:O @@@"));
assertEquals(PARTY_POPPER + " Hello World " + PARTY_POPPER, emojiPlugin.updateMessage("@@@\u00A0Hello World\u00A0@@@"));
}
} }