Esempio n. 1
0
        private static async Task LogUnmute(IModeratorEventArgs mArgs)
        {
            if (!mArgs.Server.IsPremium)
            {
                return;
            }

            var logger = new ModeratorEventLogger(mArgs, InternalModerationAction.UNMUTE,
                                                  "🔔", GetFormattedTimestamp(), mArgs.Server.LogUnmutes);

            await logger.LogModerationAction();
        }
Esempio n. 2
0
        private static async Task LogUnshadowban(IModeratorEventArgs mArgs)
        {
            if (!mArgs.Server.IsPremium)
            {
                return;
            }

            var logger = new ModeratorEventLogger(mArgs, InternalModerationAction.UNSHADOWBAN,
                                                  "👻 ✅", GetFormattedTimestamp(), mArgs.Server.LogUnshadowbans);

            await logger.LogModerationAction();
        }
Esempio n. 3
0
 public static void TriggerUnmute(IModeratorEventArgs mArgs) => OnUnmute?.Invoke(mArgs);
Esempio n. 4
0
 public static void TriggerUnshadowban(IModeratorEventArgs mArgs) => OnUnshadowban?.Invoke(mArgs);
Esempio n. 5
0
 public static void TriggerUnwarn(IModeratorEventArgs wArgs) => OnUnwarn?.Invoke(wArgs);
Esempio n. 6
0
 public static void TriggerWarning(IModeratorEventArgs wArgs) => OnWarn?.Invoke(wArgs);
Esempio n. 7
0
        public static async Task OnWarn(IModeratorEventArgs warnArgs)
        {
            var currentSettings = await DatabaseQueries.GetFirstForServerAsync <WarnSetting>(warnArgs.Server.ServerId);

            if (currentSettings == null)
            {
                return;
            }

            List <WarnedUser> currentWarnings = await DatabaseQueries.GetAllForServerAndUserAsync <WarnedUser>(warnArgs.ActionedUser.Id, warnArgs.Server.ServerId);

            int warnCount = currentWarnings.Count;

            SocketGuildUser guildUser = ConfigProperties.Client.GetGuild(warnArgs.ActionedUser.Id).GetUser(warnArgs.ActionedUser.Id);

            int?muteNum      = currentSettings.Mute;
            int?kickNum      = currentSettings.Kick;
            int?shadowbanNum = currentSettings.Shadowban;
            int?banNum       = currentSettings.Ban;

            if (warnCount == banNum)
            {
                var ban = new Ban();

                try
                {
                    await ban.AutoBanUserAsync(guildUser, "User has been automatically banned due to " +
                                               $"reaching the specified warning threshold for bans " +
                                               $"({warnCount} warnings).");

                    await ConsoleLogger.LogAsync($"User [{guildUser} | {guildUser.Id}] has been " +
                                                 $"automatically banned in guild " +
                                                 $"[{guildUser.Guild} | {guildUser.Guild.Id}]", LogLvl.DEBUG);
                }
                catch (Exception e)
                {
                    await ConsoleLogger.LogAsync($"An attempt was made to auto-ban a user " +
                                                 $"who hit the warn threshold for this event " +
                                                 $"to take place. This failed due to an exception.\n" +
                                                 $"Exception Message: {e.Message}\n" +
                                                 $"Inner Exception Message: {e.InnerException?.Message}\n" +
                                                 $"Guild: {warnArgs.Server.ServerId}", LogLvl.WARN);
                }

                return;
            }

            if (warnCount == shadowbanNum)
            {
                var shadowban = new Shadowban();

                try
                {
                    await shadowban.AutoShadowbanUserAsync(guildUser);

                    await ConsoleLogger.LogAsync($"User [{guildUser} | {guildUser.Id}] has been " +
                                                 $"automatically shadowbanned in guild " +
                                                 $"[{guildUser.Guild} | {guildUser.Guild.Id}]", LogLvl.DEBUG);
                }
                catch (Exception e)
                {
                    await ConsoleLogger.LogAsync($"An attempt was made to auto-shadowban a user " +
                                                 $"who hit the warn threshold for this event " +
                                                 $"to take place. This failed due to an exception.\n" +
                                                 $"Exception Message: {e.Message}\n" +
                                                 $"Inner Exception Message: {e.InnerException?.Message}\n" +
                                                 $"Guild: {warnArgs.Server.ServerId}", LogLvl.WARN);
                }

                return;
            }

            if (warnCount == kickNum)
            {
                var kick = new Kick();

                try
                {
                    await kick.AutoKickUserAsync(guildUser, $"User has been automatically kicked due to " +
                                                 $"reaching the specified warning threshold for kicks " +
                                                 $"({warnCount} warnings).");

                    await ConsoleLogger.LogAsync($"User [{guildUser} | {guildUser.Id}] has been " +
                                                 $"automatically kicked in guild " +
                                                 $"[{guildUser.Guild} | {guildUser.Guild.Id}]", LogLvl.DEBUG);
                }
                catch (Exception e)
                {
                    await ConsoleLogger.LogAsync($"An attempt was made to auto-kick a user " +
                                                 $"who hit the warn threshold for this event " +
                                                 $"to take place. This failed due to an exception.\n" +
                                                 $"Exception Message: {e.Message}\n" +
                                                 $"Inner Exception Message: {e.InnerException?.Message}\n" +
                                                 $"Guild: {warnArgs.Server.ServerId}", LogLvl.WARN);
                }

                return;
            }

            if (warnCount == muteNum)
            {
                var mute = new Mute();

                try
                {
                    await mute.AutoMute(guildUser);

                    await ConsoleLogger.LogAsync($"User [{guildUser} | {guildUser.Id}] has been " +
                                                 $"automatically muted in guild " +
                                                 $"[{guildUser.Guild} | {guildUser.Guild.Id}]", LogLvl.DEBUG);
                }
                catch (Exception e)
                {
                    await ConsoleLogger.LogAsync($"An attempt was made to auto-mute a user " +
                                                 $"who hit the warn threshold for this event " +
                                                 $"to take place. This failed due to an exception.\n" +
                                                 $"Exception Message: {e.Message}\n" +
                                                 $"Inner Exception Message: {e.InnerException?.Message}\n" +
                                                 $"Guild: {warnArgs.Server.ServerId}", LogLvl.WARN);
                }
            }
        }