Skip to content

Commit b81420e

Browse files
authored
Merge pull request #418 from danthe1st/timeout-on-automod
timeout users on automod
2 parents b4d9cee + 5f393b8 commit b81420e

File tree

1 file changed

+19
-39
lines changed
  • src/main/java/net/javadiscord/javabot/systems/moderation

1 file changed

+19
-39
lines changed

src/main/java/net/javadiscord/javabot/systems/moderation/AutoMod.java

Lines changed: 19 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.util.Objects;
2828
import java.util.Scanner;
2929
import java.util.concurrent.ExecutorService;
30+
import java.util.concurrent.TimeUnit;
3031
import java.util.regex.Matcher;
3132
import java.util.regex.Pattern;
3233

@@ -103,19 +104,6 @@ private boolean canBypassAutomod(Member member) {
103104
* @param message the {@link Message} that should be checked
104105
*/
105106
private void checkNewMessageAutomod(@Nonnull Message message) {
106-
// mention spam
107-
if (message.getMentions().getUsers().size() >= 5) {
108-
new ModerationService(notificationService, botConfig.get(message.getGuild()), warnRepository, asyncPool)
109-
.warn(
110-
message.getAuthor(),
111-
WarnSeverity.MEDIUM,
112-
"Automod: Mention Spam",
113-
message.getGuild().getMember(message.getJDA().getSelfUser()),
114-
message.getChannel(),
115-
false
116-
);
117-
}
118-
119107
// spam
120108
message.getChannel().getHistory().retrievePast(10).queue(messages -> {
121109
int spamCount = (int) messages.stream().filter(msg -> !msg.equals(message))
@@ -138,39 +126,31 @@ private void checkNewMessageAutomod(@Nonnull Message message) {
138126
private void checkContentAutomod(@Nonnull Message message) {
139127
//Check for Advertising Links
140128
if (hasAdvertisingLink(message)) {
141-
notificationService.withGuild(message.getGuild()).sendToModerationLog(c -> c.sendMessageFormat("Message: `%s`", message.getContentRaw()));
142-
new ModerationService(notificationService, botConfig.get(message.getGuild()), warnRepository, asyncPool)
143-
.warn(
144-
message.getAuthor(),
145-
WarnSeverity.MEDIUM,
146-
"Automod: Advertising",
147-
message.getGuild().getMember(message.getJDA().getSelfUser()),
148-
message.getChannel(),
149-
isSuggestionsChannel(message.getChannel())
150-
);
151-
message.delete().queue(success -> {
152-
}, error -> log.info("Message was deleted before Automod was able to handle it."));
153-
154-
129+
doAutomodActions(message,"Advertising");
155130
}
156131

157132
//Check for suspicious Links
158133
if (hasSuspiciousLink(message)) {
159-
notificationService.withGuild(message.getGuild()).sendToModerationLog(c -> c.sendMessageFormat("Suspicious Link sent by: %s (`%s`)", message.getAuthor().getAsMention(), message.getContentRaw()));
160-
new ModerationService(notificationService, botConfig.get(message.getGuild()), warnRepository, asyncPool)
161-
.warn(
162-
message.getAuthor(),
163-
WarnSeverity.MEDIUM,
164-
"Automod: Suspicious Link",
165-
message.getGuild().getMember(message.getJDA().getSelfUser()),
166-
message.getChannel(),
167-
isSuggestionsChannel(message.getChannel())
168-
);
169-
message.delete().queue(success -> {
170-
}, error -> log.info("Message was deleted before Automod was able to handle it."));
134+
doAutomodActions(message, "Suspicious Link");
171135
}
172136
}
173137

138+
private void doAutomodActions(Message message, String reason) {
139+
notificationService.withGuild(message.getGuild()).sendToModerationLog(c -> c.sendMessageFormat("Message by %s: `%s`", message.getAuthor().getAsMention(), message.getContentRaw()));
140+
new ModerationService(notificationService, botConfig.get(message.getGuild()), warnRepository, asyncPool)
141+
.warn(
142+
message.getAuthor(),
143+
WarnSeverity.MEDIUM,
144+
"Automod: " + reason,
145+
message.getGuild().getMember(message.getJDA().getSelfUser()),
146+
message.getChannel(),
147+
isSuggestionsChannel(message.getChannel())
148+
);
149+
message.delete().queue(success -> {
150+
}, error -> log.info("Message was deleted before Automod was able to handle it."));
151+
message.getMember().timeoutFor(30, TimeUnit.SECONDS).queue();
152+
}
153+
174154
/**
175155
* Handles potential spam messages.
176156
*

0 commit comments

Comments
 (0)