Beispiel #1
0
        private async Task MessageUpdated(DiscordClient sender, MessageUpdateEventArgs e)
        {
            if (e.Author == null || e.Author.IsBot)
            {
                return;
            }
            _entryBuilder = new DiscordEmbedBuilder
            {
                Author = new DiscordEmbedBuilder.EmbedAuthor {
                    Name = e.Author.Username, IconUrl = e.Author.AvatarUrl
                },
                Title = $"Сообщение отредактировано в канале {e.Message.Channel.Name}"
            };

            if (e.MessageBefore != null && e.MessageBefore.Content.Equals(e.Message.Content, StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            string oldContent = e.MessageBefore != null && e.MessageBefore.Content.IsRelevant() ?
                                e.MessageBefore.Content :
                                "Информация о старом содержании некэширована";

            _entryBuilder.AddBeforeAfter("Содержание", oldContent, e.Message.Content);
            _entryBuilder.AddField("Прямая ссылка", e.Message.JumpLink.AbsoluteUri);
            await SendMessageToAuditAsync(embed : _entryBuilder);
        }
 public static void AddChannelPropertyChange(this DiscordEmbedBuilder builder, string cName, PropertyChange <DiscordChannel> change)
 {
     if (change != null)
     {
         var before = change.Before.Name.IsRelevant() ? change.Before.Name : "Отсутствует";
         var after  = change.After.Name.IsRelevant() ? change.After.Name : "Отсутствует";
         builder.AddBeforeAfter(cName + "Канал", before, after);
     }
 }
 public static void AddNamePropertyChange(this DiscordEmbedBuilder builder, PropertyChange <string> nChange)
 {
     if (nChange != null)
     {
         var before = nChange.Before.IsRelevant() ? nChange.Before : "Стандартное имя";
         var after  = nChange.After.IsRelevant() ? nChange.After : "Стандартное имя";
         builder.AddBeforeAfter("Имя", before, after);
     }
 }
        public static void AddPropertyChange <T>(this DiscordEmbedBuilder builder, string name, PropertyChange <T> change)
        {
            if (change != null)
            {
                var before = change.Before != null?change.Before.ToString() : "";

                var after = change.After != null?change.After.ToString() : "";

                builder.AddBeforeAfter(name, before, after);
            }
        }
Beispiel #5
0
        private async Task UserUpdated(DiscordClient sender, UserUpdateEventArgs e)
        {
            var member = await DefaultGuild.GetMemberAsync(e.UserAfter.Id);

            if (member == null)
            {
                return;
            }
            _entryBuilder = new DiscordEmbedBuilder();
            _entryBuilder.SetAuthor(e.UserAfter);
            _entryBuilder.SetTitle("Обновление параметров пользователя");

            if (e.UserBefore.Username != e.UserAfter.Username)
            {
                if (HasBlacklistedWord(e.UserAfter.Username))
                {
                    await _auditChannel.SendMessageAsync("Пользователь в теории забанен" + member.Mention);

                    //await member.BanAsync(reason: "Запрещённое слово в никнейме");
                    return;
                }
                _entryBuilder.AddBeforeAfter("Имя", e.UserBefore.Username, e.UserAfter.Username);
            }
            if (e.UserBefore.Discriminator != e.UserAfter.Discriminator)
            {
                _entryBuilder.AddBeforeAfter("Дискриминатор", e.UserBefore.Discriminator, e.UserAfter.Discriminator);
            }
            if (e.UserBefore.AvatarUrl != null && e.UserBefore.AvatarUrl != e.UserAfter.AvatarUrl)
            {
                _entryBuilder.SetTitle("Пользователь обновил аватар");
                try
                {
                    _entryBuilder.WithImageUrl(e.UserAfter.AvatarUrl);
                }
                catch
                {
                    _entryBuilder.SetDescription("Не удалось установить ссылку на изображение");
                }
            }
            await SendMessageToAuditAsync(embed : _entryBuilder);
        }