mirror of
https://github.com/RPCS3/discord-bot.git
synced 2026-01-31 01:25:22 +01:00
Merge branch 'vnext'
This commit is contained in:
@@ -1,25 +1,36 @@
|
||||
namespace CompatBot.EventHandlers;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
public static class UsernameRaidMonitor
|
||||
namespace CompatBot.EventHandlers;
|
||||
|
||||
public static partial class UsernameRaidMonitor
|
||||
{
|
||||
[GeneratedRegex(@"\b(Discord|Wang\s*Chuanfu)\b", RegexOptions.ExplicitCapture)]
|
||||
private static partial Regex SpamNickname();
|
||||
|
||||
public static async Task OnMemberUpdated(DiscordClient c, GuildMemberUpdatedEventArgs args)
|
||||
{
|
||||
try
|
||||
{
|
||||
//member object most likely will not be updated in client cache at this moment
|
||||
var member = await args.Guild.GetMemberAsync(args.Member.Id).ConfigureAwait(false) ?? args.Member;
|
||||
string? fallback;
|
||||
if (args.NicknameAfter is string name)
|
||||
fallback = args.Member.Username;
|
||||
fallback = member.Username;
|
||||
else
|
||||
{
|
||||
name = args.Member.Username;
|
||||
name = member.Username;
|
||||
fallback = null;
|
||||
}
|
||||
|
||||
var member = await args.Guild.GetMemberAsync(args.Member.Id).ConfigureAwait(false) ?? args.Member;
|
||||
if (NeedsKick(name))
|
||||
{
|
||||
await args.Member.RemoveAsync("Anti Raid").ConfigureAwait(false);
|
||||
//await member.RemoveAsync("Anti Raid").ConfigureAwait(false);
|
||||
await c.ReportAsync("🤖 Potential scam bot",
|
||||
$"""
|
||||
User {member.GetMentionWithNickname()} who changed their nickname to {name} as a potential scam bot
|
||||
""",
|
||||
null,
|
||||
ReportSeverity.Medium
|
||||
);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -32,10 +43,18 @@ public static class UsernameRaidMonitor
|
||||
{
|
||||
try
|
||||
{
|
||||
var name = args.Member.DisplayName;
|
||||
var member = await args.Guild.GetMemberAsync(args.Member.Id).ConfigureAwait(false) ?? args.Member;
|
||||
var name = member.DisplayName;
|
||||
if (NeedsKick(name))
|
||||
{
|
||||
await args.Member.RemoveAsync("Anti Raid").ConfigureAwait(false);
|
||||
await member.RemoveAsync("Anti Raid").ConfigureAwait(false);
|
||||
await c.ReportAsync("🤖 Potential scam bot",
|
||||
$"""
|
||||
Kicked user {member.GetMentionWithNickname()} who has joined with nickname {name}, and is a potential scam bot
|
||||
""",
|
||||
null,
|
||||
ReportSeverity.Medium
|
||||
);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -47,7 +66,6 @@ public static class UsernameRaidMonitor
|
||||
public static bool NeedsKick(string displayName)
|
||||
{
|
||||
displayName = displayName.Normalize().TrimEager();
|
||||
return displayName.Equals("D𝗂scord");
|
||||
return SpamNickname().IsMatch(displayName);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user