diff --git a/src/Discord.Net.Core/Entities/Channels/GuildChannelProperties.cs b/src/Discord.Net.Core/Entities/Channels/GuildChannelProperties.cs index 9552b0a603..ff94f9ae79 100644 --- a/src/Discord.Net.Core/Entities/Channels/GuildChannelProperties.cs +++ b/src/Discord.Net.Core/Entities/Channels/GuildChannelProperties.cs @@ -21,14 +21,5 @@ public class GuildChannelProperties /// Moves the channel to the following position. This property is zero-based. /// public Optional Position { get; set; } - /// - /// Gets or sets the category ID for this channel. - /// - /// - /// Setting this value to a category's snowflake identifier will change or set this channel's parent to the - /// specified channel; setting this value to 0 will detach this channel from its parent if one - /// is set. - /// - public Optional CategoryId { get; set; } } } diff --git a/src/Discord.Net.Core/Entities/Channels/NestedChannelProperties.cs b/src/Discord.Net.Core/Entities/Channels/NestedChannelProperties.cs new file mode 100644 index 0000000000..345b29e415 --- /dev/null +++ b/src/Discord.Net.Core/Entities/Channels/NestedChannelProperties.cs @@ -0,0 +1,18 @@ +namespace Discord +{ + /// + /// Properties that are used to modify an with the specified changes. + /// + public class NestedChannelProperties : GuildChannelProperties + { + /// + /// Gets or sets the category ID for this channel. + /// + /// + /// Setting this value to a category's snowflake identifier will change or set this channel's parent to the + /// specified channel; setting this value to null will detach this channel from its parent if one + /// is set. + /// + public Optional CategoryId { get; set; } + } +} diff --git a/src/Discord.Net.Core/Entities/Channels/TextChannelProperties.cs b/src/Discord.Net.Core/Entities/Channels/TextChannelProperties.cs index 6dcbf860a6..994b043d76 100644 --- a/src/Discord.Net.Core/Entities/Channels/TextChannelProperties.cs +++ b/src/Discord.Net.Core/Entities/Channels/TextChannelProperties.cs @@ -6,7 +6,7 @@ namespace Discord /// Provides properties that are used to modify an with the specified changes. /// /// - public class TextChannelProperties : GuildChannelProperties + public class TextChannelProperties : NestedChannelProperties { /// /// Gets or sets the topic of the channel. diff --git a/src/Discord.Net.Core/Entities/Channels/VoiceChannelProperties.cs b/src/Discord.Net.Core/Entities/Channels/VoiceChannelProperties.cs index fb4d478003..d423400db0 100644 --- a/src/Discord.Net.Core/Entities/Channels/VoiceChannelProperties.cs +++ b/src/Discord.Net.Core/Entities/Channels/VoiceChannelProperties.cs @@ -3,7 +3,7 @@ namespace Discord /// /// Provides properties that are used to modify an with the specified changes. /// - public class VoiceChannelProperties : GuildChannelProperties + public class VoiceChannelProperties : NestedChannelProperties { /// /// Gets or sets the bitrate of the voice connections in this channel. Must be greater than 8000. diff --git a/src/Discord.Net.Rest/API/Rest/ModifyGuildChannelParams.cs b/src/Discord.Net.Rest/API/Rest/ModifyGuildChannelParams.cs index e5e8a46320..4427424aaa 100644 --- a/src/Discord.Net.Rest/API/Rest/ModifyGuildChannelParams.cs +++ b/src/Discord.Net.Rest/API/Rest/ModifyGuildChannelParams.cs @@ -10,8 +10,6 @@ internal class ModifyGuildChannelParams public Optional Name { get; set; } [JsonProperty("position")] public Optional Position { get; set; } - [JsonProperty("parent_id")] - public Optional CategoryId { get; set; } [JsonProperty("permission_overwrites")] public Optional Overwrites { get; set; } } diff --git a/src/Discord.Net.Rest/API/Rest/ModifyNestedChannelParams.cs b/src/Discord.Net.Rest/API/Rest/ModifyNestedChannelParams.cs new file mode 100644 index 0000000000..716f4a116d --- /dev/null +++ b/src/Discord.Net.Rest/API/Rest/ModifyNestedChannelParams.cs @@ -0,0 +1,12 @@ +#pragma warning disable CS1591 +using Newtonsoft.Json; + +namespace Discord.API.Rest +{ + [JsonObject(MemberSerialization = MemberSerialization.OptIn)] + internal class ModifyNestedChannelParams : ModifyGuildChannelParams + { + [JsonProperty("parent_id")] + public Optional CategoryId { get; set; } + } +} diff --git a/src/Discord.Net.Rest/API/Rest/ModifyTextChannelParams.cs b/src/Discord.Net.Rest/API/Rest/ModifyTextChannelParams.cs index 94f149fc1c..274a47d4ad 100644 --- a/src/Discord.Net.Rest/API/Rest/ModifyTextChannelParams.cs +++ b/src/Discord.Net.Rest/API/Rest/ModifyTextChannelParams.cs @@ -4,7 +4,7 @@ namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - internal class ModifyTextChannelParams : ModifyGuildChannelParams + internal class ModifyTextChannelParams : ModifyNestedChannelParams { [JsonProperty("topic")] public Optional Topic { get; set; } diff --git a/src/Discord.Net.Rest/API/Rest/ModifyVoiceChannelParams.cs b/src/Discord.Net.Rest/API/Rest/ModifyVoiceChannelParams.cs index ce36eb11f3..41b4922044 100644 --- a/src/Discord.Net.Rest/API/Rest/ModifyVoiceChannelParams.cs +++ b/src/Discord.Net.Rest/API/Rest/ModifyVoiceChannelParams.cs @@ -1,10 +1,10 @@ -#pragma warning disable CS1591 +#pragma warning disable CS1591 using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - internal class ModifyVoiceChannelParams : ModifyGuildChannelParams + internal class ModifyVoiceChannelParams : ModifyNestedChannelParams { [JsonProperty("bitrate")] public Optional Bitrate { get; set; } diff --git a/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs b/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs index d8a97e85a0..d6992aa877 100644 --- a/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs +++ b/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs @@ -27,8 +27,7 @@ public static async Task ModifyAsync(IGuildChannel channel, BaseDiscordCl var apiArgs = new API.Rest.ModifyGuildChannelParams { Name = args.Name, - Position = args.Position, - CategoryId = args.CategoryId + Position = args.Position }; return await client.ApiClient.ModifyGuildChannelAsync(channel.Id, apiArgs, options).ConfigureAwait(false); }