Esempio n. 1
0
        public async Task Unwarn(CommandContext ctx, string id)
        {
            if (!Bot.IsModerator(ctx.Member))
            {
                await ctx.RespondAsync($"{Bot.BotSettings.ErrorEmoji} У вас нет доступа к этой команде!");

                return;
            }

            var warn = WarnSQL.Get(id);

            if (warn == null)
            {
                await ctx.RespondAsync(
                    $"{Bot.BotSettings.ErrorEmoji} Не найдено предупреждение с таким идентификатором.");

                return;
            }

            WarnSQL.Delete(warn.Id);
            var member = await ctx.Client.GetUserAsync(warn.User);

            await ctx.RespondAsync($"{Bot.BotSettings.OkEmoji} Успешно удалено предупреждение с **{member.Username}#{member.Discriminator}**!");

            await ctx.Guild.GetChannel(Bot.BotSettings.ModlogChannel).SendMessageAsync(
                "**Снятие предупреждения**\n\n" +
                $"**Администратор:** {ctx.Member}\n" +
                $"**Пользователь:** {member}\n" +
                $"**Дата:** {DateTime.Now}\n" +
                $"**ID предупреждения:** {id}\n" +
                $"**Количество предупреждений:** {WarnSQL.GetForUser(member.Id).Count}\n");

            try
            {
                var gMember = await ctx.Guild.GetMemberAsync(member.Id);

                await gMember.SendMessageAsync(
                    $"Администратор **{ctx.Member.Username}** снял ваше предупреждение с ID `{id}`");
            }
            catch (UnauthorizedException)
            {
                //user can block the bot
            }
            catch (NotFoundException)
            {
                //user is not a guild member
            }
        }