* Submitting updates to include new permissions. * Make old permissions obsolete and update tests Co-authored-by: quin lynch <lynchquin@gmail.com>pull/1923/head
| @@ -8267,7 +8267,7 @@ | |||
| </member> | |||
| <member name="P:Discord.ReactionMetadata.IsMe"> | |||
| <summary> | |||
| Gets a value that indicates whether the current user has reacted to | |||
| Gets a value that indicates whether the current user has reacted to this. | |||
| </summary> | |||
| <returns> | |||
| <c>true</c> if the user has reacted to the message; otherwise <c>false</c>. | |||
| @@ -8604,7 +8604,12 @@ | |||
| Allows members to use slash commands in text channels. | |||
| </summary> | |||
| </member> | |||
| <member name="F:Discord.ChannelPermission.RequesToSpeak"> | |||
| <member name="F:Discord.ChannelPermission.UseApplicationCommands"> | |||
| <summary> | |||
| Allows members to use slash commands in text channels. | |||
| </summary> | |||
| </member> | |||
| <member name="F:Discord.ChannelPermission.RequestToSpeak"> | |||
| <summary> | |||
| Allows for requesting to speak in stage channels. (This permission is under active development and may be changed or removed.) | |||
| </summary> | |||
| @@ -8624,106 +8629,158 @@ | |||
| Allows for creating and participating in private threads | |||
| </summary> | |||
| </member> | |||
| <member name="F:Discord.ChannelPermission.CreatePublicThreads"> | |||
| <summary> | |||
| Allows for creating public threads. | |||
| </summary> | |||
| </member> | |||
| <member name="F:Discord.ChannelPermission.CreatePrivateThreads"> | |||
| <summary> | |||
| Allows for creating private threads. | |||
| </summary> | |||
| </member> | |||
| <member name="F:Discord.ChannelPermission.UseExternalStickers"> | |||
| <summary> | |||
| Allows the usage of custom stickers from other servers. | |||
| </summary> | |||
| </member> | |||
| <member name="F:Discord.ChannelPermission.SendMessagesInThreads"> | |||
| <summary> | |||
| Allows for sending messages in threads. | |||
| </summary> | |||
| </member> | |||
| <member name="F:Discord.ChannelPermission.StartEmbeddedActivities"> | |||
| <summary> | |||
| Allows for launching activities (applications with the EMBEDDED flag) in a voice channel. | |||
| </summary> | |||
| </member> | |||
| <member name="F:Discord.ChannelPermissions.None"> | |||
| <summary> Gets a blank <see cref="T:Discord.ChannelPermissions"/> that grants no permissions. </summary> | |||
| <returns> A <see cref="T:Discord.ChannelPermissions"/> structure that does not contain any set permissions. </returns> | |||
| <summary> Gets a blank <see cref="T:Discord.ChannelPermissions"/> that grants no permissions.</summary> | |||
| <returns> A <see cref="T:Discord.ChannelPermissions"/> structure that does not contain any set permissions.</returns> | |||
| </member> | |||
| <member name="F:Discord.ChannelPermissions.Text"> | |||
| <summary> Gets a <see cref="T:Discord.ChannelPermissions"/> that grants all permissions for text channels. </summary> | |||
| <summary> Gets a <see cref="T:Discord.ChannelPermissions"/> that grants all permissions for text channels.</summary> | |||
| </member> | |||
| <member name="F:Discord.ChannelPermissions.Voice"> | |||
| <summary> Gets a <see cref="T:Discord.ChannelPermissions"/> that grants all permissions for voice channels. </summary> | |||
| <summary> Gets a <see cref="T:Discord.ChannelPermissions"/> that grants all permissions for voice channels.</summary> | |||
| </member> | |||
| <member name="F:Discord.ChannelPermissions.Stage"> | |||
| <summary> Gets a <see cref="T:Discord.ChannelPermissions"/> that grants all permissions for stage channels.</summary> | |||
| </member> | |||
| <member name="F:Discord.ChannelPermissions.Category"> | |||
| <summary> Gets a <see cref="T:Discord.ChannelPermissions"/> that grants all permissions for category channels. </summary> | |||
| <summary> Gets a <see cref="T:Discord.ChannelPermissions"/> that grants all permissions for category channels.</summary> | |||
| </member> | |||
| <member name="F:Discord.ChannelPermissions.DM"> | |||
| <summary> Gets a <see cref="T:Discord.ChannelPermissions"/> that grants all permissions for direct message channels. </summary> | |||
| <summary> Gets a <see cref="T:Discord.ChannelPermissions"/> that grants all permissions for direct message channels.</summary> | |||
| </member> | |||
| <member name="F:Discord.ChannelPermissions.Group"> | |||
| <summary> Gets a <see cref="T:Discord.ChannelPermissions"/> that grants all permissions for group channels. </summary> | |||
| <summary> Gets a <see cref="T:Discord.ChannelPermissions"/> that grants all permissions for group channels.</summary> | |||
| </member> | |||
| <member name="M:Discord.ChannelPermissions.All(Discord.IChannel)"> | |||
| <summary> Gets a <see cref="T:Discord.ChannelPermissions"/> that grants all permissions for a given channel type. </summary> | |||
| <summary> Gets a <see cref="T:Discord.ChannelPermissions"/> that grants all permissions for a given channel type.</summary> | |||
| <exception cref="T:System.ArgumentException">Unknown channel type.</exception> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.RawValue"> | |||
| <summary> Gets a packed value representing all the permissions in this <see cref="T:Discord.ChannelPermissions"/>. </summary> | |||
| <summary> Gets a packed value representing all the permissions in this <see cref="T:Discord.ChannelPermissions"/>.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.CreateInstantInvite"> | |||
| <summary> If <c>true</c>, a user may create invites. </summary> | |||
| <summary> If <c>true</c>, a user may create invites.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.ManageChannel"> | |||
| <summary> If <c>true</c>, a user may create, delete and modify this channel. </summary> | |||
| <summary> If <c>true</c>, a user may create, delete and modify this channel.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.AddReactions"> | |||
| <summary> If <c>true</c>, a user may add reactions. </summary> | |||
| <summary> If <c>true</c>, a user may add reactions.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.ViewChannel"> | |||
| <summary> If <c>true</c>, a user may view channels. </summary> | |||
| <summary> If <c>true</c>, a user may view channels.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.SendMessages"> | |||
| <summary> If <c>true</c>, a user may send messages. </summary> | |||
| <summary> If <c>true</c>, a user may send messages.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.SendTTSMessages"> | |||
| <summary> If <c>true</c>, a user may send text-to-speech messages. </summary> | |||
| <summary> If <c>true</c>, a user may send text-to-speech messages.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.ManageMessages"> | |||
| <summary> If <c>true</c>, a user may delete messages. </summary> | |||
| <summary> If <c>true</c>, a user may delete messages.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.EmbedLinks"> | |||
| <summary> If <c>true</c>, Discord will auto-embed links sent by this user. </summary> | |||
| <summary> If <c>true</c>, Discord will auto-embed links sent by this user.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.AttachFiles"> | |||
| <summary> If <c>true</c>, a user may send files. </summary> | |||
| <summary> If <c>true</c>, a user may send files.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.ReadMessageHistory"> | |||
| <summary> If <c>true</c>, a user may read previous messages. </summary> | |||
| <summary> If <c>true</c>, a user may read previous messages.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.MentionEveryone"> | |||
| <summary> If <c>true</c>, a user may mention @everyone. </summary> | |||
| <summary> If <c>true</c>, a user may mention @everyone.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.UseExternalEmojis"> | |||
| <summary> If <c>true</c>, a user may use custom emoji from other guilds. </summary> | |||
| <summary> If <c>true</c>, a user may use custom emoji from other guilds.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.Connect"> | |||
| <summary> If <c>true</c>, a user may connect to a voice channel. </summary> | |||
| <summary> If <c>true</c>, a user may connect to a voice channel.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.Speak"> | |||
| <summary> If <c>true</c>, a user may speak in a voice channel. </summary> | |||
| <summary> If <c>true</c>, a user may speak in a voice channel.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.MuteMembers"> | |||
| <summary> If <c>true</c>, a user may mute users. </summary> | |||
| <summary> If <c>true</c>, a user may mute users.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.DeafenMembers"> | |||
| <summary> If <c>true</c>, a user may deafen users. </summary> | |||
| <summary> If <c>true</c>, a user may deafen users.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.MoveMembers"> | |||
| <summary> If <c>true</c>, a user may move other users between voice channels. </summary> | |||
| <summary> If <c>true</c>, a user may move other users between voice channels.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.UseVAD"> | |||
| <summary> If <c>true</c>, a user may use voice-activity-detection rather than push-to-talk. </summary> | |||
| <summary> If <c>true</c>, a user may use voice-activity-detection rather than push-to-talk.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.PrioritySpeaker"> | |||
| <summary> If <c>true</c>, a user may use priority speaker in a voice channel. </summary> | |||
| <summary> If <c>true</c>, a user may use priority speaker in a voice channel.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.Stream"> | |||
| <summary> If <c>true</c>, a user may stream video in a voice channel. </summary> | |||
| <summary> If <c>true</c>, a user may stream video in a voice channel.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.ManageRoles"> | |||
| <summary> If <c>true</c>, a user may adjust role permissions. This also implictly grants all other permissions. </summary> | |||
| <summary> If <c>true</c>, a user may adjust role permissions. This also implictly grants all other permissions.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.ManageWebhooks"> | |||
| <summary> If <c>true</c>, a user may edit the webhooks for this channel. </summary> | |||
| <summary> If <c>true</c>, a user may edit the webhooks for this channel.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.UseApplicationCommands"> | |||
| <summary> If <c>true</c>, a user may use application commands in this guild.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.RequestToSpeak"> | |||
| <summary> If <c>true</c>, a user may request to speak in stage channels.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.ManageThreads"> | |||
| <summary> If <c>true</c>, a user may manage threads in this guild.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.CreatePublicThreads"> | |||
| <summary> If <c>true</c>, a user may create public threads in this guild.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.CreatePrivateThreads"> | |||
| <summary> If <c>true</c>, a user may create private threads in this guild.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.UseExternalStickers"> | |||
| <summary> If <c>true</c>, a user may use external stickers in this guild.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.SendMessagesInThreads"> | |||
| <summary> If <c>true</c>, a user may send messages in threads in this guild.</summary> | |||
| </member> | |||
| <member name="P:Discord.ChannelPermissions.StartEmbeddedActivities"> | |||
| <summary> If <c>true</c>, a user launch application activites in voice channels in this guild.</summary> | |||
| </member> | |||
| <member name="M:Discord.ChannelPermissions.#ctor(System.UInt64)"> | |||
| <summary> Creates a new <see cref="T:Discord.ChannelPermissions"/> with the provided packed value. </summary> | |||
| <summary> Creates a new <see cref="T:Discord.ChannelPermissions"/> with the provided packed value.</summary> | |||
| </member> | |||
| <member name="M:Discord.ChannelPermissions.#ctor(System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean)"> | |||
| <summary> Creates a new <see cref="T:Discord.ChannelPermissions"/> with the provided permissions. </summary> | |||
| <member name="M:Discord.ChannelPermissions.#ctor(System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean)"> | |||
| <summary> Creates a new <see cref="T:Discord.ChannelPermissions"/> with the provided permissions.</summary> | |||
| </member> | |||
| <member name="M:Discord.ChannelPermissions.Modify(System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean})"> | |||
| <summary> Creates a new <see cref="T:Discord.ChannelPermissions"/> from this one, changing the provided non-null permissions. </summary> | |||
| <member name="M:Discord.ChannelPermissions.Modify(System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean})"> | |||
| <summary> Creates a new <see cref="T:Discord.ChannelPermissions"/> from this one, changing the provided non-null permissions.</summary> | |||
| </member> | |||
| <member name="T:Discord.GuildApplicationCommandPermission"> | |||
| <summary> | |||
| @@ -8950,6 +9007,11 @@ | |||
| Allows members to use slash commands in text channels. | |||
| </summary> | |||
| </member> | |||
| <member name="F:Discord.GuildPermission.UseApplicationCommands"> | |||
| <summary> | |||
| Allows members to use application commands like slash commands and context menus in text channels. | |||
| </summary> | |||
| </member> | |||
| <member name="F:Discord.GuildPermission.RequestToSpeak"> | |||
| <summary> | |||
| Allows for requesting to speak in stage channels. <i>(This permission is under active development and may be changed or removed.)</i>. | |||
| @@ -9104,7 +9166,7 @@ | |||
| <member name="P:Discord.GuildPermissions.ManageEmojisAndStickers"> | |||
| <summary> If <c>true</c>, a user may edit the emojis and stickers for this guild. </summary> | |||
| </member> | |||
| <member name="P:Discord.GuildPermissions.UseSlashCommands"> | |||
| <member name="P:Discord.GuildPermissions.UseApplicationCommands"> | |||
| <summary> If <c>true</c>, a user may use slash commands in this guild. </summary> | |||
| </member> | |||
| <member name="P:Discord.GuildPermissions.RequestToSpeak"> | |||
| @@ -9119,12 +9181,6 @@ | |||
| <member name="P:Discord.GuildPermissions.CreatePrivateThreads"> | |||
| <summary> If <c>true</c>, a user may create private threads in this guild. </summary> | |||
| </member> | |||
| <member name="P:Discord.GuildPermissions.UsePublicThreads"> | |||
| <summary> If <c>true</c>, a user may use public threads in this guild. </summary> | |||
| </member> | |||
| <member name="P:Discord.GuildPermissions.UsePrivateThreads"> | |||
| <summary> If <c>true</c>, a user may use private threads in this guild. </summary> | |||
| </member> | |||
| <member name="P:Discord.GuildPermissions.UseExternalStickers"> | |||
| <summary> If <c>true</c>, a user may use external stickers in this guild. </summary> | |||
| </member> | |||
| @@ -9140,10 +9196,10 @@ | |||
| <member name="M:Discord.GuildPermissions.#ctor(System.String)"> | |||
| <summary> Creates a new <see cref="T:Discord.GuildPermissions"/> with the provided packed value after converting to ulong. </summary> | |||
| </member> | |||
| <member name="M:Discord.GuildPermissions.#ctor(System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean)"> | |||
| <member name="M:Discord.GuildPermissions.#ctor(System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean)"> | |||
| <summary> Creates a new <see cref="T:Discord.GuildPermissions"/> structure with the provided permissions. </summary> | |||
| </member> | |||
| <member name="M:Discord.GuildPermissions.Modify(System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean})"> | |||
| <member name="M:Discord.GuildPermissions.Modify(System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean})"> | |||
| <summary> Creates a new <see cref="T:Discord.GuildPermissions"/> from this one, changing the provided non-null permissions. </summary> | |||
| </member> | |||
| <member name="M:Discord.GuildPermissions.Has(Discord.GuildPermission)"> | |||
| @@ -9284,18 +9340,42 @@ | |||
| <member name="P:Discord.OverwritePermissions.ManageWebhooks"> | |||
| <summary> If True, a user may edit the webhooks for this channel. </summary> | |||
| </member> | |||
| <member name="P:Discord.OverwritePermissions.UseApplicationCommands"> | |||
| <summary> If <c>true</c>, a user may use slash commands in this guild. </summary> | |||
| </member> | |||
| <member name="P:Discord.OverwritePermissions.RequestToSpeak"> | |||
| <summary> If <c>true</c>, a user may request to speak in stage channels. </summary> | |||
| </member> | |||
| <member name="P:Discord.OverwritePermissions.ManageThreads"> | |||
| <summary> If <c>true</c>, a user may manage threads in this guild. </summary> | |||
| </member> | |||
| <member name="P:Discord.OverwritePermissions.CreatePublicThreads"> | |||
| <summary> If <c>true</c>, a user may create public threads in this guild. </summary> | |||
| </member> | |||
| <member name="P:Discord.OverwritePermissions.CreatePrivateThreads"> | |||
| <summary> If <c>true</c>, a user may create private threads in this guild. </summary> | |||
| </member> | |||
| <member name="P:Discord.OverwritePermissions.UseExternalStickers"> | |||
| <summary> If <c>true</c>, a user may use external stickers in this guild. </summary> | |||
| </member> | |||
| <member name="P:Discord.OverwritePermissions.SendMessagesInThreads"> | |||
| <summary> If <c>true</c>, a user may send messages in threads in this guild. </summary> | |||
| </member> | |||
| <member name="P:Discord.OverwritePermissions.StartEmbeddedActivities"> | |||
| <summary> If <c>true</c>, a user launch application activites in voice channels in this guild. </summary> | |||
| </member> | |||
| <member name="M:Discord.OverwritePermissions.#ctor(System.UInt64,System.UInt64)"> | |||
| <summary> Creates a new OverwritePermissions with the provided allow and deny packed values. </summary> | |||
| </member> | |||
| <member name="M:Discord.OverwritePermissions.#ctor(System.String,System.String)"> | |||
| <summary> Creates a new OverwritePermissions with the provided allow and deny packed values after converting to ulong. </summary> | |||
| </member> | |||
| <member name="M:Discord.OverwritePermissions.#ctor(Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue)"> | |||
| <member name="M:Discord.OverwritePermissions.#ctor(Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue,Discord.PermValue)"> | |||
| <summary> | |||
| Initializes a new <see cref="T:Discord.ChannelPermissions"/> struct with the provided permissions. | |||
| </summary> | |||
| </member> | |||
| <member name="M:Discord.OverwritePermissions.Modify(System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue})"> | |||
| <member name="M:Discord.OverwritePermissions.Modify(System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue},System.Nullable{Discord.PermValue})"> | |||
| <summary> | |||
| Initializes a new <see cref="T:Discord.OverwritePermissions" /> from the current one, changing the provided | |||
| non-null permissions. | |||
| @@ -113,12 +113,18 @@ namespace Discord | |||
| /// <summary> | |||
| /// Allows members to use slash commands in text channels. | |||
| /// </summary> | |||
| [Obsolete("UseSlashCommands has been replaced by UseApplicationCommands", true)] | |||
| UseSlashCommands = 0x00_80_00_00_00, | |||
| /// <summary> | |||
| /// Allows members to use slash commands in text channels. | |||
| /// </summary> | |||
| UseApplicationCommands = 0x00_80_00_00_00, | |||
| /// <summary> | |||
| /// Allows for requesting to speak in stage channels. (This permission is under active development and may be changed or removed.) | |||
| /// </summary> | |||
| RequesToSpeak = 0x01_00_00_00_00, | |||
| RequestToSpeak = 0x01_00_00_00_00, | |||
| /// <summary> | |||
| /// Allows for deleting and archiving threads, and viewing all private threads | |||
| @@ -128,12 +134,34 @@ namespace Discord | |||
| /// <summary> | |||
| /// Allows for creating and participating in threads | |||
| /// </summary> | |||
| UsePublicThreads = 0x08_00_00_00_00, | |||
| [Obsolete("UsePublicThreads has been replaced by CreatePublicThreads and SendMessagesInThreads", true)] | |||
| UsePublicThreads = 0x08_00_00_00_00, | |||
| /// <summary> | |||
| /// Allows for creating and participating in private threads | |||
| /// </summary> | |||
| [Obsolete("UsePrivateThreads has been replaced by CreatePrivateThreads and SendMessagesInThreads", true)] | |||
| UsePrivateThreads = 0x10_00_00_00_00, | |||
| /// <summary> | |||
| /// Allows for creating public threads. | |||
| /// </summary> | |||
| CreatePublicThreads = 0x08_00_00_00_00, | |||
| /// <summary> | |||
| /// Allows for creating private threads. | |||
| /// </summary> | |||
| CreatePrivateThreads = 0x10_00_00_00_00, | |||
| /// <summary> | |||
| /// Allows the usage of custom stickers from other servers. | |||
| /// </summary> | |||
| UseExternalStickers = 0x20_00_00_00_00, | |||
| /// <summary> | |||
| /// Allows for sending messages in threads. | |||
| /// </summary> | |||
| SendMessagesInThreads = 0x40_00_00_00_00, | |||
| /// <summary> | |||
| /// Allows for launching activities (applications with the EMBEDDED flag) in a voice channel. | |||
| /// </summary> | |||
| StartEmbeddedActivities = 0x80_00_00_00_00 | |||
| } | |||
| } | |||
| @@ -7,26 +7,29 @@ namespace Discord | |||
| [DebuggerDisplay("{DebuggerDisplay,nq}")] | |||
| public struct ChannelPermissions | |||
| { | |||
| /// <summary> Gets a blank <see cref="ChannelPermissions"/> that grants no permissions. </summary> | |||
| /// <returns> A <see cref="ChannelPermissions"/> structure that does not contain any set permissions. </returns> | |||
| /// <summary> Gets a blank <see cref="ChannelPermissions"/> that grants no permissions.</summary> | |||
| /// <returns> A <see cref="ChannelPermissions"/> structure that does not contain any set permissions.</returns> | |||
| public static readonly ChannelPermissions None = new ChannelPermissions(); | |||
| /// <summary> Gets a <see cref="ChannelPermissions"/> that grants all permissions for text channels. </summary> | |||
| public static readonly ChannelPermissions Text = new ChannelPermissions(0b01100_0000000_1111111110001_010001); | |||
| /// <summary> Gets a <see cref="ChannelPermissions"/> that grants all permissions for voice channels. </summary> | |||
| public static readonly ChannelPermissions Voice = new ChannelPermissions(0b00100_1111110_0000000011100_010001); | |||
| /// <summary> Gets a <see cref="ChannelPermissions"/> that grants all permissions for category channels. </summary> | |||
| /// <summary> Gets a <see cref="ChannelPermissions"/> that grants all permissions for text channels.</summary> | |||
| public static readonly ChannelPermissions Text = new ChannelPermissions(0b0_11111_0101100_0000000_1111111110001_010001); | |||
| /// <summary> Gets a <see cref="ChannelPermissions"/> that grants all permissions for voice channels.</summary> | |||
| public static readonly ChannelPermissions Voice = new ChannelPermissions(0b1_00000_0000100_1111110_0000000011100_010001); | |||
| /// <summary> Gets a <see cref="ChannelPermissions"/> that grants all permissions for stage channels.</summary> | |||
| public static readonly ChannelPermissions Stage = new ChannelPermissions(0b0_00000_1000100_0111010_0000000010000_010001); | |||
| /// <summary> Gets a <see cref="ChannelPermissions"/> that grants all permissions for category channels.</summary> | |||
| public static readonly ChannelPermissions Category = new ChannelPermissions(0b01100_1111110_1111111110001_010001); | |||
| /// <summary> Gets a <see cref="ChannelPermissions"/> that grants all permissions for direct message channels. </summary> | |||
| /// <summary> Gets a <see cref="ChannelPermissions"/> that grants all permissions for direct message channels.</summary> | |||
| public static readonly ChannelPermissions DM = new ChannelPermissions(0b00000_1000110_1011100110001_000000); | |||
| /// <summary> Gets a <see cref="ChannelPermissions"/> that grants all permissions for group channels. </summary> | |||
| /// <summary> Gets a <see cref="ChannelPermissions"/> that grants all permissions for group channels.</summary> | |||
| public static readonly ChannelPermissions Group = new ChannelPermissions(0b00000_1000110_0001101100000_000000); | |||
| /// <summary> Gets a <see cref="ChannelPermissions"/> that grants all permissions for a given channel type. </summary> | |||
| /// <summary> Gets a <see cref="ChannelPermissions"/> that grants all permissions for a given channel type.</summary> | |||
| /// <exception cref="ArgumentException">Unknown channel type.</exception> | |||
| public static ChannelPermissions All(IChannel channel) | |||
| { | |||
| return channel switch | |||
| { | |||
| ITextChannel _ => Text, | |||
| IStageChannel _ => Stage, | |||
| IVoiceChannel _ => Voice, | |||
| ICategoryChannel _ => Category, | |||
| IDMChannel _ => DM, | |||
| @@ -35,59 +38,75 @@ namespace Discord | |||
| }; | |||
| } | |||
| /// <summary> Gets a packed value representing all the permissions in this <see cref="ChannelPermissions"/>. </summary> | |||
| /// <summary> Gets a packed value representing all the permissions in this <see cref="ChannelPermissions"/>.</summary> | |||
| public ulong RawValue { get; } | |||
| /// <summary> If <c>true</c>, a user may create invites. </summary> | |||
| /// <summary> If <c>true</c>, a user may create invites.</summary> | |||
| public bool CreateInstantInvite => Permissions.GetValue(RawValue, ChannelPermission.CreateInstantInvite); | |||
| /// <summary> If <c>true</c>, a user may create, delete and modify this channel. </summary> | |||
| /// <summary> If <c>true</c>, a user may create, delete and modify this channel.</summary> | |||
| public bool ManageChannel => Permissions.GetValue(RawValue, ChannelPermission.ManageChannels); | |||
| /// <summary> If <c>true</c>, a user may add reactions. </summary> | |||
| /// <summary> If <c>true</c>, a user may add reactions.</summary> | |||
| public bool AddReactions => Permissions.GetValue(RawValue, ChannelPermission.AddReactions); | |||
| /// <summary> If <c>true</c>, a user may view channels. </summary> | |||
| /// <summary> If <c>true</c>, a user may view channels.</summary> | |||
| public bool ViewChannel => Permissions.GetValue(RawValue, ChannelPermission.ViewChannel); | |||
| /// <summary> If <c>true</c>, a user may send messages. </summary> | |||
| /// <summary> If <c>true</c>, a user may send messages.</summary> | |||
| public bool SendMessages => Permissions.GetValue(RawValue, ChannelPermission.SendMessages); | |||
| /// <summary> If <c>true</c>, a user may send text-to-speech messages. </summary> | |||
| /// <summary> If <c>true</c>, a user may send text-to-speech messages.</summary> | |||
| public bool SendTTSMessages => Permissions.GetValue(RawValue, ChannelPermission.SendTTSMessages); | |||
| /// <summary> If <c>true</c>, a user may delete messages. </summary> | |||
| /// <summary> If <c>true</c>, a user may delete messages.</summary> | |||
| public bool ManageMessages => Permissions.GetValue(RawValue, ChannelPermission.ManageMessages); | |||
| /// <summary> If <c>true</c>, Discord will auto-embed links sent by this user. </summary> | |||
| /// <summary> If <c>true</c>, Discord will auto-embed links sent by this user.</summary> | |||
| public bool EmbedLinks => Permissions.GetValue(RawValue, ChannelPermission.EmbedLinks); | |||
| /// <summary> If <c>true</c>, a user may send files. </summary> | |||
| /// <summary> If <c>true</c>, a user may send files.</summary> | |||
| public bool AttachFiles => Permissions.GetValue(RawValue, ChannelPermission.AttachFiles); | |||
| /// <summary> If <c>true</c>, a user may read previous messages. </summary> | |||
| /// <summary> If <c>true</c>, a user may read previous messages.</summary> | |||
| public bool ReadMessageHistory => Permissions.GetValue(RawValue, ChannelPermission.ReadMessageHistory); | |||
| /// <summary> If <c>true</c>, a user may mention @everyone. </summary> | |||
| /// <summary> If <c>true</c>, a user may mention @everyone.</summary> | |||
| public bool MentionEveryone => Permissions.GetValue(RawValue, ChannelPermission.MentionEveryone); | |||
| /// <summary> If <c>true</c>, a user may use custom emoji from other guilds. </summary> | |||
| /// <summary> If <c>true</c>, a user may use custom emoji from other guilds.</summary> | |||
| public bool UseExternalEmojis => Permissions.GetValue(RawValue, ChannelPermission.UseExternalEmojis); | |||
| /// <summary> If <c>true</c>, a user may connect to a voice channel. </summary> | |||
| /// <summary> If <c>true</c>, a user may connect to a voice channel.</summary> | |||
| public bool Connect => Permissions.GetValue(RawValue, ChannelPermission.Connect); | |||
| /// <summary> If <c>true</c>, a user may speak in a voice channel. </summary> | |||
| /// <summary> If <c>true</c>, a user may speak in a voice channel.</summary> | |||
| public bool Speak => Permissions.GetValue(RawValue, ChannelPermission.Speak); | |||
| /// <summary> If <c>true</c>, a user may mute users. </summary> | |||
| /// <summary> If <c>true</c>, a user may mute users.</summary> | |||
| public bool MuteMembers => Permissions.GetValue(RawValue, ChannelPermission.MuteMembers); | |||
| /// <summary> If <c>true</c>, a user may deafen users. </summary> | |||
| /// <summary> If <c>true</c>, a user may deafen users.</summary> | |||
| public bool DeafenMembers => Permissions.GetValue(RawValue, ChannelPermission.DeafenMembers); | |||
| /// <summary> If <c>true</c>, a user may move other users between voice channels. </summary> | |||
| /// <summary> If <c>true</c>, a user may move other users between voice channels.</summary> | |||
| public bool MoveMembers => Permissions.GetValue(RawValue, ChannelPermission.MoveMembers); | |||
| /// <summary> If <c>true</c>, a user may use voice-activity-detection rather than push-to-talk. </summary> | |||
| /// <summary> If <c>true</c>, a user may use voice-activity-detection rather than push-to-talk.</summary> | |||
| public bool UseVAD => Permissions.GetValue(RawValue, ChannelPermission.UseVAD); | |||
| /// <summary> If <c>true</c>, a user may use priority speaker in a voice channel. </summary> | |||
| /// <summary> If <c>true</c>, a user may use priority speaker in a voice channel.</summary> | |||
| public bool PrioritySpeaker => Permissions.GetValue(RawValue, ChannelPermission.PrioritySpeaker); | |||
| /// <summary> If <c>true</c>, a user may stream video in a voice channel. </summary> | |||
| /// <summary> If <c>true</c>, a user may stream video in a voice channel.</summary> | |||
| public bool Stream => Permissions.GetValue(RawValue, ChannelPermission.Stream); | |||
| /// <summary> If <c>true</c>, a user may adjust role permissions. This also implictly grants all other permissions. </summary> | |||
| /// <summary> If <c>true</c>, a user may adjust role permissions. This also implictly grants all other permissions.</summary> | |||
| public bool ManageRoles => Permissions.GetValue(RawValue, ChannelPermission.ManageRoles); | |||
| /// <summary> If <c>true</c>, a user may edit the webhooks for this channel. </summary> | |||
| /// <summary> If <c>true</c>, a user may edit the webhooks for this channel.</summary> | |||
| public bool ManageWebhooks => Permissions.GetValue(RawValue, ChannelPermission.ManageWebhooks); | |||
| /// <summary> If <c>true</c>, a user may use application commands in this guild.</summary> | |||
| public bool UseApplicationCommands => Permissions.GetValue(RawValue, ChannelPermission.UseApplicationCommands); | |||
| /// <summary> If <c>true</c>, a user may request to speak in stage channels.</summary> | |||
| public bool RequestToSpeak => Permissions.GetValue(RawValue, ChannelPermission.RequestToSpeak); | |||
| /// <summary> If <c>true</c>, a user may manage threads in this guild.</summary> | |||
| public bool ManageThreads => Permissions.GetValue(RawValue, ChannelPermission.ManageThreads); | |||
| /// <summary> If <c>true</c>, a user may create public threads in this guild.</summary> | |||
| public bool CreatePublicThreads => Permissions.GetValue(RawValue, ChannelPermission.CreatePublicThreads); | |||
| /// <summary> If <c>true</c>, a user may create private threads in this guild.</summary> | |||
| public bool CreatePrivateThreads => Permissions.GetValue(RawValue, ChannelPermission.CreatePrivateThreads); | |||
| /// <summary> If <c>true</c>, a user may use external stickers in this guild.</summary> | |||
| public bool UseExternalStickers => Permissions.GetValue(RawValue, ChannelPermission.UseExternalStickers); | |||
| /// <summary> If <c>true</c>, a user may send messages in threads in this guild.</summary> | |||
| public bool SendMessagesInThreads => Permissions.GetValue(RawValue, ChannelPermission.SendMessagesInThreads); | |||
| /// <summary> If <c>true</c>, a user launch application activites in voice channels in this guild.</summary> | |||
| public bool StartEmbeddedActivities => Permissions.GetValue(RawValue, ChannelPermission.StartEmbeddedActivities); | |||
| /// <summary> Creates a new <see cref="ChannelPermissions"/> with the provided packed value. </summary> | |||
| /// <summary> Creates a new <see cref="ChannelPermissions"/> with the provided packed value.</summary> | |||
| public ChannelPermissions(ulong rawValue) { RawValue = rawValue; } | |||
| private ChannelPermissions(ulong initialValue, | |||
| @@ -112,7 +131,15 @@ namespace Discord | |||
| bool? prioritySpeaker = null, | |||
| bool? stream = null, | |||
| bool? manageRoles = null, | |||
| bool? manageWebhooks = null) | |||
| bool? manageWebhooks = null, | |||
| bool? useApplicationCommands = null, | |||
| bool? requestToSpeak = null, | |||
| bool? manageThreads = null, | |||
| bool? createPublicThreads = null, | |||
| bool? createPrivateThreads = null, | |||
| bool? useExternalStickers = null, | |||
| bool? sendMessagesInThreads = null, | |||
| bool? startEmbeddedActivities = null) | |||
| { | |||
| ulong value = initialValue; | |||
| @@ -138,11 +165,19 @@ namespace Discord | |||
| Permissions.SetValue(ref value, stream, ChannelPermission.Stream); | |||
| Permissions.SetValue(ref value, manageRoles, ChannelPermission.ManageRoles); | |||
| Permissions.SetValue(ref value, manageWebhooks, ChannelPermission.ManageWebhooks); | |||
| Permissions.SetValue(ref value, useApplicationCommands, ChannelPermission.UseApplicationCommands); | |||
| Permissions.SetValue(ref value, requestToSpeak, ChannelPermission.RequestToSpeak); | |||
| Permissions.SetValue(ref value, manageThreads, ChannelPermission.ManageThreads); | |||
| Permissions.SetValue(ref value, createPublicThreads, ChannelPermission.CreatePublicThreads); | |||
| Permissions.SetValue(ref value, createPrivateThreads, ChannelPermission.CreatePrivateThreads); | |||
| Permissions.SetValue(ref value, useExternalStickers, ChannelPermission.UseExternalStickers); | |||
| Permissions.SetValue(ref value, sendMessagesInThreads, ChannelPermission.SendMessagesInThreads); | |||
| Permissions.SetValue(ref value, startEmbeddedActivities, ChannelPermission.StartEmbeddedActivities); | |||
| RawValue = value; | |||
| } | |||
| /// <summary> Creates a new <see cref="ChannelPermissions"/> with the provided permissions. </summary> | |||
| /// <summary> Creates a new <see cref="ChannelPermissions"/> with the provided permissions.</summary> | |||
| public ChannelPermissions( | |||
| bool createInstantInvite = false, | |||
| bool manageChannel = false, | |||
| @@ -165,13 +200,23 @@ namespace Discord | |||
| bool prioritySpeaker = false, | |||
| bool stream = false, | |||
| bool manageRoles = false, | |||
| bool manageWebhooks = false) | |||
| bool manageWebhooks = false, | |||
| bool useApplicationCommands = false, | |||
| bool requestToSpeak = false, | |||
| bool manageThreads = false, | |||
| bool createPublicThreads = false, | |||
| bool createPrivateThreads = false, | |||
| bool useExternalStickers = false, | |||
| bool sendMessagesInThreads = false, | |||
| bool startEmbeddedActivities = false) | |||
| : this(0, createInstantInvite, manageChannel, addReactions, viewChannel, sendMessages, sendTTSMessages, manageMessages, | |||
| embedLinks, attachFiles, readMessageHistory, mentionEveryone, useExternalEmojis, connect, | |||
| speak, muteMembers, deafenMembers, moveMembers, useVoiceActivation, prioritySpeaker, stream, manageRoles, manageWebhooks) | |||
| speak, muteMembers, deafenMembers, moveMembers, useVoiceActivation, prioritySpeaker, stream, manageRoles, manageWebhooks, | |||
| useApplicationCommands, requestToSpeak, manageThreads, createPublicThreads, createPrivateThreads, useExternalStickers, sendMessagesInThreads, | |||
| startEmbeddedActivities) | |||
| { } | |||
| /// <summary> Creates a new <see cref="ChannelPermissions"/> from this one, changing the provided non-null permissions. </summary> | |||
| /// <summary> Creates a new <see cref="ChannelPermissions"/> from this one, changing the provided non-null permissions.</summary> | |||
| public ChannelPermissions Modify( | |||
| bool? createInstantInvite = null, | |||
| bool? manageChannel = null, | |||
| @@ -194,7 +239,15 @@ namespace Discord | |||
| bool? prioritySpeaker = null, | |||
| bool? stream = null, | |||
| bool? manageRoles = null, | |||
| bool? manageWebhooks = null) | |||
| bool? manageWebhooks = null, | |||
| bool? useApplicationCommands = null, | |||
| bool? requestToSpeak = null, | |||
| bool? manageThreads = null, | |||
| bool? createPublicThreads = null, | |||
| bool? createPrivateThreads = null, | |||
| bool? useExternalStickers = null, | |||
| bool? sendMessagesInThreads = null, | |||
| bool? startEmbeddedActivities = null) | |||
| => new ChannelPermissions(RawValue, | |||
| createInstantInvite, | |||
| manageChannel, | |||
| @@ -217,7 +270,15 @@ namespace Discord | |||
| prioritySpeaker, | |||
| stream, | |||
| manageRoles, | |||
| manageWebhooks); | |||
| manageWebhooks, | |||
| useApplicationCommands, | |||
| requestToSpeak, | |||
| manageThreads, | |||
| createPublicThreads, | |||
| createPrivateThreads, | |||
| useExternalStickers, | |||
| sendMessagesInThreads, | |||
| startEmbeddedActivities); | |||
| public bool Has(ChannelPermission permission) => Permissions.GetValue(RawValue, permission); | |||
| @@ -178,8 +178,13 @@ namespace Discord | |||
| /// <summary> | |||
| /// Allows members to use slash commands in text channels. | |||
| /// </summary> | |||
| [Obsolete("UseSlashCommands has been replaced by UseApplicationCommands", true)] | |||
| UseSlashCommands = 0x80_00_00_00, | |||
| /// <summary> | |||
| /// Allows members to use application commands like slash commands and context menus in text channels. | |||
| /// </summary> | |||
| UseApplicationCommands = 0x80_00_00_00, | |||
| /// <summary> | |||
| /// Allows for requesting to speak in stage channels. <i>(This permission is under active development and may be changed or removed.)</i>. | |||
| /// </summary> | |||
| RequestToSpeak = 0x01_00_00_00_00, | |||
| @@ -202,12 +207,12 @@ namespace Discord | |||
| /// <summary> | |||
| /// Allows for creating public threads. | |||
| /// </summary> | |||
| [Obsolete("UsePublicThreads has been replaced by CreatePublicThreads and SendMessagesInThreads")] | |||
| [Obsolete("UsePublicThreads has been replaced by CreatePublicThreads and SendMessagesInThreads", true)] | |||
| UsePublicThreads = 0x08_00_00_00_00, | |||
| /// <summary> | |||
| /// Allows for creating private threads. | |||
| /// </summary> | |||
| [Obsolete("UsePrivateThreads has been replaced by CreatePrivateThreads and SendMessagesInThreads")] | |||
| [Obsolete("UsePrivateThreads has been replaced by CreatePrivateThreads and SendMessagesInThreads", true)] | |||
| UsePrivateThreads = 0x10_00_00_00_00, | |||
| /// <summary> | |||
| /// Allows the usage of custom stickers from other servers. | |||
| @@ -10,9 +10,9 @@ namespace Discord | |||
| /// <summary> Gets a blank <see cref="GuildPermissions"/> that grants no permissions. </summary> | |||
| public static readonly GuildPermissions None = new GuildPermissions(); | |||
| /// <summary> Gets a <see cref="GuildPermissions"/> that grants all guild permissions for webhook users. </summary> | |||
| public static readonly GuildPermissions Webhook = new GuildPermissions(0b00000_0000000_0001101100000_000000); | |||
| public static readonly GuildPermissions Webhook = new GuildPermissions(0b0_00000_0000000_0000000_0001101100000_000000); | |||
| /// <summary> Gets a <see cref="GuildPermissions"/> that grants all guild permissions. </summary> | |||
| public static readonly GuildPermissions All = new GuildPermissions(0b1111111111_11111_1111111_1111111111111_11111); | |||
| public static readonly GuildPermissions All = new GuildPermissions(0b1_11111_1111111_1111111_1111111111111_111111); | |||
| /// <summary> Gets a packed value representing all the permissions in this <see cref="GuildPermissions"/>. </summary> | |||
| public ulong RawValue { get; } | |||
| @@ -84,7 +84,7 @@ namespace Discord | |||
| /// <summary> If <c>true</c>, a user may edit the emojis and stickers for this guild. </summary> | |||
| public bool ManageEmojisAndStickers => Permissions.GetValue(RawValue, GuildPermission.ManageEmojisAndStickers); | |||
| /// <summary> If <c>true</c>, a user may use slash commands in this guild. </summary> | |||
| public bool UseSlashCommands => Permissions.GetValue(RawValue, GuildPermission.UseSlashCommands); | |||
| public bool UseApplicationCommands => Permissions.GetValue(RawValue, GuildPermission.UseApplicationCommands); | |||
| /// <summary> If <c>true</c>, a user may request to speak in stage channels. </summary> | |||
| public bool RequestToSpeak => Permissions.GetValue(RawValue, GuildPermission.RequestToSpeak); | |||
| /// <summary> If <c>true</c>, a user may manage threads in this guild. </summary> | |||
| @@ -93,10 +93,6 @@ namespace Discord | |||
| public bool CreatePublicThreads => Permissions.GetValue(RawValue, GuildPermission.CreatePublicThreads); | |||
| /// <summary> If <c>true</c>, a user may create private threads in this guild. </summary> | |||
| public bool CreatePrivateThreads => Permissions.GetValue(RawValue, GuildPermission.CreatePrivateThreads); | |||
| /// <summary> If <c>true</c>, a user may use public threads in this guild. </summary> | |||
| public bool UsePublicThreads => Permissions.GetValue(RawValue, GuildPermission.UsePublicThreads); | |||
| /// <summary> If <c>true</c>, a user may use private threads in this guild. </summary> | |||
| public bool UsePrivateThreads => Permissions.GetValue(RawValue, GuildPermission.UsePrivateThreads); | |||
| /// <summary> If <c>true</c>, a user may use external stickers in this guild. </summary> | |||
| public bool UseExternalStickers => Permissions.GetValue(RawValue, GuildPermission.UseExternalStickers); | |||
| /// <summary> If <c>true</c>, a user may send messages in threads in this guild. </summary> | |||
| @@ -142,13 +138,11 @@ namespace Discord | |||
| bool? manageRoles = null, | |||
| bool? manageWebhooks = null, | |||
| bool? manageEmojisAndStickers = null, | |||
| bool? useSlashCommands = null, | |||
| bool? useApplicationCommands = null, | |||
| bool? requestToSpeak = null, | |||
| bool? manageThreads = null, | |||
| bool? createPublicThreads = null, | |||
| bool? createPrivateThreads = null, | |||
| bool? usePublicThreads = null, | |||
| bool? usePrivateThreads = null, | |||
| bool? useExternalStickers = null, | |||
| bool? sendMessagesInThreads = null, | |||
| bool? startEmbeddedActivities = null) | |||
| @@ -186,13 +180,11 @@ namespace Discord | |||
| Permissions.SetValue(ref value, manageRoles, GuildPermission.ManageRoles); | |||
| Permissions.SetValue(ref value, manageWebhooks, GuildPermission.ManageWebhooks); | |||
| Permissions.SetValue(ref value, manageEmojisAndStickers, GuildPermission.ManageEmojisAndStickers); | |||
| Permissions.SetValue(ref value, useSlashCommands, GuildPermission.UseSlashCommands); | |||
| Permissions.SetValue(ref value, useApplicationCommands, GuildPermission.UseApplicationCommands); | |||
| Permissions.SetValue(ref value, requestToSpeak, GuildPermission.RequestToSpeak); | |||
| Permissions.SetValue(ref value, manageThreads, GuildPermission.ManageThreads); | |||
| Permissions.SetValue(ref value, createPublicThreads, GuildPermission.CreatePublicThreads); | |||
| Permissions.SetValue(ref value, createPrivateThreads, GuildPermission.CreatePrivateThreads); | |||
| Permissions.SetValue(ref value, usePublicThreads, GuildPermission.UsePublicThreads); | |||
| Permissions.SetValue(ref value, usePrivateThreads, GuildPermission.UsePrivateThreads); | |||
| Permissions.SetValue(ref value, useExternalStickers, GuildPermission.UseExternalStickers); | |||
| Permissions.SetValue(ref value, sendMessagesInThreads, GuildPermission.SendMessagesInThreads); | |||
| Permissions.SetValue(ref value, startEmbeddedActivities, GuildPermission.StartEmbeddedActivities); | |||
| @@ -233,13 +225,11 @@ namespace Discord | |||
| bool manageRoles = false, | |||
| bool manageWebhooks = false, | |||
| bool manageEmojisAndStickers = false, | |||
| bool useSlashCommands = false, | |||
| bool useApplicationCommands = false, | |||
| bool requestToSpeak = false, | |||
| bool manageThreads = false, | |||
| bool createPublicThreads = false, | |||
| bool createPrivateThreads = false, | |||
| bool usePublicThreads = false, | |||
| bool usePrivateThreads = false, | |||
| bool useExternalStickers = false, | |||
| bool sendMessagesInThreads = false, | |||
| bool startEmbeddedActivities = false) | |||
| @@ -275,13 +265,11 @@ namespace Discord | |||
| manageNicknames: manageNicknames, | |||
| manageWebhooks: manageWebhooks, | |||
| manageEmojisAndStickers: manageEmojisAndStickers, | |||
| useSlashCommands: useSlashCommands, | |||
| useApplicationCommands: useApplicationCommands, | |||
| requestToSpeak: requestToSpeak, | |||
| manageThreads: manageThreads, | |||
| createPublicThreads: createPublicThreads, | |||
| createPrivateThreads: createPrivateThreads, | |||
| usePublicThreads: usePublicThreads, | |||
| usePrivateThreads: usePrivateThreads, | |||
| useExternalStickers: useExternalStickers, | |||
| sendMessagesInThreads: sendMessagesInThreads, | |||
| startEmbeddedActivities: startEmbeddedActivities) | |||
| @@ -320,13 +308,11 @@ namespace Discord | |||
| bool? manageRoles = null, | |||
| bool? manageWebhooks = null, | |||
| bool? manageEmojisAndStickers = null, | |||
| bool? useSlashCommands = null, | |||
| bool? useApplicationCommands = null, | |||
| bool? requestToSpeak = null, | |||
| bool? manageThreads = null, | |||
| bool? createPublicThreads = null, | |||
| bool? createPrivateThreads = null, | |||
| bool? usePublicThreads = null, | |||
| bool? usePrivateThreads = null, | |||
| bool? useExternalStickers = null, | |||
| bool? sendMessagesInThreads = null, | |||
| bool? startEmbeddedActivities = null) | |||
| @@ -334,7 +320,7 @@ namespace Discord | |||
| viewAuditLog, viewGuildInsights, viewChannel, sendMessages, sendTTSMessages, manageMessages, embedLinks, attachFiles, | |||
| readMessageHistory, mentionEveryone, useExternalEmojis, connect, speak, muteMembers, deafenMembers, moveMembers, | |||
| useVoiceActivation, prioritySpeaker, stream, changeNickname, manageNicknames, manageRoles, manageWebhooks, manageEmojisAndStickers, | |||
| useSlashCommands, requestToSpeak, manageThreads, createPublicThreads, createPrivateThreads, usePublicThreads, usePrivateThreads, useExternalStickers, sendMessagesInThreads, | |||
| useApplicationCommands, requestToSpeak, manageThreads, createPublicThreads, createPrivateThreads, useExternalStickers, sendMessagesInThreads, | |||
| startEmbeddedActivities); | |||
| /// <summary> | |||
| @@ -1,3 +1,4 @@ | |||
| using Newtonsoft.Json.Linq; | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Diagnostics; | |||
| @@ -82,6 +83,22 @@ namespace Discord | |||
| public PermValue ManageRoles => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.ManageRoles); | |||
| /// <summary> If True, a user may edit the webhooks for this channel. </summary> | |||
| public PermValue ManageWebhooks => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.ManageWebhooks); | |||
| /// <summary> If <c>true</c>, a user may use slash commands in this guild. </summary> | |||
| public PermValue UseApplicationCommands => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.UseApplicationCommands); | |||
| /// <summary> If <c>true</c>, a user may request to speak in stage channels. </summary> | |||
| public PermValue RequestToSpeak => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.RequestToSpeak); | |||
| /// <summary> If <c>true</c>, a user may manage threads in this guild. </summary> | |||
| public PermValue ManageThreads => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.ManageThreads); | |||
| /// <summary> If <c>true</c>, a user may create public threads in this guild. </summary> | |||
| public PermValue CreatePublicThreads => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.CreatePublicThreads); | |||
| /// <summary> If <c>true</c>, a user may create private threads in this guild. </summary> | |||
| public PermValue CreatePrivateThreads => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.CreatePrivateThreads); | |||
| /// <summary> If <c>true</c>, a user may use external stickers in this guild. </summary> | |||
| public PermValue UseExternalStickers => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.UseExternalStickers); | |||
| /// <summary> If <c>true</c>, a user may send messages in threads in this guild. </summary> | |||
| public PermValue SendMessagesInThreads => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.SendMessagesInThreads); | |||
| /// <summary> If <c>true</c>, a user launch application activites in voice channels in this guild. </summary> | |||
| public PermValue StartEmbeddedActivities => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.StartEmbeddedActivities); | |||
| /// <summary> Creates a new OverwritePermissions with the provided allow and deny packed values. </summary> | |||
| public OverwritePermissions(ulong allowValue, ulong denyValue) | |||
| @@ -119,7 +136,18 @@ namespace Discord | |||
| PermValue? manageRoles = null, | |||
| PermValue? manageWebhooks = null, | |||
| PermValue? prioritySpeaker = null, | |||
| PermValue? stream = null) | |||
| PermValue? stream = null, | |||
| PermValue? useSlashCommands = null, | |||
| PermValue? useApplicationCommands = null, | |||
| PermValue? requestToSpeak = null, | |||
| PermValue? manageThreads = null, | |||
| PermValue? createPublicThreads = null, | |||
| PermValue? createPrivateThreads = null, | |||
| PermValue? usePublicThreads = null, | |||
| PermValue? usePrivateThreads = null, | |||
| PermValue? useExternalStickers = null, | |||
| PermValue? sendMessagesInThreads = null, | |||
| PermValue? startEmbeddedActivities = null) | |||
| { | |||
| Permissions.SetValue(ref allowValue, ref denyValue, createInstantInvite, ChannelPermission.CreateInstantInvite); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, manageChannel, ChannelPermission.ManageChannels); | |||
| @@ -143,6 +171,14 @@ namespace Discord | |||
| Permissions.SetValue(ref allowValue, ref denyValue, stream, ChannelPermission.Stream); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, manageRoles, ChannelPermission.ManageRoles); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, manageWebhooks, ChannelPermission.ManageWebhooks); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, useApplicationCommands, ChannelPermission.UseApplicationCommands); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, requestToSpeak, ChannelPermission.RequestToSpeak); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, manageThreads, ChannelPermission.ManageThreads); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, createPublicThreads, ChannelPermission.CreatePublicThreads); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, createPrivateThreads, ChannelPermission.CreatePrivateThreads); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, useExternalStickers, ChannelPermission.UseExternalStickers); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, sendMessagesInThreads, ChannelPermission.SendMessagesInThreads); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, startEmbeddedActivities, ChannelPermission.StartEmbeddedActivities); | |||
| AllowValue = allowValue; | |||
| DenyValue = denyValue; | |||
| @@ -173,10 +209,23 @@ namespace Discord | |||
| PermValue manageRoles = PermValue.Inherit, | |||
| PermValue manageWebhooks = PermValue.Inherit, | |||
| PermValue prioritySpeaker = PermValue.Inherit, | |||
| PermValue stream = PermValue.Inherit) | |||
| PermValue stream = PermValue.Inherit, | |||
| PermValue useSlashCommands = PermValue.Inherit, | |||
| PermValue useApplicationCommands = PermValue.Inherit, | |||
| PermValue requestToSpeak = PermValue.Inherit, | |||
| PermValue manageThreads = PermValue.Inherit, | |||
| PermValue createPublicThreads = PermValue.Inherit, | |||
| PermValue createPrivateThreads = PermValue.Inherit, | |||
| PermValue usePublicThreads = PermValue.Inherit, | |||
| PermValue usePrivateThreads = PermValue.Inherit, | |||
| PermValue useExternalStickers = PermValue.Inherit, | |||
| PermValue sendMessagesInThreads = PermValue.Inherit, | |||
| PermValue startEmbeddedActivities = PermValue.Inherit) | |||
| : this(0, 0, createInstantInvite, manageChannel, addReactions, viewChannel, sendMessages, sendTTSMessages, manageMessages, | |||
| embedLinks, attachFiles, readMessageHistory, mentionEveryone, useExternalEmojis, connect, speak, muteMembers, deafenMembers, | |||
| moveMembers, useVoiceActivation, manageRoles, manageWebhooks, prioritySpeaker, stream) { } | |||
| moveMembers, useVoiceActivation, manageRoles, manageWebhooks, prioritySpeaker, stream, useSlashCommands, useApplicationCommands, | |||
| requestToSpeak, manageThreads, createPublicThreads, createPrivateThreads, usePublicThreads, usePrivateThreads, useExternalStickers, | |||
| sendMessagesInThreads, startEmbeddedActivities) { } | |||
| /// <summary> | |||
| /// Initializes a new <see cref="OverwritePermissions" /> from the current one, changing the provided | |||
| @@ -204,10 +253,23 @@ namespace Discord | |||
| PermValue? manageRoles = null, | |||
| PermValue? manageWebhooks = null, | |||
| PermValue? prioritySpeaker = null, | |||
| PermValue? stream = null) | |||
| PermValue? stream = null, | |||
| PermValue? useSlashCommands = null, | |||
| PermValue? useApplicationCommands = null, | |||
| PermValue? requestToSpeak = null, | |||
| PermValue? manageThreads = null, | |||
| PermValue? createPublicThreads = null, | |||
| PermValue? createPrivateThreads = null, | |||
| PermValue? usePublicThreads = null, | |||
| PermValue? usePrivateThreads = null, | |||
| PermValue? useExternalStickers = null, | |||
| PermValue? sendMessagesInThreads = null, | |||
| PermValue? startEmbeddedActivities = null) | |||
| => new OverwritePermissions(AllowValue, DenyValue, createInstantInvite, manageChannel, addReactions, viewChannel, sendMessages, sendTTSMessages, manageMessages, | |||
| embedLinks, attachFiles, readMessageHistory, mentionEveryone, useExternalEmojis, connect, speak, muteMembers, deafenMembers, | |||
| moveMembers, useVoiceActivation, manageRoles, manageWebhooks, prioritySpeaker, stream); | |||
| moveMembers, useVoiceActivation, manageRoles, manageWebhooks, prioritySpeaker, stream, useSlashCommands, useApplicationCommands, | |||
| requestToSpeak, manageThreads, createPublicThreads, createPrivateThreads, usePublicThreads, usePrivateThreads, useExternalStickers, | |||
| sendMessagesInThreads, startEmbeddedActivities); | |||
| /// <summary> | |||
| /// Creates a <see cref="List{T}"/> of all the <see cref="ChannelPermission"/> values that are allowed. | |||
| @@ -3243,7 +3243,6 @@ | |||
| <summary> | |||
| Gets a collection of all stage channels in this guild. | |||
| </summary> | |||
| <param name="mode">The <see cref="T:Discord.CacheMode"/> that determines whether the object should be fetched from cache.</param> | |||
| <param name="options">The options to be used when sending the request.</param> | |||
| <returns> | |||
| A task that represents the asynchronous get operation. The task result contains a read-only collection of | |||
| @@ -4286,10 +4286,6 @@ | |||
| <member name="M:Discord.WebSocket.SocketInteraction.RespondAsync(System.String,Discord.Embed[],System.Boolean,System.Boolean,Discord.AllowedMentions,Discord.RequestOptions,Discord.MessageComponent,Discord.Embed)"> | |||
| <summary> | |||
| Responds to an Interaction with type <see cref="F:Discord.InteractionResponseType.ChannelMessageWithSource"/>. | |||
| <para> | |||
| If you have <see cref="!:DiscordSocketConfig.AlwaysAcknowledgeInteractions"/> set to <see langword="true"/>, You should use | |||
| <see cref="M:Discord.WebSocket.SocketInteraction.FollowupAsync(System.String,Discord.Embed[],System.Boolean,System.Boolean,Discord.AllowedMentions,Discord.RequestOptions,Discord.MessageComponent,Discord.Embed)"/> instead. | |||
| </para> | |||
| </summary> | |||
| <param name="text">The text of the message to be sent.</param> | |||
| <param name="embeds">A array of embeds to send with this response. Max 10.</param> | |||
| @@ -85,6 +85,10 @@ namespace Discord | |||
| AssertFlag(() => new ChannelPermissions(stream: true), ChannelPermission.Stream); | |||
| AssertFlag(() => new ChannelPermissions(manageRoles: true), ChannelPermission.ManageRoles); | |||
| AssertFlag(() => new ChannelPermissions(manageWebhooks: true), ChannelPermission.ManageWebhooks); | |||
| AssertFlag(() => new ChannelPermissions(useApplicationCommands: true), ChannelPermission.UseApplicationCommands); | |||
| AssertFlag(() => new ChannelPermissions(createPrivateThreads: true), ChannelPermission.CreatePrivateThreads); | |||
| AssertFlag(() => new ChannelPermissions(createPublicThreads: true), ChannelPermission.CreatePublicThreads); | |||
| AssertFlag(() => new ChannelPermissions(sendMessagesInThreads: true), ChannelPermission.SendMessagesInThreads); | |||
| } | |||
| /// <summary> | |||
| @@ -15,7 +15,7 @@ namespace Discord | |||
| { | |||
| Assert.Equal(0u, new Color().RawValue); | |||
| Assert.Equal(uint.MinValue, new Color(uint.MinValue).RawValue); | |||
| Assert.Equal(uint.MaxValue, new Color(uint.MaxValue).RawValue); | |||
| Assert.Throws<ArgumentException>(() => new Color(uint.MaxValue)); | |||
| } | |||
| [Fact] | |||
| public void Color_Default() | |||
| @@ -92,7 +92,7 @@ namespace Discord | |||
| AssertFlag(() => new GuildPermissions(manageRoles: true), GuildPermission.ManageRoles); | |||
| AssertFlag(() => new GuildPermissions(manageWebhooks: true), GuildPermission.ManageWebhooks); | |||
| AssertFlag(() => new GuildPermissions(manageEmojisAndStickers: true), GuildPermission.ManageEmojisAndStickers); | |||
| AssertFlag(() => new GuildPermissions(useSlashCommands: true), GuildPermission.UseSlashCommands); | |||
| AssertFlag(() => new GuildPermissions(useApplicationCommands: true), GuildPermission.UseApplicationCommands); | |||
| AssertFlag(() => new GuildPermissions(requestToSpeak: true), GuildPermission.RequestToSpeak); | |||
| AssertFlag(() => new GuildPermissions(manageThreads: true), GuildPermission.ManageThreads); | |||
| AssertFlag(() => new GuildPermissions(createPublicThreads: true), GuildPermission.CreatePublicThreads); | |||
| @@ -168,7 +168,7 @@ namespace Discord | |||
| AssertUtil(GuildPermission.ManageRoles, x => x.ManageRoles, (p, enable) => p.Modify(manageRoles: enable)); | |||
| AssertUtil(GuildPermission.ManageWebhooks, x => x.ManageWebhooks, (p, enable) => p.Modify(manageWebhooks: enable)); | |||
| AssertUtil(GuildPermission.ManageEmojisAndStickers, x => x.ManageEmojisAndStickers, (p, enable) => p.Modify(manageEmojisAndStickers: enable)); | |||
| AssertUtil(GuildPermission.UseSlashCommands, x => x.UseSlashCommands, (p, enable) => p.Modify(useSlashCommands: enable)); | |||
| AssertUtil(GuildPermission.UseApplicationCommands, x => x.UseApplicationCommands, (p, enable) => p.Modify(useApplicationCommands: enable)); | |||
| AssertUtil(GuildPermission.RequestToSpeak, x => x.RequestToSpeak, (p, enable) => p.Modify(requestToSpeak: enable)); | |||
| AssertUtil(GuildPermission.ManageThreads, x => x.ManageThreads, (p, enable) => p.Modify(manageThreads: enable)); | |||
| AssertUtil(GuildPermission.CreatePublicThreads, x => x.CreatePublicThreads, (p, enable) => p.Modify(createPublicThreads: enable)); | |||