chatfilter: fix matching lt/gt
These are encoded as <lt> and <gt> and so require the patterns to match those, which is unintuitive
This commit is contained in:
@@ -320,7 +320,9 @@ public class ChatFilterPlugin extends Plugin
|
|||||||
String censorMessage(final String username, final String message)
|
String censorMessage(final String username, final String message)
|
||||||
{
|
{
|
||||||
String strippedMessage = jagexPrintableCharMatcher.retainFrom(message)
|
String strippedMessage = jagexPrintableCharMatcher.retainFrom(message)
|
||||||
.replace('\u00A0', ' ');
|
.replace('\u00A0', ' ')
|
||||||
|
.replaceAll("<lt>", "<")
|
||||||
|
.replaceAll("<gt>", ">");
|
||||||
String strippedAccents = stripAccents(strippedMessage);
|
String strippedAccents = stripAccents(strippedMessage);
|
||||||
assert strippedMessage.length() == strippedAccents.length();
|
assert strippedMessage.length() == strippedAccents.length();
|
||||||
|
|
||||||
|
|||||||
@@ -453,4 +453,15 @@ public class ChatFilterPluginTest
|
|||||||
chatFilterPlugin.onScriptCallbackEvent(event);
|
chatFilterPlugin.onScriptCallbackEvent(event);
|
||||||
assertEquals(1, client.getIntStack()[client.getIntStackSize() - 3]); // not filtered
|
assertEquals(1, client.getIntStack()[client.getIntStackSize() - 3]); // not filtered
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testLtGt()
|
||||||
|
{
|
||||||
|
when(chatFilterConfig.filteredWords()).thenReturn("f<ilte>r");
|
||||||
|
|
||||||
|
chatFilterPlugin.updateFilteredPatterns();
|
||||||
|
|
||||||
|
String message = chatFilterPlugin.censorMessage("Adam", "start f<lt>ilte<gt>r end");
|
||||||
|
assertEquals("start ******** end", message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user