@Nullable
	String updateMessage(final String message)
	{
		final String[] messageWords = WHITESPACE_REGEXP.split(message);

		boolean editedMessage = false;
		for (int i = 0; i < messageWords.length; i++)
		{
			// Remove tags except for <lt> and <gt>
			final String trigger = Text.removeFormattingTags(messageWords[i]);
			final Emoji emoji = Emoji.getEmoji(trigger);

			if (emoji == null)
			{
				continue;
			}

			final int emojiId = iconIds[emoji.ordinal()];
			messageWords[i] = messageWords[i].replace(trigger, "<img=" + chatIconManager.chatIconIndex(emojiId) + ">");
			editedMessage = true;
		}

		// If we haven't edited the message any, don't update it.
		if (!editedMessage)
		{
			return null;
		}

		return String.join(" ", messageWords);
	}
@Test
	public void testEmojiUpdateMessage()
	{
		String PARTY_POPPER = "<img=" + Emoji.getEmoji("@@@").ordinal() + '>';
		String OPEN_MOUTH = "<img=" + 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@@@"));
	}