diff --git a/src/Discord.Net.Core/Entities/Messages/IUserMessage.cs b/src/Discord.Net.Core/Entities/Messages/IUserMessage.cs
index c2d0e13bc..1b79fbbf1 100644
--- a/src/Discord.Net.Core/Entities/Messages/IUserMessage.cs
+++ b/src/Discord.Net.Core/Entities/Messages/IUserMessage.cs
@@ -16,6 +16,14 @@ namespace Discord
///
IUserMessage ReferencedMessage { get; }
+ ///
+ /// Gets the thread that was started from this message.
+ ///
+ ///
+ /// An object if this message has thread attached; otherwise .
+ ///
+ IThreadChannel Thread { get; }
+
///
/// Modifies this message.
///
diff --git a/src/Discord.Net.Rest/Entities/Messages/RestMessage.cs b/src/Discord.Net.Rest/Entities/Messages/RestMessage.cs
index a497289d1..240347a63 100644
--- a/src/Discord.Net.Rest/Entities/Messages/RestMessage.cs
+++ b/src/Discord.Net.Rest/Entities/Messages/RestMessage.cs
@@ -80,15 +80,6 @@ namespace Discord.Rest
///
public MessageType Type { get; private set; }
-
- ///
- /// Gets the thread that was started from this message.
- ///
- ///
- /// A object if this message has thread attached; otherwise .
- ///
- public RestThreadChannel Thread { get; private set; }
-
///
public MessageRoleSubscriptionData RoleSubscriptionData { get; private set; }
@@ -264,11 +255,6 @@ namespace Discord.Rest
model.RoleSubscriptionData.Value.MonthsSubscribed,
model.RoleSubscriptionData.Value.IsRenewal);
}
-
- if (model.Thread.IsSpecified)
- {
- Thread = RestThreadChannel.Create(Discord, new RestGuild(Discord, model.Thread.Value.GuildId.Value), model.Thread.Value);
- }
}
///
public async Task UpdateAsync(RequestOptions options = null)
diff --git a/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs b/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs
index 083a8e72c..f3b677343 100644
--- a/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs
+++ b/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs
@@ -47,6 +47,12 @@ namespace Discord.Rest
///
public IUserMessage ReferencedMessage => _referencedMessage;
+ ///
+ public RestThreadChannel Thread { get; private set; }
+
+ ///
+ IThreadChannel IUserMessage.Thread => Thread;
+
internal RestUserMessage(BaseDiscordClient discord, ulong id, IMessageChannel channel, IUser author, MessageSource source)
: base(discord, id, channel, author, source)
{
@@ -130,6 +136,9 @@ namespace Discord.Rest
else
_stickers = ImmutableArray.Create();
}
+
+ if(model.Thread.IsSpecified)
+ Thread = RestThreadChannel.Create(Discord, guild, model.Thread.Value);
}
///
diff --git a/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs b/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs
index f5abb2c49..5ea353802 100644
--- a/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs
+++ b/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs
@@ -49,6 +49,12 @@ namespace Discord.WebSocket
///
public IUserMessage ReferencedMessage => _referencedMessage;
+ ///
+ public SocketThreadChannel Thread { get; private set; }
+
+ ///
+ IThreadChannel IUserMessage.Thread => Thread;
+
internal SocketUserMessage(DiscordSocketClient discord, ulong id, ISocketMessageChannel channel, SocketUser author, MessageSource source)
: base(discord, id, channel, author, source)
{
@@ -172,6 +178,11 @@ namespace Discord.WebSocket
else
_stickers = ImmutableArray.Create();
}
+
+ if (model.Thread.IsSpecified)
+ {
+ Thread = SocketThreadChannel.Create(guild, state, model.Thread.Value);
+ }
}
///