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); } }
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); }