Esempio n. 1
0
        public static async Task SendWithEmojiAsync(ICommandContext context, string message, string trigger, Emoji emoji = null, bool autoDelete = false)
        {
            var self = await context.Guild.GetCurrentUserAsync();

            IUserMessage msg = null;

            if (context.Channel.CheckChannelPermission(ChannelPermission.SendMessages, self))
            {
                if (emoji == null)
                {
                    emoji = new Emoji(":warning:");
                }
                msg = await context.Channel.SendMessageAsync(
                    $"{emoji.Name} {context.User.Mention} {message}! Trigger: {trigger} {emoji.Name}");
            }
            else
            {
                Logger.Warn($"Unable to send nothing penalty message in {context.Guild}/{context.Channel} missing permissions!");
            }

            if (msg != null)
            {
                if (autoDelete)
                {
                    await JobQueue.QueueTrigger(msg);
                }
            }
        }
Esempio n. 2
0
        public static async Task BanAsync(ICommandContext context, string message, string trigger, Emote emote = null, bool autoDelete = false)
        {
            var self = await context.Guild.GetCurrentUserAsync();

            if (self.GuildPermissions.BanMembers)
            {
                try
                {
                    await context.Guild.AddBanAsync(context.User);

                    IUserMessage msg;
                    if (emote == null)
                    {
                        emote = Emote.Parse("<:Ban:330793436309487626>");
                    }
                    if (self.GuildPermissions.UseExternalEmojis && emote != null)
                    {
                        msg = await context.Channel.SendMessageAsync($"{emote} {context.User.Mention} {message}! Trigger: {trigger} {emote}");
                    }
                    else
                    {
                        msg = await context.Channel.SendMessageAsync($":no_entry: {context.User.Mention} {message}! Trigger: {trigger} :no_entry:");
                    }
                    Logger.Info($"{context.User} has been banned from {context.Guild}");

                    if (msg != null)
                    {
                        if (autoDelete)
                        {
                            await JobQueue.QueueTrigger(msg);
                        }
                    }
                }
                catch (Exception e)
                {
                    Logger.Warn(e, $"Unable to ban {context.User} from {context.Guild}");
                }
            }
            else
            {
                Logger.Warn($"Unable to ban {context.User} from {context.Guild}, not enoguh permissions to ban");
            }
        }
Esempio n. 3
0
        public static async Task KickAsync(ICommandContext context, string message, string trigger, Emote emote = null, bool autoDelete = false)
        {
            var self = await context.Guild.GetCurrentUserAsync();

            if (self.GuildPermissions.KickMembers)
            {
                try
                {
                    await((IGuildUser)context.User).KickAsync();
                    IUserMessage msg;
                    if (emote == null)
                    {
                        emote = Emote.Parse("<:Kick:330793607919566852>");
                    }
                    if (self.GuildPermissions.UseExternalEmojis && emote != null)
                    {
                        msg = await context.Channel.SendMessageAsync($"{emote} {context.User.Mention} {message}! Trigger: {trigger} {emote}");
                    }
                    else
                    {
                        msg = await context.Channel.SendMessageAsync($":boot: {context.User.Mention} {message}! Trigger: {trigger} :boot:");
                    }
                    Logger.Info($"{context.User} has been kicked from {context.Guild}.");

                    if (msg != null)
                    {
                        if (autoDelete)
                        {
                            await JobQueue.QueueTrigger(msg);
                        }
                    }
                }
                catch (Exception e)
                {
                    Logger.Warn(e, $"Unable to kick {context.User} from {context.Guild}");
                }
            }
            else
            {
                Logger.Warn($"Unable to kick {context.User} from {context.Guild}, not enough permissions to kick");
            }
        }
Esempio n. 4
0
        public static async Task SendWithEmoteAsync(ILoggerFactory factory, ICommandContext context, string message, string trigger, Emote emote = null, bool autoDelete = false)
        {
            _logger = factory.CreateLogger(typeof(MessagePenalty));
            var self = await context.Guild.GetCurrentUserAsync();

            IUserMessage msg = null;

            if (context.Channel.CheckChannelPermission(ChannelPermission.SendMessages, self))
            {
                if (emote == null)
                {
                    emote = Emote.Parse("<:NoAds:330796107540201472>");
                }
                if (self.GuildPermissions.UseExternalEmojis && emote != null)
                {
                    msg = await context.Channel.SendMessageAsync(
                        $"{emote} {context.User.Mention} {message}! Trigger: {trigger} {emote}");
                }
                else
                {
                    msg = await context.Channel.SendMessageAsync(
                        $":no_entry_sign: {context.User.Mention} {message}! Trigger: {trigger} :no_entry_sign:");
                }
            }
            else
            {
                _logger.LogWarning(new EventId(430), $"Unable to send Message penalty message in {context.Guild}/{context.Channel} missing permissions!");
            }

            if (msg != null)
            {
                if (autoDelete)
                {
                    await JobQueue.QueueTrigger(msg, _logger);
                }
            }
        }
