示例#1
0
        public static async void Warn(DiscordClient client, DiscordMember moderator, DiscordGuild guild,
                                      DiscordMember member, string reason)
        {
            //if (!UserList.Users.ContainsKey(member.Id)) User.Create(member.Id);

            var id   = RandomString.NextString(6);
            var date = DateTime.Now;

            var message = await guild.GetChannel(Bot.BotSettings.ModlogChannel).SendMessageAsync
                              ("**Предупреждение**\n\n" +
                              $"**От:** {moderator}\n" +
                              $"**Кому:** {member}\n" +
                              $"**Дата:** {date}\n" +
                              $"**ID предупреждения:** {id}\n" +
                              $"**Количество предупреждений:** {WarnSQL.GetForUser(member.Id).Count + 1}\n" +
                              $"**Причина:** {reason}");

            //await message.CreateReactionAsync(DiscordEmoji.FromName(client, ":pencil2:"));
            //await message.CreateReactionAsync(DiscordEmoji.FromName(client, ":no_entry:"));
            var warn = WarnSQL.Create(id, member.Id, moderator.Id, reason, date, message.Id);

            try
            {
                await member.SendMessageAsync("Вы получили предупреждение от модератора " +
                                              $"**{moderator.Username}#{moderator.Discriminator}**. Причина: {reason}. " +
                                              $"ID предупреждения: `{id}`");
            }
            catch (UnauthorizedException)
            {
                //user can block the bot
            }
        }
示例#2
0
        public async Task Warn(CommandContext ctx, DiscordUser user, [RemainingText] string reason = "Не указана")
        {
            if (!Bot.IsModerator(ctx.Member))
            {
                await ctx.RespondAsync($"{Bot.BotSettings.ErrorEmoji} У вас нет доступа к этой команде!");

                return;
            }

            var id = RandomString.NextString(6);

            var warnsCount = WarnSQL.GetForUser(user.Id).Count + 1;

            var message = await ctx.Guild.GetChannel(Bot.BotSettings.ModlogChannel).SendMessageAsync
                              ("**Предупреждение**\n\n" +
                              $"**От:** {ctx.User}\n" +
                              $"**Кому:** {user.Username}#{user.Discriminator}\n" +
                              $"**Дата:** {DateTime.Now}\n" +
                              $"**ID предупреждения:** {id}\n" +
                              $"**Количество предупреждений:** {warnsCount}\n" +
                              $"**Причина:** {reason}");

            WarnSQL.Create(id, user.Id, ctx.Member.Id, reason, DateTime.Now, message.Id);

            await ctx.RespondAsync($"{Bot.BotSettings.OkEmoji} Успешно выдано предупреждение {user.Username}#{user.Discriminator}! Количество предупреждений: **{warnsCount}**");
        }