From 737a400e085cee6bb9aa33e11ce79eae37a7b485 Mon Sep 17 00:00:00 2001 From: quin lynch Date: Sun, 30 May 2021 09:28:26 -0300 Subject: [PATCH] Rest based fetch for interactions that are not in cache --- src/Discord.Net.WebSocket/DiscordSocketClient.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Discord.Net.WebSocket/DiscordSocketClient.cs b/src/Discord.Net.WebSocket/DiscordSocketClient.cs index ef696a5ba..76c17a2ec 100644 --- a/src/Discord.Net.WebSocket/DiscordSocketClient.cs +++ b/src/Discord.Net.WebSocket/DiscordSocketClient.cs @@ -1796,7 +1796,19 @@ namespace Discord.WebSocket channel = State.GetDMChannel(data.User.Value.Id); } - if(channel is ISocketMessageChannel textChannel) + if (channel == null) + { + var channelModel = await this.Rest.ApiClient.GetChannelAsync(data.ChannelId.Value); + + if (data.GuildId.IsSpecified) + channel = SocketTextChannel.Create(State.GetGuild(data.GuildId.Value), this.State, channelModel); + else + channel = (SocketChannel)SocketChannel.CreatePrivate(this, State, channelModel); + + this.State.AddChannel(channel); + } + + if (channel is ISocketMessageChannel textChannel) { var guild = (channel as SocketGuildChannel)?.Guild; if (guild != null && !guild.IsSynced)