Skip to content

Commit bd7ef88

Browse files
committed
refactored config.json.template key and added addiditional roles to it;
refactored variable names in CodeMessageAutoDetection;
1 parent 2aef706 commit bd7ef88

File tree

2 files changed

+13
-9
lines changed

2 files changed

+13
-9
lines changed

application/config.json.template

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"heavyModerationRolePattern": "Moderator",
1111
"softModerationRolePattern": "Moderator|Community Ambassador",
1212
"tagManageRolePattern": "Moderator|Community Ambassador|Top Helpers .+",
13-
"ignoreMessageAutoDetectionRolePattern": "Top Helpers .+",
13+
"ignoreCodeAutoDetectionRolePattern": "Top Helpers .+|Moderator|Community Ambassador|Expert",
1414
"suggestions": {
1515
"channelPattern": "tj_suggestions",
1616
"upVoteEmoteName": "peepo_yes",

application/src/main/java/org/togetherjava/tjbot/commands/code/CodeMessageAutoDetection.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.togetherjava.tjbot.commands.code;
22

3-
import net.dv8tion.jda.api.entities.Member;
43
import net.dv8tion.jda.api.entities.Message;
54
import net.dv8tion.jda.api.entities.Role;
65
import net.dv8tion.jda.api.entities.channel.ChannelType;
@@ -12,6 +11,8 @@
1211
import org.togetherjava.tjbot.commands.utils.MessageUtils;
1312
import org.togetherjava.tjbot.config.Config;
1413

14+
import java.util.Arrays;
15+
import java.util.List;
1516
import java.util.Optional;
1617
import java.util.function.Predicate;
1718
import java.util.regex.Pattern;
@@ -25,7 +26,7 @@ public final class CodeMessageAutoDetection extends MessageReceiverAdapter {
2526

2627
private final CodeMessageHandler codeMessageHandler;
2728
private final Predicate<String> isHelpForumName;
28-
private final String ignoredRolePattern;
29+
private final List<Predicate<String>> isIgnoredRolePattern;
2930

3031
/**
3132
* Creates a new instance.
@@ -41,13 +42,16 @@ public CodeMessageAutoDetection(Config config, CodeMessageHandler codeMessageHan
4142
isHelpForumName =
4243
Pattern.compile(config.getHelpSystem().getHelpForumPattern()).asMatchPredicate();
4344

44-
ignoredRolePattern = config.getIgnoreMessageAutoDetectionRolePattern();
45+
isIgnoredRolePattern =
46+
Arrays.stream(config.getIgnoreCodeAutoDetectionRolePattern().split("\\|"))
47+
.map(role -> Pattern.compile(role).asMatchPredicate())
48+
.toList();
4549
}
4650

4751
@Override
4852
public void onMessageReceived(MessageReceivedEvent event) {
4953
if (event.isWebhookMessage() || event.getAuthor().isBot() || !isHelpThread(event)
50-
|| isSentByIgnoredMember(event.getMember())) {
54+
|| isSentByExcludedRole(event.getMember().getRoles())) {
5155
return;
5256
}
5357

@@ -68,11 +72,11 @@ public void onMessageReceived(MessageReceivedEvent event) {
6872
codeMessageHandler.addAndHandleCodeMessage(originalMessage, true);
6973
}
7074

71-
private boolean isSentByIgnoredMember(Member member) {
72-
return member.getRoles()
73-
.stream()
75+
private boolean isSentByExcludedRole(List<Role> roles) {
76+
return roles.stream()
7477
.map(Role::getName)
75-
.anyMatch(role -> role.matches(ignoredRolePattern));
78+
.anyMatch(role -> isIgnoredRolePattern.stream()
79+
.anyMatch(rolePattern -> rolePattern.test(role)));
7680
}
7781

7882
private boolean isHelpThread(MessageReceivedEvent event) {

0 commit comments

Comments
 (0)