Esempio n. 5
0
        public static async Task BanAsync(ILoggerFactory factory, ICommandContext context, string message, string trigger, Emote emote = null, bool autoDelete = false)
        {
            var logger = factory.CreateLogger(typeof(BanPenalty));

            var self = await context.Guild.GetCurrentUserAsync();

            if (context.Channel.CheckChannelPermission(ChannelPermission.ManageMessages, self))
            {
                if (self.GuildPermissions.BanMembers)
                {
                    try
                    {
                        await context.Guild.AddBanAsync(context.User, 1, $"Banned for Advertisement in {context.Channel}. Trigger: {trigger}");

                        IUserMessage msg;
                        if (emote == null)
                        {
                            emote = Emote.Parse("<:Ban:330793436309487626>");
                        }
                        if (self.GuildPermissions.UseExternalEmojis && emote != null)
                        {
                            msg = await context.Channel.SendMessageAsync($"{emote} {context.User.Mention} {message}! Trigger: {trigger} {emote}");
                        }
                        else
                        {
                            msg = await context.Channel.SendMessageAsync($":no_entry: {context.User.Mention} {message}! Trigger: {trigger} :no_entry:");
                        }
                        logger.LogInformation(new EventId(200), $"{context.User} has been banned from {context.Guild}");

                        if (msg != null)
                        {
                            if (autoDelete)
                            {
                                await JobQueue.QueueTrigger(msg, logger);
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        if (context.Channel.CheckChannelPermission(ChannelPermission.SendMessages, self))
                        {
                            var msg = await context.Channel.SendMessageAsync(
                                $":anger: Unable to Ban {context.User}.\n`{e.Message}`");

                            await JobQueue.QueueTrigger(msg, logger);
                        }
                        else
                        {
                            logger.LogWarning(new EventId(403), $"Unable to send Ban penalty message in {context.Guild}/{context.Channel} missing permissions!");
                        }
                        logger.LogWarning(new EventId(400), e, $"Unable to Ban {context.User} from {context.Guild}");
                    }
                }
                else
                {
                    if (context.Channel.CheckChannelPermission(ChannelPermission.SendMessages, self))
                    {
                        var msg = await context.Channel.SendMessageAsync(
                            $":anger: Unable to Ban {context.User}.\n`Missing Ban Permission`");

                        await JobQueue.QueueTrigger(msg, logger);
                    }
                    else
                    {
                        logger.LogWarning(new EventId(403), $"Unable to send Ban penalty message in {context.Guild}/{context.Channel} missing permissions!");
                    }
                    logger.LogWarning(new EventId(403), $"Unable to ban {context.User} from {context.Guild}, not enoguh permissions to ban");
                }
            }
        }
Esempio n. 6
0
        public static async Task KickAsync(ILoggerFactory factory, ICommandContext context, string message, string trigger, Emote emote = null, bool autoDelete = false)
        {
            var logger = factory.CreateLogger(typeof(KickPenalty));
            var self   = await context.Guild.GetCurrentUserAsync();

            if (context.Channel.CheckChannelPermission(ChannelPermission.ManageMessages, self))
            {
                if (self.GuildPermissions.KickMembers)
                {
                    try
                    {
                        await((IGuildUser)context.User).KickAsync($"Kicked for Advertisement in {context.Channel}. Trigger: {trigger}");
                        IUserMessage msg;
                        if (emote == null)
                        {
                            emote = Emote.Parse("<:Kick:330793607919566852>");
                        }
                        if (self.GuildPermissions.UseExternalEmojis && emote != null)
                        {
                            msg = await context.Channel.SendMessageAsync($"{emote} {context.User.Mention} {message}! Trigger: {trigger} {emote}");
                        }
                        else
                        {
                            msg = await context.Channel.SendMessageAsync($":boot: {context.User.Mention} {message}! Trigger: {trigger} :boot:");
                        }
                        logger.LogInformation(new EventId(200), $"{context.User} has been kicked from {context.Guild}.");

                        if (msg != null)
                        {
                            if (autoDelete)
                            {
                                await JobQueue.QueueTrigger(msg, logger);
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        if (context.Channel.CheckChannelPermission(ChannelPermission.SendMessages, self))
                        {
                            var msg = await context.Channel.SendMessageAsync(
                                $":anger: Unable to kick {context.User}.\n`{e.Message}`");

                            await JobQueue.QueueTrigger(msg, logger);
                        }
                        else
                        {
                            logger.LogWarning(new EventId(403), $"Unable to send Kick penalty message in {context.Guild}/{context.Channel} missing permissions!");
                        }
                        logger.LogWarning(new EventId(400), e, $"Unable to kick {context.User} from {context.Guild}");
                    }
                }
                else
                {
                    if (context.Channel.CheckChannelPermission(ChannelPermission.SendMessages, self))
                    {
                        var msg = await context.Channel.SendMessageAsync(
                            $":anger: Unable to kick {context.User}.\n`Missing Kick Permission`");

                        await JobQueue.QueueTrigger(msg, logger);
                    }
                    else
                    {
                        logger.LogWarning(new EventId(403), $"Unable to send Kick penalty message in {context.Guild}/{context.Channel} missing permissions!");
                    }
                    logger.LogWarning(new EventId(403), $"Unable to kick {context.User} from {context.Guild}, not enough permissions to kick");
                }
            }
        }