private async Task OnGuildRoleUpdated(GuildRoleUpdateEventArgs e) { if (GuildRoleUpdated != null) { await GuildRoleUpdated(e); } }
private async Task GuildRoleUpdated(DiscordClient sender, GuildRoleUpdateEventArgs e) { var roleUpdEntry = await GetNewEntryAsync() as DiscordAuditLogRoleUpdateEntry; if (roleUpdEntry == null) { return; } _entryBuilder = EmbedBuilderExtensions.CreateForAudit(roleUpdEntry, "Обновление роли", $"Обновлена роль {roleUpdEntry.Target.Name}"); _entryBuilder.AddNamePropertyChange(roleUpdEntry.NameChange); _entryBuilder.AddPropertyChange("Возможность упоминания", roleUpdEntry.MentionableChange); _entryBuilder.AddPropertyChange("Уникальность", roleUpdEntry.HoistChange); _entryBuilder.AddPropertyChange("Позиция", roleUpdEntry.PositionChange); if (roleUpdEntry.ColorChange != null) { _entryBuilder.AddField("Измёнён цвет", roleUpdEntry.Target.Mention, true); } if (roleUpdEntry.PermissionChange != null) { _entryBuilder.AddField("Обновление привилегий", roleUpdEntry.PermissionChange.ToRusString()); } await SendMessageToAuditAsync(embed : _entryBuilder); }
internal static Task RoleUpdated(DiscordClient _1, GuildRoleUpdateEventArgs e) { _ = Task.Run(async() => { if (e.Guild.Id != 699555747591094344) { return; } if (e.RoleBefore.Name == e.RoleAfter.Name && e.RoleBefore.IsHoisted == e.RoleAfter.IsHoisted && e.RoleBefore.Color.Value == e.RoleAfter.Color.Value && e.RoleBefore.Permissions == e.RoleAfter.Permissions && e.RoleBefore.IsMentionable == e.RoleAfter.IsMentionable) { return; } DiscordEmbedBuilder embed = new DiscordEmbedBuilder() .WithTimestamp(DateTime.Now) .WithDescription($":information_source: The role {e.RoleAfter.Mention} ({e.RoleAfter.Id}) was just updated") .AddField("Name", e.RoleBefore.Name == e.RoleAfter.Name ? "No change" : $"{e.RoleBefore.Name} -> {e.RoleAfter.Name}", true) .AddField("Hoist", e.RoleBefore.IsHoisted == e.RoleAfter.IsHoisted ? "No change" : $"{e.RoleBefore.IsHoisted} -> {e.RoleAfter.IsHoisted}", true) .AddField("Color", e.RoleBefore.Color.Value == e.RoleAfter.Color.Value ? "No change" : $"{e.RoleBefore.Color} -> {e.RoleAfter.Color}", true) .AddField("Permissions", e.RoleBefore.Permissions == e.RoleAfter.Permissions ? "No change" : $"{(int)e.RoleBefore.Permissions} -> {(int)e.RoleAfter.Permissions}", true) .AddField("Mentionable", e.RoleBefore.IsMentionable == e.RoleAfter.IsMentionable ? "No change" : $"{e.RoleBefore.IsMentionable} -> {e.RoleAfter.IsMentionable}", true) .WithColor(DiscordColor.Blurple); await DiscordObjectService.Instance.LogsChannel.SendMessageAsync(new DiscordMessageBuilder().WithEmbed(embed).WithAllowedMentions(Mentions.None)); }); return(Task.CompletedTask); }
private async Task GuildRoleUpdated(DiscordClient c, GuildRoleUpdateEventArgs e) { Task.Run(async() => { await logService.GuildLogger(c, e.Guild, e, LogType.Guild).ConfigureAwait(true); this.logger.Information($"Role '{e.RoleAfter.Name}' ({e.RoleAfter.Id}) has been updated on guild '{e.Guild.Name}' ({e.Guild.Id})."); }); }
private Task GuildRoleUpdated(GuildRoleUpdateEventArgs e) { /* This would kill my bot */ return(Task.CompletedTask); }
private Task Client_GuildRoleUpdated(GuildRoleUpdateEventArgs e) { e.Client.DebugLogger.LogMessage(LogLevel.Info, "BotApp", e.ToString(), DateTime.Now); return(Task.CompletedTask); }
public static async Task GuildRoleUpdateEventHandlerAsync(TheGodfatherShard shard, GuildRoleUpdateEventArgs e) { if (e.RoleBefore.Position != e.RoleAfter.Position) { return; } DiscordChannel logchn = shard.SharedData.GetLogChannelForGuild(shard.Client, e.Guild); if (logchn == null) { return; } DiscordEmbedBuilder emb = FormEmbedBuilder(EventOrigin.Role, "Role updated"); var entry = await e.Guild.GetFirstAuditLogEntryAsync(AuditLogActionType.RoleUpdate); if (entry != null && entry is DiscordAuditLogRoleUpdateEntry rentry) { emb.WithDescription(rentry.Target.Id.ToString()); emb.AddField("User responsible", rentry.UserResponsible.Mention, inline: true); if (rentry.NameChange != null) { emb.AddField("Name change", $"{rentry.NameChange.Before ?? _unknown} -> {rentry.NameChange.After ?? _unknown}", inline: true); } if (rentry.ColorChange != null) { emb.AddField("Color changed", $"{rentry.ColorChange.Before?.ToString() ?? _unknown} -> {rentry.ColorChange.After?.ToString() ?? _unknown}", inline: true); } if (rentry.HoistChange != null) { emb.AddField("Hoist", rentry.HoistChange.After?.ToString() ?? _unknown, inline: true); } if (rentry.MentionableChange != null) { emb.AddField("Mentionable", rentry.MentionableChange.After?.ToString() ?? _unknown, inline: true); } if (rentry.PermissionChange != null) { emb.AddField("Permissions changed to", rentry.PermissionChange.After?.ToPermissionString() ?? _unknown, inline: true); } if (rentry.PositionChange != null) { emb.AddField("Position changed to", rentry.PositionChange.After?.ToString() ?? _unknown, inline: true); } if (!string.IsNullOrWhiteSpace(rentry.Reason)) { emb.AddField("Reason", rentry.Reason); } emb.WithFooter(rentry.CreationTimestamp.ToUtcTimestamp(), rentry.UserResponsible.AvatarUrl); } else { emb.AddField("Error", "Failed to read audit log information. Please check my permissions"); emb.AddField("Role", e.RoleBefore?.ToString() ?? _unknown); } await logchn.SendMessageAsync(embed : emb.Build()); }
private async Task OnDiscordRoleUpdated(GuildRoleUpdateEventArgs e) { Console.WriteLine($"[Discord] Role update signal received! (guild: {e.Guild.Id})", Color.DodgerBlue); await PerformSnapshot(e.Guild); }
private Task Event_GuildRoleUpdated(DiscordClient d, GuildRoleUpdateEventArgs e) { d.Logger.LogDebug(BotEventId, "Event_GuildRoleUpdated."); return(Task.CompletedTask); }
private static async Task GuildRoleUpdate(BaseDiscordClient client, Embed embed, GuildRoleUpdateEventArgs guildRoleUpdateEventArgs) { var before = guildRoleUpdateEventArgs.RoleBefore; var after = guildRoleUpdateEventArgs.RoleAfter; var nameChanged = before.Name != after.Name; var isHoistedChanged = before.IsHoisted != after.IsHoisted; var isManagedChanged = before.IsManaged != after.IsManaged; var isMentionableChanged = before.IsMentionable != after.IsMentionable; var permissionsChanged = before.Permissions != after.Permissions; var permissions = permissionsChanged ? await before.Permissions.GetChangedRolesDifference(after.Permissions).ConfigureAwait(true) : string.Empty; var roleChanged = nameChanged || isHoistedChanged || isManagedChanged || isMentionableChanged || permissionsChanged; if (roleChanged) { embed.Title = $"{DiscordEmoji.FromGuildEmote(client, EmojiLibrary.Update)} Role updated"; var description = new StringBuilder().AppendLine(before.Name == after.Name ? $"Name: {Formatter.InlineCode(after.Name)} {after.Mention}" : $"Name: {Formatter.InlineCode(before.Name)} to {Formatter.InlineCode(after.Name)} {after.Mention}") .AppendLine($"Identity: {Formatter.InlineCode(after.Id.ToString())}"); if (isMentionableChanged) { description.AppendLine($"Mentionable: {Formatter.InlineCode(before.IsMentionable.ToString())} to {Formatter.InlineCode(after.IsMentionable.ToString())}"); } if (permissionsChanged) { embed.Fields = new List <EmbedField> { new EmbedField() { Inline = false, Name = "Changed Permissions", Value = permissions } }; } embed.Description = description.ToString(); embed.Color = DiscordColor.CornflowerBlue; } else { passInformation = false; } }