diff --git a/src/Discord.Net.Core/Entities/Permissions/GuildPermission.cs b/src/Discord.Net.Core/Entities/Permissions/GuildPermission.cs
index 89ee20b9f..53b666b1a 100644
--- a/src/Discord.Net.Core/Entities/Permissions/GuildPermission.cs
+++ b/src/Discord.Net.Core/Entities/Permissions/GuildPermission.cs
@@ -192,17 +192,35 @@ namespace Discord
///
ManageThreads = 0x04_00_00_00_00,
///
- /// Allows for creating and participating in threads.
+ /// Allows for creating public threads.
///
- UsePublicThreads = 0x08_00_00_00_00,
+ CreatePublicThreads = 0x08_00_00_00_00,
///
- /// Allows for creating and participating in private threads.
+ /// Allows for creating private threads.
///
- UsePrivateThreads = 0x10_00_00_00_00,
+ CreatePrivateThreads = 0x10_00_00_00_00,
+ ///
+ /// Allows for creating public threads.
+ ///
+ [Obsolete("UsePublicThreads has been replaced by CreatePublicThreads and SendMessagesInThreads")]
+ UsePublicThreads = 0x08_00_00_00_00,
+ ///
+ /// Allows for creating private threads.
+ ///
+ [Obsolete("UsePrivateThreads has been replaced by CreatePrivateThreads and SendMessagesInThreads")]
+ UsePrivateThreads = 0x10_00_00_00_00,
///
/// Allows the usage of custom stickers from other servers.
///
- UseExternalStickers = 0x20_00_00_00_00
+ UseExternalStickers = 0x20_00_00_00_00,
+ ///
+ /// Allows for sending messages in threads.
+ ///
+ SendMessagesInThreads = 0x40_00_00_00_00,
+ ///
+ /// Allows for launching activities (applications with the EMBEDDED flag) in a voice channel.
+ ///
+ StartEmbeddedActivities = 0x80_00_00_00_00
}
}
diff --git a/src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs b/src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs
index 6c03ed0ad..05a2a7680 100644
--- a/src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs
+++ b/src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs
@@ -12,7 +12,7 @@ namespace Discord
/// Gets a that grants all guild permissions for webhook users.
public static readonly GuildPermissions Webhook = new GuildPermissions(0b00000_0000000_0001101100000_000000);
/// Gets a that grants all guild permissions.
- public static readonly GuildPermissions All = new GuildPermissions(0b11111111_11111_1111111_1111111111111_11111);
+ public static readonly GuildPermissions All = new GuildPermissions(0b1111111111_11111_1111111_1111111111111_11111);
/// Gets a packed value representing all the permissions in this .
public ulong RawValue { get; }
@@ -90,11 +90,15 @@ namespace Discord
/// If true, a user may manage threads in this guild.
public bool ManageThreads => Permissions.GetValue(RawValue, GuildPermission.ManageThreads);
/// If true, a user may create public threads in this guild.
- public bool UsePublicThreads => Permissions.GetValue(RawValue, GuildPermission.UsePublicThreads);
+ public bool CreatePublicThreads => Permissions.GetValue(RawValue, GuildPermission.CreatePublicThreads);
/// If true, a user may create private threads in this guild.
- public bool UsePrivateThreads => Permissions.GetValue(RawValue, GuildPermission.UsePrivateThreads);
+ public bool CreatePrivateThreads => Permissions.GetValue(RawValue, GuildPermission.CreatePrivateThreads);
/// If true, a user may use external stickers in this guild.
public bool UseExternalStickers => Permissions.GetValue(RawValue, GuildPermission.UseExternalStickers);
+ /// If true, a user may send messages in threads in this guild.
+ public bool SendMessagesInThreads => Permissions.GetValue(RawValue, GuildPermission.SendMessagesInThreads);
+ /// If true, a user launch application activites in voice channels in this guild.
+ public bool StartEmbeddedActivities => Permissions.GetValue(RawValue, GuildPermission.StartEmbeddedActivities);
/// Creates a new with the provided packed value.
public GuildPermissions(ulong rawValue) { RawValue = rawValue; }
@@ -137,9 +141,11 @@ namespace Discord
bool? useSlashCommands = null,
bool? requestToSpeak = null,
bool? manageThreads = null,
- bool? usePublicThreads = null,
- bool? usePrivateThreads = null,
- bool? useExternalStickers = null)
+ bool? createPublicThreads = null,
+ bool? createPrivateThreads = null,
+ bool? useExternalStickers = null,
+ bool? sendMessagesInThreads = null,
+ bool? startEmbeddedActivities = null)
{
ulong value = initialValue;
@@ -177,9 +183,11 @@ namespace Discord
Permissions.SetValue(ref value, useSlashCommands, GuildPermission.UseSlashCommands);
Permissions.SetValue(ref value, requestToSpeak, GuildPermission.RequestToSpeak);
Permissions.SetValue(ref value, manageThreads, GuildPermission.ManageThreads);
- Permissions.SetValue(ref value, usePublicThreads, GuildPermission.UsePublicThreads);
- Permissions.SetValue(ref value, usePrivateThreads, GuildPermission.UseExternalStickers);
+ Permissions.SetValue(ref value, createPublicThreads, GuildPermission.CreatePublicThreads);
+ Permissions.SetValue(ref value, createPrivateThreads, GuildPermission.CreatePrivateThreads);
Permissions.SetValue(ref value, useExternalStickers, GuildPermission.UseExternalStickers);
+ Permissions.SetValue(ref value, sendMessagesInThreads, GuildPermission.SendMessagesInThreads);
+ Permissions.SetValue(ref value, startEmbeddedActivities, GuildPermission.StartEmbeddedActivities);
RawValue = value;
}
@@ -220,9 +228,11 @@ namespace Discord
bool useSlashCommands = false,
bool requestToSpeak = false,
bool manageThreads = false,
- bool usePublicThreads = false,
- bool usePrivateThreads = false,
- bool useExternalStickers = false)
+ bool createPublicThreads = false,
+ bool createPrivateThreads = false,
+ bool useExternalStickers = false,
+ bool sendMessagesInThreads = false,
+ bool startEmbeddedActivities = false)
: this(0,
createInstantInvite: createInstantInvite,
manageRoles: manageRoles,
@@ -258,9 +268,11 @@ namespace Discord
useSlashCommands: useSlashCommands,
requestToSpeak: requestToSpeak,
manageThreads: manageThreads,
- usePublicThreads: usePublicThreads,
- usePrivateThreads: usePrivateThreads,
- useExternalStickers: useExternalStickers)
+ createPublicThreads: createPublicThreads,
+ createPrivateThreads: createPrivateThreads,
+ useExternalStickers: useExternalStickers,
+ sendMessagesInThreads: sendMessagesInThreads,
+ startEmbeddedActivities: startEmbeddedActivities)
{ }
/// Creates a new from this one, changing the provided non-null permissions.
@@ -299,14 +311,17 @@ namespace Discord
bool? useSlashCommands = null,
bool? requestToSpeak = null,
bool? manageThreads = null,
- bool? usePublicThreads = null,
- bool? usePrivateThreads = null,
- bool? useExternalStickers = null)
+ bool? createPublicThreads = null,
+ bool? createPrivateThreads = null,
+ bool? useExternalStickers = null,
+ bool? sendMessagesInThreads = null,
+ bool? startEmbeddedActivities = null)
=> new GuildPermissions(RawValue, createInstantInvite, kickMembers, banMembers, administrator, manageChannels, manageGuild, addReactions,
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, usePublicThreads, usePrivateThreads, useExternalStickers);
+ useSlashCommands, requestToSpeak, manageThreads, createPublicThreads, createPrivateThreads, useExternalStickers, sendMessagesInThreads,
+ startEmbeddedActivities);
///
/// Returns a value that indicates if a specific is enabled