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; }