diff --git a/api/src/main/java/com/alttd/chat/config/RegexConfig.java b/api/src/main/java/com/alttd/chat/config/RegexConfig.java index a358c77..5c10243 100755 --- a/api/src/main/java/com/alttd/chat/config/RegexConfig.java +++ b/api/src/main/java/com/alttd/chat/config/RegexConfig.java @@ -178,13 +178,18 @@ public final class RegexConfig { String regex = entry.getValue().node("regex").getString(); String replacement = entry.getValue().node("replacement").getString(); List exclusions = entry.getValue().node("exclusions").getList(io.leangen.geantyref.TypeToken.get(String.class), new ArrayList<>()); + boolean disableInPrivate = false; + ConfigurationNode node = entry.getValue().node("disable-in-private"); + if (node != null) { + disableInPrivate = node.getBoolean(); + } if (type == null || type.isEmpty() || regex == null || regex.isEmpty()) { ALogger.warn("Filter: " + name + " was set up incorrectly"); } else { if (replacement == null || replacement.isEmpty()) { replacement = name; } - ChatFilter chatFilter = new ChatFilter(name, type, regex, replacement, exclusions); + ChatFilter chatFilter = new ChatFilter(name, type, regex, replacement, exclusions, disableInPrivate); RegexManager.addFilter(chatFilter); } } catch(SerializationException ex) { diff --git a/api/src/main/java/com/alttd/chat/managers/RegexManager.java b/api/src/main/java/com/alttd/chat/managers/RegexManager.java index a04618c..53f186a 100755 --- a/api/src/main/java/com/alttd/chat/managers/RegexManager.java +++ b/api/src/main/java/com/alttd/chat/managers/RegexManager.java @@ -60,7 +60,10 @@ public class RegexManager { return false; } CachedPermissionData permissionData = user.getCachedData().getPermissionData(); + boolean isPrivate = channel.equals("party"); for(ChatFilter chatFilter : chatFilters) { + if (isPrivate && chatFilter.isDisabledInPrivate()) + continue; switch (chatFilter.getType()) { case CHAT: break; diff --git a/api/src/main/java/com/alttd/chat/objects/ChatFilter.java b/api/src/main/java/com/alttd/chat/objects/ChatFilter.java index 49b0037..b5ea87a 100755 --- a/api/src/main/java/com/alttd/chat/objects/ChatFilter.java +++ b/api/src/main/java/com/alttd/chat/objects/ChatFilter.java @@ -17,14 +17,16 @@ public class ChatFilter { private final Pattern pattern; private final String replacement; private final List exclusions; + private final boolean disableInPrivate; - public ChatFilter(String name, String type, String regex, String replacement, List exclusions) { + public ChatFilter(String name, String type, String regex, String replacement, List exclusions, boolean disableInPrivate) { this.name = name; this.filterType = FilterType.getType(type); this.regex = regex; this.pattern = Pattern.compile(getRegex(), Pattern.CASE_INSENSITIVE); this.replacement = replacement; this.exclusions = exclusions; + this.disableInPrivate = disableInPrivate; } public String getName() { @@ -47,6 +49,10 @@ public class ChatFilter { return this.exclusions; } + public boolean isDisabledInPrivate() { + return disableInPrivate; + } + public boolean matches(ModifiableString filterableString) { String input = filterableString.string(); Matcher matcher = pattern.matcher(input);