diff --git a/src/Discord.Net.Rest/Entities/Channels/RestCategoryChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestCategoryChannel.cs
index 9f944501b0..8077eb97ee 100644
--- a/src/Discord.Net.Rest/Entities/Channels/RestCategoryChannel.cs
+++ b/src/Discord.Net.Rest/Entities/Channels/RestCategoryChannel.cs
@@ -13,13 +13,13 @@ namespace Discord.Rest
public class RestCategoryChannel : RestGuildChannel, ICategoryChannel
{
#region RestCategoryChannel
- internal RestCategoryChannel(BaseDiscordClient discord, IGuild guild, ulong id)
- : base(discord, guild, id)
+ internal RestCategoryChannel(BaseDiscordClient discord, IGuild guild, ulong id, ulong guildId)
+ : base(discord, guild, id, guildId)
{
}
internal new static RestCategoryChannel Create(BaseDiscordClient discord, IGuild guild, Model model)
{
- var entity = new RestCategoryChannel(discord, guild, model.Id);
+ var entity = new RestCategoryChannel(discord, guild, model.Id, guild?.Id ?? model.GuildId.Value);
entity.Update(model);
return entity;
}
diff --git a/src/Discord.Net.Rest/Entities/Channels/RestForumChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestForumChannel.cs
index 0b2c2562d2..1ea32c075a 100644
--- a/src/Discord.Net.Rest/Entities/Channels/RestForumChannel.cs
+++ b/src/Discord.Net.Rest/Entities/Channels/RestForumChannel.cs
@@ -47,15 +47,15 @@ public class RestForumChannel : RestGuildChannel, IForumChannel
///
public string Mention => MentionUtils.MentionChannel(Id);
- internal RestForumChannel(BaseDiscordClient client, IGuild guild, ulong id)
- : base(client, guild, id)
+ internal RestForumChannel(BaseDiscordClient client, IGuild guild, ulong id, ulong guildId)
+ : base(client, guild, id, guildId)
{
}
internal new static RestForumChannel Create(BaseDiscordClient discord, IGuild guild, Model model)
{
- var entity = new RestForumChannel(discord, guild, model.Id);
+ var entity = new RestForumChannel(discord, guild, model.Id, guild?.Id ?? model.GuildId.Value);
entity.Update(model);
return entity;
}
diff --git a/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs
index 611298a32d..250cc32b22 100644
--- a/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs
+++ b/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs
@@ -23,16 +23,18 @@ public class RestGuildChannel : RestChannel, IGuildChannel
public string Name { get; private set; }
///
public int Position { get; private set; }
+
///
- public ulong GuildId => Guild.Id;
+ public ulong GuildId { get; }
///
public ChannelFlags Flags { get; private set; }
- internal RestGuildChannel(BaseDiscordClient discord, IGuild guild, ulong id)
+ internal RestGuildChannel(BaseDiscordClient discord, IGuild guild, ulong id, ulong guildId)
: base(discord, id)
{
Guild = guild;
+ GuildId = guildId;
}
internal static RestGuildChannel Create(BaseDiscordClient discord, IGuild guild, Model model)
{
@@ -46,7 +48,7 @@ internal static RestGuildChannel Create(BaseDiscordClient discord, IGuild guild,
ChannelType.Forum => RestForumChannel.Create(discord, guild, model),
ChannelType.Category => RestCategoryChannel.Create(discord, guild, model),
ChannelType.PublicThread or ChannelType.PrivateThread or ChannelType.NewsThread => RestThreadChannel.Create(discord, guild, model),
- _ => new RestGuildChannel(discord, guild, model.Id),
+ _ => new RestGuildChannel(discord, guild, model.Id, guild?.Id ?? model.GuildId.Value),
};
}
internal override void Update(Model model)
diff --git a/src/Discord.Net.Rest/Entities/Channels/RestMediaChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestMediaChannel.cs
index 6126329412..4e07878467 100644
--- a/src/Discord.Net.Rest/Entities/Channels/RestMediaChannel.cs
+++ b/src/Discord.Net.Rest/Entities/Channels/RestMediaChannel.cs
@@ -4,15 +4,15 @@ namespace Discord.Rest;
public class RestMediaChannel : RestForumChannel, IMediaChannel
{
- internal RestMediaChannel(BaseDiscordClient client, IGuild guild, ulong id)
- : base(client, guild, id)
+ internal RestMediaChannel(BaseDiscordClient client, IGuild guild, ulong id, ulong guildId)
+ : base(client, guild, id, guildId)
{
}
internal new static RestMediaChannel Create(BaseDiscordClient discord, IGuild guild, Model model)
{
- var entity = new RestMediaChannel(discord, guild, model.Id);
+ var entity = new RestMediaChannel(discord, guild, model.Id, guild?.Id ?? model.GuildId.Value);
entity.Update(model);
return entity;
}
diff --git a/src/Discord.Net.Rest/Entities/Channels/RestNewsChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestNewsChannel.cs
index 3c73a4c16d..5d33ca5d7f 100644
--- a/src/Discord.Net.Rest/Entities/Channels/RestNewsChannel.cs
+++ b/src/Discord.Net.Rest/Entities/Channels/RestNewsChannel.cs
@@ -15,13 +15,13 @@ namespace Discord.Rest
[DebuggerDisplay(@"{DebuggerDisplay,nq}")]
public class RestNewsChannel : RestTextChannel, INewsChannel
{
- internal RestNewsChannel(BaseDiscordClient discord, IGuild guild, ulong id)
- : base(discord, guild, id)
+ internal RestNewsChannel(BaseDiscordClient discord, IGuild guild, ulong id, ulong guildId)
+ : base(discord, guild, id, guildId)
{
}
internal new static RestNewsChannel Create(BaseDiscordClient discord, IGuild guild, Model model)
{
- var entity = new RestNewsChannel(discord, guild, model.Id);
+ var entity = new RestNewsChannel(discord, guild, model.Id, guild?.Id ?? model.GuildId.Value);
entity.Update(model);
return entity;
}
diff --git a/src/Discord.Net.Rest/Entities/Channels/RestStageChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestStageChannel.cs
index fe46cd808d..235c0d1cfb 100644
--- a/src/Discord.Net.Rest/Entities/Channels/RestStageChannel.cs
+++ b/src/Discord.Net.Rest/Entities/Channels/RestStageChannel.cs
@@ -15,7 +15,7 @@ public class RestStageChannel : RestVoiceChannel, IStageChannel
///
/// This field is always true for stage channels.
///
- ///
+ ///
[Obsolete("This property is no longer used because Discord enabled text-in-voice and text-in-stage for all channels.")]
public override bool IsTextInVoice
=> true;
@@ -28,12 +28,12 @@ public override bool IsTextInVoice
///
public bool IsLive { get; private set; }
- internal RestStageChannel(BaseDiscordClient discord, IGuild guild, ulong id)
- : base(discord, guild, id) { }
+ internal RestStageChannel(BaseDiscordClient discord, IGuild guild, ulong id, ulong guildId)
+ : base(discord, guild, id, guildId) { }
internal new static RestStageChannel Create(BaseDiscordClient discord, IGuild guild, Model model)
{
- var entity = new RestStageChannel(discord, guild, model.Id);
+ var entity = new RestStageChannel(discord, guild, model.Id, guild?.Id ?? model.GuildId.Value);
entity.Update(model);
return entity;
}
diff --git a/src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs
index bca7cbea87..6a39423cab 100644
--- a/src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs
+++ b/src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs
@@ -30,13 +30,13 @@ public class RestTextChannel : RestGuildChannel, IRestMessageChannel, ITextChann
///
public int DefaultSlowModeInterval { get; private set; }
- internal RestTextChannel(BaseDiscordClient discord, IGuild guild, ulong id)
- : base(discord, guild, id)
+ internal RestTextChannel(BaseDiscordClient discord, IGuild guild, ulong id, ulong guildId)
+ : base(discord, guild, id, guildId)
{
}
internal new static RestTextChannel Create(BaseDiscordClient discord, IGuild guild, Model model)
{
- var entity = new RestTextChannel(discord, guild, model.Id);
+ var entity = new RestTextChannel(discord, guild, model.Id, guild?.Id ?? model.GuildId.Value);
entity.Update(model);
return entity;
}
diff --git a/src/Discord.Net.Rest/Entities/Channels/RestThreadChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestThreadChannel.cs
index 7889c8b41a..053b5fdf9f 100644
--- a/src/Discord.Net.Rest/Entities/Channels/RestThreadChannel.cs
+++ b/src/Discord.Net.Rest/Entities/Channels/RestThreadChannel.cs
@@ -51,15 +51,15 @@ public class RestThreadChannel : RestTextChannel, IThreadChannel
///
public ulong ParentChannelId { get; private set; }
- internal RestThreadChannel(BaseDiscordClient discord, IGuild guild, ulong id, DateTimeOffset? createdAt)
- : base(discord, guild, id)
+ internal RestThreadChannel(BaseDiscordClient discord, IGuild guild, ulong id, ulong guildId, DateTimeOffset? createdAt)
+ : base(discord, guild, id, guildId)
{
CreatedAt = createdAt ?? new DateTimeOffset(2022, 1, 9, 0, 0, 0, TimeSpan.Zero);
}
internal new static RestThreadChannel Create(BaseDiscordClient discord, IGuild guild, Model model)
{
- var entity = new RestThreadChannel(discord, guild, model.Id, model.ThreadMetadata.GetValueOrDefault()?.CreatedAt.GetValueOrDefault());
+ var entity = new RestThreadChannel(discord, guild, model.Id, guild?.Id ?? model.GuildId.Value, model.ThreadMetadata.GetValueOrDefault()?.CreatedAt.GetValueOrDefault());
entity.Update(model);
return entity;
}
diff --git a/src/Discord.Net.Rest/Entities/Channels/RestVoiceChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestVoiceChannel.cs
index 98ce3d5c97..73dacf5b21 100644
--- a/src/Discord.Net.Rest/Entities/Channels/RestVoiceChannel.cs
+++ b/src/Discord.Net.Rest/Entities/Channels/RestVoiceChannel.cs
@@ -31,13 +31,13 @@ public class RestVoiceChannel : RestTextChannel, IVoiceChannel, IRestAudioChanne
///
public VideoQualityMode VideoQualityMode { get; private set; }
- internal RestVoiceChannel(BaseDiscordClient discord, IGuild guild, ulong id)
- : base(discord, guild, id)
+ internal RestVoiceChannel(BaseDiscordClient discord, IGuild guild, ulong id, ulong guildId)
+ : base(discord, guild, id, guildId)
{
}
internal new static RestVoiceChannel Create(BaseDiscordClient discord, IGuild guild, Model model)
{
- var entity = new RestVoiceChannel(discord, guild, model.Id);
+ var entity = new RestVoiceChannel(discord, guild, model.Id, guild?.Id ?? model.GuildId.Value);
entity.Update(model);
return entity;
}