private async Task CheckUsernameAsync(SocketGuildUser orig, SocketGuildUser updated) { string oldName = orig.Nickname ?? orig.Username; string newName = updated.Nickname ?? updated.Username; Task <bool>[] isZalgo = { Zalgo.IsZalgoAsync(newName), configDatabase.AntiZalgo.GetAntiZalgoAsync(updated.Guild) }; if ((await Task.WhenAll(isZalgo)).All(x => x)) { try { await updated.ModifyAsync(x => x.Nickname = oldName); } catch { } } }
private async Task SendWelcomeMessage(SocketGuildUser u) { if (await raidModeDatabase.RaidMode.GetVerificationLevelAsync(u.Guild) != null && !u.IsBot) { await Task.WhenAll ( u.SendMessageAsync($":rotating_light: :rotating_light: The FBI of {u.Guild.Name} is currently in Raid Mode. As a result, you may not join the server at this time. :rotating_light: :rotating_light:"), raidModeDatabase.UsersBlocked.AddBlockedUserAsync(u) ); await u.KickAsync("FBI RAID MODE"); return; } SocketTextChannel channel = await modLogsDatabase.WelcomeChannel.GetWelcomeChannelAsync(u.Guild); if (channel != null) { List <string> messages = new() { "Don't even think about it.", "**FBI OPEN U**...wait...we'll be back shortly with a warrant.", "Where do you think you're going?", "Ladies and gentlemen, we got 'em.", "Give us a moment while we send a representative into your camera...", "You thought it was a normal server, but it was me! THE FBI!", "Walk out slowly with your arms i...wait, wrong person.", "You want to know how we figured it out?" }; int index = Program.rng.Next(messages.Count); await channel.SendMessageAsync($"{u.Mention} {messages[index]}"); } if (await verificationDatabase.Verified.GetVerifiedAsync(u)) { SocketRole role = await verificationDatabase.Roles.GetVerificationRoleAsync(u.Guild); if (role != null && u.Guild.CurrentUser.GetPermissions(u.Guild.DefaultChannel).ManageRoles) { await u.AddRoleAsync(role); } } else if (!u.IsBot && await verificationDatabase.Roles.GetVerificationRoleAsync(u.Guild) != null) { await Verify.SendCaptchaAsync(u); } string name = u.Nickname ?? u.Username; Task <bool>[] isZalgo = { Zalgo.IsZalgoAsync(name), configDatabase.AntiZalgo.GetAntiZalgoAsync(u.Guild) }; if ((await Task.WhenAll(isZalgo)).All(x => x)) { try { await u.ModifyAsync(async x => x.Nickname = await Zalgo.RemoveZalgoAsync(name)); } catch { } } }
private static async Task AutoModAsync(SocketCommandContext Context, bool isCommand) { Task <bool>[] isZalgo = { Zalgo.IsZalgoAsync(Context), configDatabase.AntiZalgo.GetAntiZalgoAsync(Context.Guild) }; Task <bool>[] isSpam = { Spam.IsSpamAsync(Context), configDatabase.AntiSpam.GetAntiSpamAsync(Context.Guild) }; Task <bool>[] isSingleSpam = { Spam.IsSingleSpamAsync(Context), configDatabase.AntiSingleSpam.GetAntiSingleSpamAsync(Context.Guild) }; Task <bool>[] isMassMention = { MassMention.IsMassMentionAsync(Context), configDatabase.AntiMassMention.GetAntiMassMentionAsync(Context.Guild) }; Task <bool>[] isCaps = { CAPS.ISCAPSASYNC(Context), configDatabase.AntiCaps.GetAntiCapsAsync(Context.Guild) }; Task <bool>[] isInvite = { Invite.HasInviteAsync(Context), configDatabase.AntiInvite.GetAntiInviteAsync(Context.Guild) }; Task <bool>[] isLink = { Link.IsLinkAsync(Context), configDatabase.AntiLink.GetAntiLinkAsync(Context.Guild) }; if (await configDatabase.AutoSurveillance.GetAutoSurveillanceAsync(Context.Guild)) { if (await AutoSurveillanceAsync(Context)) { return; } } if ((await Task.WhenAll(isZalgo)).All(x => x)) { await new Zalgo(Context).WarnAsync(); } else if (((await Task.WhenAll(isSpam)).All(x => x) || (await Task.WhenAll(isSingleSpam)).All(x => x)) && !isCommand) { await new Spam(Context).WarnAsync(); } else if ((await Task.WhenAll(isMassMention)).All(x => x)) { await new MassMention(Context).WarnAsync(); } else if ((await Task.WhenAll(isCaps)).All(x => x)) { await new CAPS(Context).WARNASYNC(); } else if ((await Task.WhenAll(isInvite)).All(x => x)) { await new Invite(Context).RemoveAsync(); } else if ((await Task.WhenAll(isLink)).All(x => x)) { await new Link(Context).RemoveAsync(); } }