| @@ -1,10 +1,11 @@ | |||||
| using Discord.Rest; | |||||
| using System; | |||||
| using Discord.Rest; | |||||
| using Model = Discord.API.GuildMember; | using Model = Discord.API.GuildMember; | ||||
| using PresenceModel = Discord.API.Presence; | using PresenceModel = Discord.API.Presence; | ||||
| namespace Discord.WebSocket | namespace Discord.WebSocket | ||||
| { | { | ||||
| internal class SocketGuildUser : GuildUser, ISocketUser | |||||
| internal class SocketGuildUser : GuildUser, ISocketUser, IVoiceState | |||||
| { | { | ||||
| internal override bool IsAttached => true; | internal override bool IsAttached => true; | ||||
| @@ -16,11 +17,74 @@ namespace Discord.WebSocket | |||||
| public override Game Game => Presence.Game; | public override Game Game => Presence.Game; | ||||
| public override UserStatus Status => Presence.Status; | 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) | public SocketGuildUser(SocketGuild guild, SocketGlobalUser user, Model model) | ||||
| : base(guild, user, model) | : base(guild, user, model) | ||||