Skip to content

Commit c3cf416

Browse files
Automatically rename members with 'bad names' (#314)
* Automatically rename members with 'bad names' Bad names being names that attempt to impersonate or roleplay as a public figure or organization * Move lists from config into files under Lists/
1 parent 0259fec commit c3cf416

File tree

5 files changed

+69
-0
lines changed

5 files changed

+69
-0
lines changed

Events/MemberEvents.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,9 @@ public static async Task GuildMemberAdded(DiscordClient client, GuildMemberAdded
9898
await channel.AddOverwriteAsync(e.Member, overwrite.Value.Allowed, overwrite.Value.Denied,
9999
"Restoring saved overrides for member.");
100100
}
101+
102+
// Change member name if it attempts to impersonate/roleplay a public figure or organization
103+
await MemberHelpers.CheckAndChangeBadMemberNameAsync(e.Member);
101104
}
102105

103106
public static async Task GuildMemberRemoved(DiscordClient client, GuildMemberRemovedEventArgs e)
@@ -245,6 +248,9 @@ await e.Member.ModifyAsync(a =>
245248
a.Nickname = DehoistHelpers.DehoistName(e.Member.DisplayName);
246249
a.AuditLogReason = "[Automatic dehoist; user is permadehoisted]";
247250
});
251+
252+
// Change member name if it attempts to impersonate/roleplay a public figure or organization
253+
await MemberHelpers.CheckAndChangeBadMemberNameAsync(e.Member);
248254

249255
// cache user
250256
if (Program.cfgjson.EnablePersistentDb)

Helpers/MemberHelpers.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
namespace Cliptok.Helpers
2+
{
3+
public class MemberHelpers
4+
{
5+
public static async Task CheckAndChangeBadMemberNameAsync(DiscordMember member)
6+
{
7+
if (Program.badNicknames.Any(x => x.ToLower() == member.DisplayName.ToLower()))
8+
await member.ModifyAsync(x =>
9+
{
10+
x.Nickname = $"{Program.badNicknameAdverbs[Program.rand.Next(Program.badNicknameAdverbs.Length)]} Not {member.DisplayName}";
11+
x.AuditLogReason = "Automatically changing bad member name.";
12+
});
13+
}
14+
}
15+
}

Lists/adverbs.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
Definitely
2+
Absolutely
3+
Ostensibly
4+
Certainly
5+
Surely
6+
Obviously
7+
Clearly
8+
Unmistakably
9+
Unequivocally
10+
Positively
11+
Unquestionably
12+
Undeniably
13+
Indisputably
14+
Irrefutably

Lists/nicknames.txt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
Bill Gates
2+
Steve Jobs
3+
Satya Nadella
4+
Tim Cook
5+
Mark Zuckerberg
6+
Elon Musk
7+
Jeff Bezos
8+
Windows XP
9+
Windows 7
10+
Windows 8
11+
Windows 8.1
12+
Windows 10
13+
Windows 11
14+
Windows 12
15+
Microsoft
16+
Apple
17+
macOS
18+
Mac OS X
19+
Google
20+
COVID-19
21+
Coronavirus

Program.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ class Program
5555
public static string[] avatars;
5656

5757
public static string[] badUsernames;
58+
public static string[] badNicknames;
59+
public static string[] badNicknameAdverbs;
60+
5861
public static List<ulong> autoBannedUsersCache = new();
5962
public static DiscordGuild homeGuild;
6063

@@ -152,6 +155,16 @@ static async Task Main(string[] _)
152155
badUsernames = File.ReadAllLines("Lists/usernames.txt");
153156
else
154157
badUsernames = Array.Empty<string>();
158+
159+
if (File.Exists("Lists/nicknames.txt"))
160+
badNicknames = File.ReadAllLines("Lists/nicknames.txt");
161+
else
162+
badNicknames = Array.Empty<string>();
163+
164+
if (File.Exists("Lists/adverbs.txt"))
165+
badNicknameAdverbs = File.ReadAllLines("Lists/adverbs.txt");
166+
else
167+
badNicknameAdverbs = Array.Empty<string>();
155168

156169
avatars = File.ReadAllLines("Lists/avatars.txt");
157170

0 commit comments

Comments
 (0)