private void Client_UserUpdated(object sender, UserUpdatedEventArgs e) { if (e.After.Name != e.Before.Name) { SendMessageAfterDelay(Options.DiscordOptions.SteamChat, string.Format("{0} has changed their name in Discord to {1}", e.Before.Name, e.After.Name), true); } }
private async void UsrUpdtd(object sender, UserUpdatedEventArgs e) { try { Channel ch; if (loggingPresences.TryGetValue(e.Server, out ch)) { if (e.Before.Status != e.After.Status) { await ch.SendMessage($"**{e.Before.Name}** is now **{e.After.Status}**."); } } } catch { } try { if (e.Before.VoiceChannel != null && voiceChannelLog.ContainsKey(e.Before.VoiceChannel)) { if (e.After.VoiceChannel != e.Before.VoiceChannel) { await voiceChannelLog[e.Before.VoiceChannel].SendMessage($"🎼`{e.Before.Name} has left the` {e.Before.VoiceChannel.Mention} `voice channel.`"); } } if (e.After.VoiceChannel != null && voiceChannelLog.ContainsKey(e.After.VoiceChannel)) { if (e.After.VoiceChannel != e.Before.VoiceChannel) { await voiceChannelLog[e.After.VoiceChannel].SendMessage($"🎼`{e.After.Name} has joined the`{e.After.VoiceChannel.Mention} `voice channel.`"); } } } catch { } try { Channel ch; if (!logs.TryGetValue(e.Server, out ch)) { return; } string str = $"`Type:` **User updated** `Time:` **{DateTime.Now}** `User:` **{e.Before.Name}**\n"; if (e.Before.Name != e.After.Name) { str += $"`New name:` **{e.After.Name}**"; } else if (e.Before.AvatarUrl != e.After.AvatarUrl) { str += $"`New Avatar:` {e.After.AvatarUrl}"; } else { return; } await ch.SendMessage(str); } catch { } }
private async void DiscordClient_UserUpdated(object sender, UserUpdatedEventArgs e) { try { await RefreshControls(); } catch (Exception exception) { App.LogUnhandledError(exception); } }
public void UserLeft(object sender, UserUpdatedEventArgs args) { if (CheckEvent(args.Server)) { return; } long userId = (long)args.Before.Id; if ((args.After.Status == UserStatus.Online) && !startedSessions.ContainsKey(userId)) { startedSessions.Add(userId, DateTime.Now); } }
private async void UsrUpdtd(object sender, UserUpdatedEventArgs e) { try { Channel ch; if (loggingPresences.TryGetValue(e.Server, out ch)) { if (e.Before.Status != e.After.Status) { var msg = await ch.SendMessage($"**{e.Before.Name}** is now **{e.After.Status}**."); Task.Run(async() => { try { Task.Delay(4000); msg.Delete(); } catch { } }); } } } catch { } try { Channel ch; if (!logs.TryGetValue(e.Server, out ch)) { return; } string str = $"`Type:` **User updated** `Time:` **{DateTime.Now}** `User:` **{e.Before.Name}**\n"; if (e.Before.Name != e.After.Name) { str += $"`New name:` **{e.After.Name}**"; } else if (e.Before.AvatarUrl != e.After.AvatarUrl) { str += $"`New Avatar:` {e.After.AvatarUrl}"; } else if (e.Before.Status != e.After.Status) { str += $"Status `{e.Before.Status}` -> `{e.After.Status}`"; } else { return; } await ch.SendMessage(str); } catch { } }
public void UserJoinVoiceChannael(object sender, UserUpdatedEventArgs args) { if (CheckEvent(args.Server)) { return; } if (!args.After.IsBot && args.After.VoiceChannel != null && args.Before.VoiceChannel != args.After.VoiceChannel) { VoiceChannelLogService.Instance.Repository.Add(new VoiceChannelLog { Time = DateTime.Now, UserId = (long)args.After.Id, VoiceChannelId = (long)args.After.VoiceChannel.Id }); } }
private async void DiscordClient_UserUpdated(object sender, UserUpdatedEventArgs e) { try { //This event triggers when a user goes in and out of game and when their status changes. await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { RefreshControls(); }); } catch (Exception exception) { App.LogUnhandledError(exception); } }
public void UserJoin(object sender, UserUpdatedEventArgs args) { if (CheckEvent(args.Server)) { return; } long userId = (long)args.Before.Id; if ((args.After.Status == UserStatus.Offline) && startedSessions.ContainsKey(userId)) { SessionService.Instance.Repository.Add(new Session { StartTime = startedSessions[userId], EndTime = DateTime.Now, UserId = userId }); startedSessions.Remove(userId); } }
private static async void OnUserUpdated(object sender, UserUpdatedEventArgs e) { DateTime time = DateTime.Now; var logChannel = e.Server.GetChannel(254990946536652801); if (e.After.VoiceChannel == null) { return; } if (e.Before.VoiceChannel == e.After.VoiceChannel) { return; } await logChannel.SendMessage($"{time.ToString("h:mm:ss tt")} User {e.After.Name} has joined {e.After.VoiceChannel} channels."); Console.WriteLine($"User {e.After.Name} was moved to another channel.\n--"); }
private void UserUpHello(object sender, UserUpdatedEventArgs e) { if (e.Before.IsBot) { return; } if (OnlineSayHi && CoolDown?.Name != e.After.Name && e.Before.Status == UserStatus.Offline && e.After.Status == UserStatus.Online) { CoolDown = e.After; if (DateTime.Now.Hour < 12) { e.After.SendMessage("Good morning " + e.After.Mention + ":wave: hope you are having a great day"); } else { e.After.SendMessage("Good afternoon " + e.After.Mention + ":wave: hope you are having a great day"); } } }
public void UserJoinApp(object sender, UserUpdatedEventArgs args) { if (CheckEvent(args.Server)) { return; } if (!args.After.IsBot && args.Before.CurrentGame == null && args.After.CurrentGame != null) { if (!ApplicationLogService.Instance.Repository .Get(app => app.ApplicationName == args.After.CurrentGame.Value.Name && ((DateTime.Now - app.Time).TotalSeconds < 10)).Any()) { ApplicationLogService.Instance.Repository.Add(new ApplicationLog { Time = DateTime.Now, UserId = (long)args.After.Id, ApplicationName = args.After.CurrentGame.Value.Name }); } } }
public async Task ReceiveUserUpdates() { var port = NextPort; using (var server = new Server(new TcpListener(new IPEndPoint(IPAddress.Loopback, port), new TestHandshaker()), new XmlSerializer())) { server.Attach(new ServerSubscriptionModule(server, new TestChatDataProvider(server.ConnectionProvider))); server.Initialize(); using (var clientA = CreateClient("clientA")) using (var clientB = CreateClient("clientB")) { clientA.InitializeSubscriptionModule(); clientB.InitializeSubscriptionModule(); using (var eveUpdateReceived = new AutoResetEvent(false)) { UserUpdatedEventArgs updatedUserArgs = null; clientA.Subscription().UserUpdated += (sender, args) => { updatedUserArgs = args; eveUpdateReceived.Set(); }; await clientA.Connect("localhost:" + port); var result = await clientA.Subscription().RPC.AddUserSubscription("clientB", null); Assert.NotNull(result); if (!eveUpdateReceived.WaitOne(MaxTimeout)) { Assert.Fail("clientA never got an update :("); } Assert.NotNull(updatedUserArgs); Assert.AreEqual(nameof(clientB), updatedUserArgs.User.Id); Assert.AreEqual(TestChatDataProvider.UserOfflineStatus, updatedUserArgs.UserStatus); updatedUserArgs = null; await clientB.Connect("localhost:" + port); if (!eveUpdateReceived.WaitOne(MaxTimeout)) { Assert.Fail("clientA never got an update :("); } Assert.NotNull(updatedUserArgs); Assert.AreEqual(nameof(clientB), updatedUserArgs.User.Id); Assert.AreEqual(TestChatDataProvider.UserOnlineStatus, updatedUserArgs.UserStatus); clientB.Connection.Close(); if (!eveUpdateReceived.WaitOne(MaxTimeout)) { Assert.Fail("clientA never got an update :("); } Assert.NotNull(updatedUserArgs); Assert.AreEqual(nameof(clientB), updatedUserArgs.User.Id); Assert.AreEqual(TestChatDataProvider.UserOfflineStatus, updatedUserArgs.UserStatus); } } } }
void _apiWebSocket_UserUpdated(object sender, UserUpdatedEventArgs e) { }
private void OnUserChanged([NotNull] UserUpdatedEventArgs e) { var handler = UserUpdated; handler?.Invoke(this, e); }
public static void UserUpdated(UserUpdatedEventArgs e) => SystemEvents.InvokeEvent(null, OnUserUpdated, e, nameof(OnUserUpdated));
public void UserUpdatedHandler([NotNull] object sender, [NotNull] UserUpdatedEventArgs e) { UpdateUserInfo((UserInfo)e.User); }
private async void UsrUpdtd(object sender, UserUpdatedEventArgs e) { var config = SpecificConfigurations.Default.Of(e.Server.Id); try { var chId = config.LogPresenceChannel; if (chId != null) { Channel ch; if ((ch = e.Server.TextChannels.Where(tc => tc.Id == chId).FirstOrDefault()) != null) { if (e.Before.Status != e.After.Status) { voicePresenceUpdates.Add(new KeyValuePair <Channel, string>(ch, $"`{prettyCurrentTime}`**{e.Before.Name}** is now **{e.After.Status}**.")); } } } } catch { } try { ulong notifyChBeforeId; ulong notifyChAfterId; Channel notifyChBefore = null; Channel notifyChAfter = null; var beforeVch = e.Before.VoiceChannel; var afterVch = e.After.VoiceChannel; var notifyLeave = false; var notifyJoin = false; if ((beforeVch != null || afterVch != null) && (beforeVch != afterVch)) // this means we need to notify for sure. { if (beforeVch != null && config.VoiceChannelLog.TryGetValue(beforeVch.Id, out notifyChBeforeId) && (notifyChBefore = e.Before.Server.TextChannels.FirstOrDefault(tc => tc.Id == notifyChBeforeId)) != null) { notifyLeave = true; } if (afterVch != null && config.VoiceChannelLog.TryGetValue(afterVch.Id, out notifyChAfterId) && (notifyChAfter = e.After.Server.TextChannels.FirstOrDefault(tc => tc.Id == notifyChAfterId)) != null) { notifyJoin = true; } if ((notifyLeave && notifyJoin) && (notifyChAfter == notifyChBefore)) { await notifyChAfter.SendMessage($"🎼`{prettyCurrentTime}` {e.Before.Name} moved from **{beforeVch.Mention}** to **{afterVch.Mention}** voice channel.").ConfigureAwait(false); } else if (notifyJoin) { await notifyChAfter.SendMessage($"🎼`{prettyCurrentTime}` {e.Before.Name} has joined **{afterVch.Mention}** voice channel.").ConfigureAwait(false); } else if (notifyLeave) { await notifyChBefore.SendMessage($"🎼`{prettyCurrentTime}` {e.Before.Name} has left **{beforeVch.Mention}** voice channel.").ConfigureAwait(false); } } } catch { } try { var chId = SpecificConfigurations.Default.Of(e.Server.Id).LogServerChannel; if (chId == null) { return; } Channel ch; if ((ch = e.Server.TextChannels.Where(tc => tc.Id == chId).FirstOrDefault()) == null) { return; } string str = $"🕔`{prettyCurrentTime}`"; if (e.Before.Name != e.After.Name) { str += $"**Name Changed**👤`{e.Before?.ToString()}`\n\t\t`New:`{e.After.ToString()}`"; } else if (e.Before.Nickname != e.After.Nickname) { str += $"**Nickname Changed**👤`{e.Before?.ToString()}`\n\t\t`Old:` {e.Before.Nickname}#{e.Before.Discriminator}\n\t\t`New:` {e.After.Nickname}#{e.After.Discriminator}"; } else if (e.Before.AvatarUrl != e.After.AvatarUrl) { str += $"**Avatar Changed**👤`{e.Before?.ToString()}`\n\t {await e.Before.AvatarUrl.ShortenUrl()} `=>` {await e.After.AvatarUrl.ShortenUrl()}"; } else if (!e.Before.Roles.SequenceEqual(e.After.Roles)) { if (e.Before.Roles.Count() < e.After.Roles.Count()) { var diffRoles = e.After.Roles.Where(r => !e.Before.Roles.Contains(r)).Select(r => "`" + r.Name + "`"); str += $"**User's Roles changed ⚔➕**👤`{e.Before?.ToString()}`\n\tNow has {string.Join(", ", diffRoles)} role."; } else if (e.Before.Roles.Count() > e.After.Roles.Count()) { var diffRoles = e.Before.Roles.Where(r => !e.After.Roles.Contains(r)).Select(r => "`" + r.Name + "`"); str += $"**User's Roles changed ⚔➖**👤`{e.Before?.ToString()}`\n\tNo longer has {string.Join(", ", diffRoles)} role."; } else { Console.WriteLine("SEQUENCE NOT EQUAL BUT NO DIFF ROLES - REPORT TO KWOTH on #NADEKOLOG server"); return; } } else { return; } await ch.SendMessage(str).ConfigureAwait(false); } catch { } }