From f1bc568f4599167915d6c361c5818531b0a3cf4c Mon Sep 17 00:00:00 2001 From: Nitix Date: Fri, 26 Aug 2016 00:04:11 +0200 Subject: [PATCH] Fix Voice Channel being null #174 --- .../WebSocket/Entities/Users/SocketGuildUser.cs | 78 ++++++++++++++++++++-- 1 file changed, 71 insertions(+), 7 deletions(-) diff --git a/src/Discord.Net/WebSocket/Entities/Users/SocketGuildUser.cs b/src/Discord.Net/WebSocket/Entities/Users/SocketGuildUser.cs index 5c957dada..0fa178423 100644 --- a/src/Discord.Net/WebSocket/Entities/Users/SocketGuildUser.cs +++ b/src/Discord.Net/WebSocket/Entities/Users/SocketGuildUser.cs @@ -1,10 +1,11 @@ -using Discord.Rest; +using System; +using Discord.Rest; using Model = Discord.API.GuildMember; using PresenceModel = Discord.API.Presence; namespace Discord.WebSocket { - internal class SocketGuildUser : GuildUser, ISocketUser + internal class SocketGuildUser : GuildUser, ISocketUser, IVoiceState { internal override bool IsAttached => true; @@ -16,11 +17,74 @@ namespace Discord.WebSocket public override Game Game => Presence.Game; public override UserStatus Status => Presence.Status; - public VoiceState? VoiceState => Guild.GetVoiceState(Id); - public bool IsSelfDeafened => VoiceState?.IsSelfDeafened ?? false; - public bool IsSelfMuted => VoiceState?.IsSelfMuted ?? false; - public bool IsSuppressed => VoiceState?.IsSuppressed ?? false; - public SocketVoiceChannel VoiceChannel => VoiceState?.VoiceChannel; + public VoiceState? VoiceState + { + get + { + return Guild.GetVoiceState(Id); + } + } + + public bool IsSelfDeafened + { + get + { + return VoiceState?.IsSelfDeafened ?? false; + } + } + public bool IsSelfMuted + { + get + { + return VoiceState?.IsSelfMuted ?? false; + } + } + public bool IsSuppressed + { + get + { + return VoiceState?.IsSuppressed ?? false; + } + } + public VoiceChannel VoiceChannel + { + get + { + return VoiceState?.VoiceChannel; + } + } + + public bool IsDeafened + { + get + { + return VoiceState?.IsDeafened ?? false; + } + } + + public bool IsMuted + { + get + { + return VoiceState?.IsMuted ?? false; + } + } + + IVoiceChannel IVoiceState.VoiceChannel + { + get + { + return VoiceState?.VoiceChannel; + } + } + + public string VoiceSessionId + { + get + { + return VoiceState?.VoiceSessionId ?? ""; + } + } public SocketGuildUser(SocketGuild guild, SocketGlobalUser user, Model model) : base(guild, user, model)