2727import java .util .Objects ;
2828import java .util .Scanner ;
2929import java .util .concurrent .ExecutorService ;
30+ import java .util .concurrent .TimeUnit ;
3031import java .util .regex .Matcher ;
3132import 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