private Task _client_UserUpdated(SocketUser before, SocketUser uAfter) { var _ = Task.Run(async() => { try { var after = uAfter as SocketGuildUser; if (after == null) { return; } var g = after.Guild; if (!GuildLogSettings.TryGetValue(g.Id, out LogSetting logSetting) || (logSetting.UserUpdatedId == null)) { return; } ITextChannel logChannel; if ((logChannel = await TryGetLogChannel(g, logSetting, LogType.UserUpdated)) == null) { return; } var embed = new EmbedBuilder(); if (before.Username != after.Username) { embed.WithTitle("👥 " + GetText(g, "username_changed")) .WithDescription($"{before.Username}#{before.Discriminator} | {before.Id}") .AddField(fb => fb.WithName("Old Name").WithValue($"{before.Username}").WithIsInline(true)) .AddField(fb => fb.WithName("New Name").WithValue($"{after.Username}").WithIsInline(true)) .WithFooter(fb => fb.WithText(CurrentTime(g))) .WithOkColor(); } else if (before.AvatarId != after.AvatarId) { embed.WithTitle("👥" + GetText(g, "avatar_changed")) .WithDescription($"{before.Username}#{before.Discriminator} | {before.Id}") .WithFooter(fb => fb.WithText(CurrentTime(g))) .WithOkColor(); if (Uri.IsWellFormedUriString(before.RealAvatarUrl(), UriKind.Absolute)) { embed.WithThumbnailUrl(before.RealAvatarUrl()); } if (Uri.IsWellFormedUriString(after.RealAvatarUrl(), UriKind.Absolute)) { embed.WithImageUrl(after.RealAvatarUrl()); } } else { return; } await logChannel.EmbedAsync(embed).ConfigureAwait(false); //var guildsMemberOf = _client.GetGuilds().Where(g => g.Users.Select(u => u.Id).Contains(before.Id)).ToList(); //foreach (var g in guildsMemberOf) //{ // LogSetting logSetting; // if (!GuildLogSettings.TryGetValue(g.Id, out logSetting) // || (logSetting.UserUpdatedId == null)) // return; // ITextChannel logChannel; // if ((logChannel = await TryGetLogChannel(g, logSetting, LogType.UserUpdated)) == null) // return; // try { await logChannel.SendMessageAsync(str).ConfigureAwait(false); } catch { } //} } catch { // ignored } }); return(Task.CompletedTask); }