/* * private async Task OnChannelUpdated(SocketChannel channelBefore, SocketChannel channelAfter) * { * var guildId = await _servers.GetEventLogChannel(((SocketGuildChannel)channelBefore).Guild.Id); * if (!(_client.GetChannel(guildId) is IMessageChannel logChannel)) return; * if (((SocketGuildChannel)channelBefore).Name * != ((SocketGuildChannel)channelAfter).Name) * await EventReplyUtils.ChannelNameUpdatedEmbed(channelBefore, channelAfter, logChannel); * if (!Equals(((SocketGuildChannel)channelBefore).PermissionOverwrites, * ((SocketGuildChannel)channelAfter).PermissionOverwrites)) * await EventReplyUtils.ChannelPermUpdatedEmbed(channelBefore, channelAfter, logChannel); * } */ private async Task OnChannelUpdated(SocketChannel channelBefore, SocketChannel channelAfter) { var guildId = await _servers.GetEventLogChannel(((SocketGuildChannel)channelBefore).Guild.Id); if (!(_client.GetChannel(guildId) is ISocketMessageChannel logChannel)) { return; } // First, we want both SocketChannels to be converted to SocketGuildChannels var after = channelAfter as SocketGuildChannel; if (!(channelBefore is SocketGuildChannel before)) { return; } var differences = after?.PermissionOverwrites.Except(before .PermissionOverwrites); // Go through the PermissionOverwrites to extract only the differences if (differences != null) { foreach (var difference in differences) // Loop over every difference { Console.WriteLine($"\n{difference.Permissions} test\n"); Console.WriteLine( $"{difference.TargetType}: {difference.TargetId}"); // Let's you know what the TargetType is (a User or role) followed by their ID Console.WriteLine("Allowed: " + string.Join(" ", difference.Permissions .ToAllowList())); // Get all the permissions that were changed to allow Console.WriteLine("Denied: " + string.Join(" ", difference.Permissions .ToDenyList())); // Get all the permissions that were changed to denied } } if (((SocketGuildChannel)channelBefore).Name != ((SocketGuildChannel)channelAfter).Name) { await EventExtension.ChannelNameUpdatedEmbed(channelBefore, channelAfter, logChannel); } }