Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions Events/MemberEvents.cs
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,9 @@ public static async Task GuildMemberAdded(DiscordClient client, GuildMemberAdded
await channel.AddOverwriteAsync(e.Member, overwrite.Value.Allowed, overwrite.Value.Denied,
"Restoring saved overrides for member.");
}

// Change member name if it attempts to impersonate/roleplay a public figure or organization
await MemberHelpers.CheckAndChangeBadMemberNameAsync(e.Member);
}

public static async Task GuildMemberRemoved(DiscordClient client, GuildMemberRemovedEventArgs e)
Expand Down Expand Up @@ -245,6 +248,9 @@ await e.Member.ModifyAsync(a =>
a.Nickname = DehoistHelpers.DehoistName(e.Member.DisplayName);
a.AuditLogReason = "[Automatic dehoist; user is permadehoisted]";
});

// Change member name if it attempts to impersonate/roleplay a public figure or organization
await MemberHelpers.CheckAndChangeBadMemberNameAsync(e.Member);

// cache user
if (Program.cfgjson.EnablePersistentDb)
Expand Down
15 changes: 15 additions & 0 deletions Helpers/MemberHelpers.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
namespace Cliptok.Helpers
{
public class MemberHelpers
{
public static async Task CheckAndChangeBadMemberNameAsync(DiscordMember member)
{
if (Program.cfgjson.AutoRenameBadNames.Any(x => x.ToLower() == member.DisplayName.ToLower()))
await member.ModifyAsync(x =>
{
x.Nickname = $"{Program.cfgjson.AutoRenameAdverbs[Program.rand.Next(Program.cfgjson.AutoRenameAdverbs.Count - 1)]} Not {member.DisplayName}";
x.AuditLogReason = "Automatically changing bad member name.";
});
}
}
}
5 changes: 5 additions & 0 deletions Types/Config.cs
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,11 @@ public ulong InsidersChannel
[JsonProperty("messageLogExcludedChannels")]
public List<ulong> MessageLogExcludedChannels { get; set; } = new();

[JsonProperty("autoRenameBadNames")]
public List<string> AutoRenameBadNames { get; set; } = new();

[JsonProperty("autoRenameAdverbs")]
public List<string> AutoRenameAdverbs { get; set; } = new();
}

public class WorkflowConfig
Expand Down
39 changes: 39 additions & 0 deletions config.json
Original file line number Diff line number Diff line change
Expand Up @@ -369,5 +369,44 @@
883400305679663156,
593381041629298688,
450181490345508884
],
"autoRenameBadNames": [
"Bill Gates",
"Steve Jobs",
"Satya Nadella",
"Tim Cook",
"Mark Zuckerberg",
"Elon Musk",
"Jeff Bezos",
"Windows XP",
"Windows 7",
"Windows 8",
"Windows 8.1",
"Windows 10",
"Windows 11",
"Windows 12",
"Microsoft",
"Apple",
"macOS",
"Mac OS X",
"Google",
"COVID-19",
"Coronavirus"
],
"autoRenameAdverbs": [
"Definitely",
"Absolutely",
"Ostensibly",
"Certainly",
"Surely",
"Obviously",
"Clearly",
"Unmistakably",
"Unequivocally",
"Positively",
"Unquestionably",
"Undeniably",
"Indisputably",
"Irrefutably"
]
}
Loading