Browse Source

Created events for when a user joins or leaves a voice channel

pull/106/head
David Valachovic 9 years ago
parent
commit
8583a371cf
2 changed files with 24 additions and 0 deletions
  1. +10
    -0
      src/Discord.Net/DiscordClient.Events.cs
  2. +14
    -0
      src/Discord.Net/DiscordClient.cs

+ 10
- 0
src/Discord.Net/DiscordClient.Events.cs View File

@@ -27,7 +27,13 @@ namespace Discord
public event EventHandler<UserEventArgs> UserBanned = delegate { }; public event EventHandler<UserEventArgs> UserBanned = delegate { };
public event EventHandler<ChannelUserEventArgs> UserIsTyping = delegate { }; public event EventHandler<ChannelUserEventArgs> UserIsTyping = delegate { };
public event EventHandler<UserEventArgs> UserJoined = delegate { }; public event EventHandler<UserEventArgs> UserJoined = delegate { };
/// <summary>When a user joins a voice channel.
/// Discord API Event name: VOICE_STATE_UPDATE.</summary>
public event EventHandler<ChannelUserEventArgs> UserJoinedVoiceChannel = delegate { };
public event EventHandler<UserEventArgs> UserLeft = delegate { }; public event EventHandler<UserEventArgs> UserLeft = delegate { };
/// <summary>When a user leaves a voice channel.
/// Discord API Event name: VOICE_STATE_UPDATE.</summary>
public event EventHandler<ChannelUserEventArgs> UserLeftVoiceChannel = delegate { };
public event EventHandler<UserUpdatedEventArgs> UserUpdated = delegate { }; public event EventHandler<UserUpdatedEventArgs> UserUpdated = delegate { };
public event EventHandler<UserEventArgs> UserUnbanned = delegate { }; public event EventHandler<UserEventArgs> UserUnbanned = delegate { };


@@ -81,8 +87,12 @@ namespace Discord
=> OnEvent(UserIsTyping, new ChannelUserEventArgs(channel, user)); => OnEvent(UserIsTyping, new ChannelUserEventArgs(channel, user));
private void OnUserJoined(User user) private void OnUserJoined(User user)
=> OnEvent(UserJoined, new UserEventArgs(user)); => OnEvent(UserJoined, new UserEventArgs(user));
private void OnUserJoinedVoiceChannel(Channel channel, User user)
=> OnEvent(UserJoinedVoiceChannel, new ChannelUserEventArgs(channel, user));
private void OnUserLeft(User user) private void OnUserLeft(User user)
=> OnEvent(UserLeft, new UserEventArgs(user)); => OnEvent(UserLeft, new UserEventArgs(user));
private void OnUserLeftVoiceChannel(Channel channel, User user)
=> OnEvent(UserLeftVoiceChannel, new ChannelUserEventArgs(channel, user));
private void OnUserUnbanned(User user) private void OnUserUnbanned(User user)
=> OnEvent(UserUnbanned, new UserEventArgs(user)); => OnEvent(UserUnbanned, new UserEventArgs(user));
private void OnUserUpdated(User before, User after) private void OnUserUpdated(User before, User after)


+ 14
- 0
src/Discord.Net/DiscordClient.cs View File

@@ -981,6 +981,20 @@ namespace Discord
user.Update(data); user.Update(data);
//Logger.Verbose($"Voice Updated: {server.Name}/{user.Name}"); //Logger.Verbose($"Voice Updated: {server.Name}/{user.Name}");
OnUserUpdated(before, user); 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 /*else //Occurs when a user leaves a server
Logger.Warning("VOICE_STATE_UPDATE referenced an unknown user.");*/ Logger.Warning("VOICE_STATE_UPDATE referenced an unknown user.");*/


Loading…
Cancel
Save