diff --git a/src/Discord.Net.WebSocket/DiscordSocketClient.cs b/src/Discord.Net.WebSocket/DiscordSocketClient.cs index 49befb154..a052b1ea2 100644 --- a/src/Discord.Net.WebSocket/DiscordSocketClient.cs +++ b/src/Discord.Net.WebSocket/DiscordSocketClient.cs @@ -1464,8 +1464,10 @@ namespace Discord.WebSocket var data = (payload as JToken).ToObject(_serializer); var guild = State.GetGuild(data.GuildId); + var cacheable = new Cacheable(guild, data.GuildId, guild != null, + async () => (IGuild) await ApiClient.GetGuildAsync(data.GuildId)); - var voiceServer = new SocketVoiceServer(data.GuildId, data.Endpoint, data.Token); + var voiceServer = new SocketVoiceServer(cacheable, data.GuildId, data.Endpoint, data.Token); await TimedInvokeAsync(_voiceServerUpdatedEvent, nameof(UserVoiceStateUpdated), voiceServer).ConfigureAwait(false); if (guild != null) diff --git a/src/Discord.Net.WebSocket/SocketVoiceServer.cs b/src/Discord.Net.WebSocket/SocketVoiceServer.cs index 342c60655..9ab6afd3f 100644 --- a/src/Discord.Net.WebSocket/SocketVoiceServer.cs +++ b/src/Discord.Net.WebSocket/SocketVoiceServer.cs @@ -5,17 +5,17 @@ namespace Discord.WebSocket [DebuggerDisplay(@"{DebuggerDisplay,nq}")] public class SocketVoiceServer { - public ulong GuildId { get; private set; } + public Cacheable Guild { get; private set; } public string Endpoint { get; private set; } public string Token { get; private set; } - internal SocketVoiceServer(ulong guildId, string endpoint, string token) + internal SocketVoiceServer(Cacheable guild, ulong guildId, string endpoint, string token) { - GuildId = guildId; + Guild = guild; Endpoint = endpoint; Token = token; } - private string DebuggerDisplay => $"SocketVoiceServer ({GuildId})"; + private string DebuggerDisplay => $"SocketVoiceServer ({Guild.Id})"; } }