chatfilter: add option to block repeated public messages

Co-authored-by: Adam <Adam@sigterm.info>
This commit is contained in:
Corey Forsyth
2020-05-22 14:44:36 -04:00
committed by Adam
parent 0715e3c9fc
commit f85f6be5cf
3 changed files with 28 additions and 1 deletions

View File

@@ -130,4 +130,15 @@ public interface ChatFilterConfig extends Config
{
return false;
}
@ConfigItem(
keyName = "maxRepeatedPublicChats",
name = "Max repeated public chats",
description = "Block player chat message if repeated this many times. 0 is off",
position = 11
)
default int maxRepeatedPublicChats()
{
return 0;
}
}

View File

@@ -195,7 +195,9 @@ public class ChatFilterPlugin extends Plugin
Duplicate duplicateCacheEntry = duplicateChatCache.get(name + ":" + message);
if (duplicateCacheEntry != null)
{
blockMessage = duplicateCacheEntry.messageId != messageId;
blockMessage = duplicateCacheEntry.messageId != messageId ||
((chatMessageType == PUBLICCHAT || chatMessageType == MODCHAT) &&
config.maxRepeatedPublicChats() > 0 && duplicateCacheEntry.count > config.maxRepeatedPublicChats());
duplicateCount = duplicateCacheEntry.count;
}
}