chat notifications: Prevent localPlayer highlights and notifications (#13244)

This commit is contained in:
Broooklyn
2021-02-28 14:22:53 -05:00
committed by GitHub
parent 2d5d490b50
commit e27636639e
2 changed files with 58 additions and 1 deletions

View File

@@ -172,6 +172,18 @@ public class ChatNotificationsPlugin extends Plugin
notifier.notify(Text.removeTags(chatMessage.getName()) + ": " + chatMessage.getMessage());
}
break;
case PRIVATECHATOUT:
return;
case MODCHAT:
case PUBLICCHAT:
case FRIENDSCHAT:
case AUTOTYPER:
case MODAUTOTYPER:
if (client.getLocalPlayer() != null && Text.toJagexName(Text.removeTags(chatMessage.getName())).equals(client.getLocalPlayer().getName()))
{
return;
}
break;
case CONSOLE:
// Don't notify for notification messages
if (chatMessage.getName().equals(runeliteTitle))

View File

@@ -44,7 +44,10 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import org.mockito.junit.MockitoJUnitRunner;
@@ -286,4 +289,46 @@ public class ChatNotificationsPluginTest
// set value uses our player name, which has nbsp replaced
verify(messageNode).setValue("<col=005f00><colHIGHLIGHT><u>Logic Knot</u><col=005f00> received a drop: Adamant longsword</col>");
}
}
@Test
public void testLocalPlayerSelfMention()
{
final String localPlayerName = "Broo klyn";
MessageNode messageNode = mock(MessageNode.class);
Player localPlayer = mock(Player.class);
when(client.getLocalPlayer()).thenReturn(localPlayer);
when(localPlayer.getName()).thenReturn(localPlayerName);
lenient().when(config.highlightOwnName()).thenReturn(true);
lenient().when(messageNode.getValue()).thenReturn("Spread love it's the Broo klyn way");
ChatMessage chatMessage = new ChatMessage();
chatMessage.setType(ChatMessageType.PUBLICCHAT);
chatMessage.setName("Broo\u00a0klyn");
chatMessage.setMessageNode(messageNode);
chatNotificationsPlugin.onChatMessage(chatMessage);
verify(messageNode, times(0)).setValue(any());
}
@Test
public void testPrivateChatOutReturn()
{
MessageNode messageNode = mock(MessageNode.class);
lenient().when(config.highlightWordsString()).thenReturn("Brooklyn");
lenient().when(messageNode.getValue()).thenReturn("Spread love it's the Brooklyn way");
ChatMessage chatMessage = new ChatMessage();
chatMessage.setType(ChatMessageType.PRIVATECHATOUT);
chatMessage.setMessageNode(messageNode);
chatNotificationsPlugin.startUp();
chatNotificationsPlugin.onChatMessage(chatMessage);
verify(messageNode, times(0)).setValue(any());
}
}