@@ -322,19 +322,7 @@ func guildMemberAdd(s *discordgo.Session, m *discordgo.GuildMemberAdd) {
322
322
return
323
323
}
324
324
325
- faqUsernameMatched , _ := regexp .MatchString (`(?i)FAQ` , m .User .Username )
326
- helpdeskUsernameMatched , _ := regexp .MatchString (`(?i)Helpdesk` , m .User .Username )
327
- supportUsernameMatched , _ := regexp .MatchString (`(?i)Support` , m .User .Username )
328
- adminUsernameMatched , _ := regexp .MatchString (`(?i)Admin` , m .User .Username )
329
- captchaUsernameMatched , _ := regexp .MatchString (`(?i)[CС][aа][pр]t[cс]h[aа]` , m .User .Username )
330
- giveawayUsernameMatched , _ := regexp .MatchString (`(?i)Giveaway` , m .User .Username )
331
- mee6UsernameMatched , _ := regexp .MatchString (`(?i)MEE6` , m .User .Username )
332
- managerUsernameMatched , _ := regexp .MatchString (`(?i)Manager` , m .User .Username )
333
- if (faqUsernameMatched || helpdeskUsernameMatched || supportUsernameMatched ||
334
- adminUsernameMatched || captchaUsernameMatched || giveawayUsernameMatched ||
335
- mee6UsernameMatched || managerUsernameMatched ) &&
336
- len (m .Member .Roles ) == 0 {
337
- go terminateMember (s , m .GuildID , m .User .ID , "Username spam" )
325
+ if checkSpamUsername (s , m ) {
338
326
return
339
327
}
340
328
@@ -392,3 +380,37 @@ func guildMemberAdd(s *discordgo.Session, m *discordgo.GuildMemberAdd) {
392
380
turdTimer (s , m )
393
381
}()
394
382
}
383
+
384
+ // Check if the username matches any of the given patterns
385
+ func isUsernameSpam (username string , patterns []string ) bool {
386
+ for _ , pattern := range patterns {
387
+ matched , _ := regexp .MatchString (pattern , username )
388
+ if matched {
389
+ return true
390
+ }
391
+ }
392
+ return false
393
+ }
394
+
395
+ // Check for spam usernames and terminate member if conditions are met
396
+ func checkSpamUsername (s * discordgo.Session , m * discordgo.GuildMemberAdd ) bool {
397
+ patterns := []string {
398
+ `(?i)Admin` ,
399
+ `(?i)Announcement` ,
400
+ `(?i)[CС][aа][pр]t[cс]h[aа]` ,
401
+ `(?i)FAQ` ,
402
+ `(?i)Giveaway` ,
403
+ `(?i)Helpdesk` ,
404
+ `(?i)Manager` ,
405
+ `(?i)MEE6` ,
406
+ `(?i)Support` ,
407
+ }
408
+
409
+ username := m .User .Username
410
+ if isUsernameSpam (username , patterns ) && len (m .Roles ) == 0 {
411
+ go terminateMember (s , m .GuildID , m .User .ID , "Username spam" )
412
+ return true
413
+ }
414
+
415
+ return false
416
+ }
0 commit comments