From 8583a371cfdf0bd71cce3184422ada9627a7f4f1 Mon Sep 17 00:00:00 2001 From: David Valachovic Date: Tue, 5 Jul 2016 15:25:18 -0500 Subject: [PATCH] Created events for when a user joins or leaves a voice channel --- src/Discord.Net/DiscordClient.Events.cs | 10 ++++++++++ src/Discord.Net/DiscordClient.cs | 14 ++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/Discord.Net/DiscordClient.Events.cs b/src/Discord.Net/DiscordClient.Events.cs index 7ffb861f1..0ccc6a887 100644 --- a/src/Discord.Net/DiscordClient.Events.cs +++ b/src/Discord.Net/DiscordClient.Events.cs @@ -27,7 +27,13 @@ namespace Discord public event EventHandler UserBanned = delegate { }; public event EventHandler UserIsTyping = delegate { }; public event EventHandler UserJoined = delegate { }; + /// When a user joins a voice channel. + /// Discord API Event name: VOICE_STATE_UPDATE. + public event EventHandler UserJoinedVoiceChannel = delegate { }; public event EventHandler UserLeft = delegate { }; + /// When a user leaves a voice channel. + /// Discord API Event name: VOICE_STATE_UPDATE. + public event EventHandler UserLeftVoiceChannel = delegate { }; public event EventHandler UserUpdated = delegate { }; public event EventHandler UserUnbanned = delegate { }; @@ -81,8 +87,12 @@ namespace Discord => OnEvent(UserIsTyping, new ChannelUserEventArgs(channel, user)); private void OnUserJoined(User user) => OnEvent(UserJoined, new UserEventArgs(user)); + private void OnUserJoinedVoiceChannel(Channel channel, User user) + => OnEvent(UserJoinedVoiceChannel, new ChannelUserEventArgs(channel, user)); private void OnUserLeft(User user) => OnEvent(UserLeft, new UserEventArgs(user)); + private void OnUserLeftVoiceChannel(Channel channel, User user) + => OnEvent(UserLeftVoiceChannel, new ChannelUserEventArgs(channel, user)); private void OnUserUnbanned(User user) => OnEvent(UserUnbanned, new UserEventArgs(user)); private void OnUserUpdated(User before, User after) diff --git a/src/Discord.Net/DiscordClient.cs b/src/Discord.Net/DiscordClient.cs index 0629f82e1..8bdb9f5ce 100644 --- a/src/Discord.Net/DiscordClient.cs +++ b/src/Discord.Net/DiscordClient.cs @@ -981,6 +981,20 @@ namespace Discord user.Update(data); //Logger.Verbose($"Voice Updated: {server.Name}/{user.Name}"); OnUserUpdated(before, user); + + if (before.VoiceChannel != user.VoiceChannel) + { + if (before.VoiceChannel != null) + { + Logger.Verbose($"USER_LEFT_VOICE_CHANNEL: {user.Path} left voice channel {before.VoiceChannel.Path}"); + OnUserLeftVoiceChannel(before.VoiceChannel, user); + } + if (user.VoiceChannel != null) + { + Logger.Verbose($"USER_JOINED_VOICE_CHANNEL: {user.Path} joined voice channel {user.VoiceChannel.Path}"); + OnUserJoinedVoiceChannel(user.VoiceChannel, user); + } + } } /*else //Occurs when a user leaves a server Logger.Warning("VOICE_STATE_UPDATE referenced an unknown user.");*/