diff --git a/src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs~RF343bc3.TMP b/src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs~RF343bc3.TMP deleted file mode 100644 index a5cede525..000000000 --- a/src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs~RF343bc3.TMP +++ /dev/null @@ -1,261 +0,0 @@ -using System.Collections.Generic; -using System.Diagnostics; - -namespace Discord -{ - [DebuggerDisplay(@"{DebuggerDisplay,nq}")] - public struct GuildPermissions - { - /// Gets a blank GuildPermissions that grants no permissions. - public static readonly GuildPermissions None = new GuildPermissions(); - /// Gets a GuildPermissions that grants all guild permissions for webhook users. - public static readonly GuildPermissions Webhook = new GuildPermissions(0b00000_0000000_0001101100000_000000); - /// Gets a GuildPermissions that grants all guild permissions. - public static readonly GuildPermissions All = new GuildPermissions(0b11111_1111110_1111111110011_111111); - - /// Gets a packed value representing all the permissions in this GuildPermissions. - public ulong RawValue { get; } - - /// If True, a user may create invites. - public bool CreateInstantInvite => Permissions.GetValue(RawValue, GuildPermission.CreateInstantInvite); - /// If True, a user may ban users from the guild. - public bool BanMembers => Permissions.GetValue(RawValue, GuildPermission.BanMembers); - /// If True, a user may kick users from the guild. - public bool KickMembers => Permissions.GetValue(RawValue, GuildPermission.KickMembers); - /// If True, a user is granted all permissions, and cannot have them revoked via channel permissions. - public bool Administrator => Permissions.GetValue(RawValue, GuildPermission.Administrator); - /// If True, a user may create, delete and modify channels. - public bool ManageChannels => Permissions.GetValue(RawValue, GuildPermission.ManageChannels); - /// If True, a user may adjust guild properties. - public bool ManageGuild => Permissions.GetValue(RawValue, GuildPermission.ManageGuild); - - /// If true, a user may add reactions. - public bool AddReactions => Permissions.GetValue(RawValue, GuildPermission.AddReactions); - /// If true, a user may view the audit log. - public bool ViewAuditLog => Permissions.GetValue(RawValue, GuildPermission.ViewAuditLog); - - /// If True, a user may join channels. - public bool ReadMessages => Permissions.GetValue(RawValue, GuildPermission.ReadMessages); - /// If True, a user may send messages. - public bool SendMessages => Permissions.GetValue(RawValue, GuildPermission.SendMessages); - /// If True, a user may send text-to-speech messages. - public bool SendTTSMessages => Permissions.GetValue(RawValue, GuildPermission.SendTTSMessages); - /// If True, a user may delete messages. - public bool ManageMessages => Permissions.GetValue(RawValue, GuildPermission.ManageMessages); - /// If True, Discord will auto-embed links sent by this user. - public bool EmbedLinks => Permissions.GetValue(RawValue, GuildPermission.EmbedLinks); - /// If True, a user may send files. - public bool AttachFiles => Permissions.GetValue(RawValue, GuildPermission.AttachFiles); - /// If True, a user may read previous messages. - public bool ReadMessageHistory => Permissions.GetValue(RawValue, GuildPermission.ReadMessageHistory); - /// If True, a user may mention @everyone. - public bool MentionEveryone => Permissions.GetValue(RawValue, GuildPermission.MentionEveryone); - /// If True, a user may use custom emoji from other guilds. - public bool UseExternalEmojis => Permissions.GetValue(RawValue, GuildPermission.UseExternalEmojis); - - /// If True, a user may connect to a voice channel. - public bool Connect => Permissions.GetValue(RawValue, GuildPermission.Connect); - /// If True, a user may speak in a voice channel. - public bool Speak => Permissions.GetValue(RawValue, GuildPermission.Speak); - /// If True, a user may mute users. - public bool MuteMembers => Permissions.GetValue(RawValue, GuildPermission.MuteMembers); - /// If True, a user may deafen users. - public bool DeafenMembers => Permissions.GetValue(RawValue, GuildPermission.DeafenMembers); - /// If True, a user may move other users between voice channels. - public bool MoveMembers => Permissions.GetValue(RawValue, GuildPermission.MoveMembers); - /// If True, a user may use voice-activity-detection rather than push-to-talk. - public bool UseVAD => Permissions.GetValue(RawValue, GuildPermission.UseVAD); - - /// If True, a user may change their own nickname. - public bool ChangeNickname => Permissions.GetValue(RawValue, GuildPermission.ChangeNickname); - /// If True, a user may change the nickname of other users. - public bool ManageNicknames => Permissions.GetValue(RawValue, GuildPermission.ManageNicknames); - /// If True, a user may adjust roles. - public bool ManageRoles => Permissions.GetValue(RawValue, GuildPermission.ManageRoles); - /// If True, a user may edit the webhooks for this guild. - public bool ManageWebhooks => Permissions.GetValue(RawValue, GuildPermission.ManageWebhooks); - /// If True, a user may edit the emojis for this guild. - public bool ManageEmojis => Permissions.GetValue(RawValue, GuildPermission.ManageEmojis); - - /// Creates a new GuildPermissions with the provided packed value. - public GuildPermissions(ulong rawValue) { RawValue = rawValue; } - - private GuildPermissions(ulong initialValue, - bool? createInstantInvite = null, - bool? kickMembers = null, - bool? banMembers = null, - bool? administrator = null, - bool? manageChannels = null, - bool? manageGuild = null, - bool? addReactions = null, - bool? viewAuditLog = null, - bool? readMessages = null, - bool? sendMessages = null, - bool? sendTTSMessages = null, - bool? manageMessages = null, - bool? embedLinks = null, - bool? attachFiles = null, - bool? readMessageHistory = null, - bool? mentionEveryone = null, - bool? useExternalEmojis = null, - bool? connect = null, - bool? speak = null, - bool? muteMembers = null, - bool? deafenMembers = null, - bool? moveMembers = null, - bool? useVoiceActivation = null, - bool? changeNickname = null, - bool? manageNicknames = null, - bool? manageRoles = null, - bool? manageWebhooks = null, - bool? manageEmojis = null) - { - ulong value = initialValue; - - Permissions.SetValue(ref value, createInstantInvite, GuildPermission.CreateInstantInvite); - Permissions.SetValue(ref value, banMembers, GuildPermission.BanMembers); - Permissions.SetValue(ref value, kickMembers, GuildPermission.KickMembers); - Permissions.SetValue(ref value, administrator, GuildPermission.Administrator); - Permissions.SetValue(ref value, manageChannels, GuildPermission.ManageChannels); - Permissions.SetValue(ref value, manageGuild, GuildPermission.ManageGuild); - Permissions.SetValue(ref value, addReactions, GuildPermission.AddReactions); - Permissions.SetValue(ref value, viewAuditLog, GuildPermission.ViewAuditLog); - Permissions.SetValue(ref value, readMessages, GuildPermission.ReadMessages); - Permissions.SetValue(ref value, sendMessages, GuildPermission.SendMessages); - Permissions.SetValue(ref value, sendTTSMessages, GuildPermission.SendTTSMessages); - Permissions.SetValue(ref value, manageMessages, GuildPermission.ManageMessages); - Permissions.SetValue(ref value, embedLinks, GuildPermission.EmbedLinks); - Permissions.SetValue(ref value, attachFiles, GuildPermission.AttachFiles); - Permissions.SetValue(ref value, readMessageHistory, GuildPermission.ReadMessageHistory); - Permissions.SetValue(ref value, mentionEveryone, GuildPermission.MentionEveryone); - Permissions.SetValue(ref value, useExternalEmojis, GuildPermission.UseExternalEmojis); - Permissions.SetValue(ref value, connect, GuildPermission.Connect); - Permissions.SetValue(ref value, speak, GuildPermission.Speak); - Permissions.SetValue(ref value, muteMembers, GuildPermission.MuteMembers); - Permissions.SetValue(ref value, deafenMembers, GuildPermission.DeafenMembers); - Permissions.SetValue(ref value, moveMembers, GuildPermission.MoveMembers); - Permissions.SetValue(ref value, useVoiceActivation, GuildPermission.UseVAD); - Permissions.SetValue(ref value, changeNickname, GuildPermission.ChangeNickname); - Permissions.SetValue(ref value, manageNicknames, GuildPermission.ManageNicknames); - Permissions.SetValue(ref value, manageRoles, GuildPermission.ManageRoles); - Permissions.SetValue(ref value, manageWebhooks, GuildPermission.ManageWebhooks); - Permissions.SetValue(ref value, manageEmojis, GuildPermission.ManageEmojis); - - RawValue = value; - } - - /// Creates a new GuildPermissions with the provided permissions. - public GuildPermissions( - bool createInstantInvite = false, - bool kickMembers = false, - bool banMembers = false, - bool administrator = false, - bool manageChannels = false, - bool manageGuild = false, - bool addReactions = false, - bool viewAuditLog = false, - bool readMessages = false, - bool sendMessages = false, - bool sendTTSMessages = false, - bool manageMessages = false, - bool embedLinks = false, - bool attachFiles = false, - bool readMessageHistory = false, - bool mentionEveryone = false, - bool useExternalEmojis = false, - bool connect = false, - bool speak = false, - bool muteMembers = false, - bool deafenMembers = false, - bool moveMembers = false, - bool useVoiceActivation = false, - bool changeNickname = false, - bool manageNicknames = false, - bool manageRoles = false, - bool manageWebhooks = false, - bool manageEmojis = false) - : this(0, - createInstantInvite: createInstantInvite, - manageRoles: manageRoles, - kickMembers: kickMembers, - banMembers: banMembers, - administrator: administrator, - manageChannels: manageChannels, - manageGuild: manageGuild, - addReactions: addReactions, - viewAuditLog: viewAuditLog, - readMessages: readMessages, - sendMessages: sendMessages, - sendTTSMessages: sendTTSMessages, - manageMessages: manageMessages, - embedLinks: embedLinks, - attachFiles: attachFiles, - readMessageHistory: readMessageHistory, - mentionEveryone: mentionEveryone, - useExternalEmojis: useExternalEmojis, - connect: connect, - speak: speak, - muteMembers: muteMembers, - deafenMembers: deafenMembers, - moveMembers: moveMembers, - useVoiceActivation: useVoiceActivation, - changeNickname: changeNickname, - manageNicknames: manageNicknames, - manageWebhooks: manageWebhooks, - manageEmojis: manageEmojis) - { } - - /// Creates a new GuildPermissions from this one, changing the provided non-null permissions. - public GuildPermissions Modify( - bool? createInstantInvite = null, - bool? kickMembers = null, - bool? banMembers = null, - bool? administrator = null, - bool? manageChannels = null, - bool? manageGuild = null, - bool? addReactions = null, - bool? viewAuditLog = null, - bool? readMessages = null, - bool? sendMessages = null, - bool? sendTTSMessages = null, - bool? manageMessages = null, - bool? embedLinks = null, - bool? attachFiles = null, - bool? readMessageHistory = null, - bool? mentionEveryone = null, - bool? useExternalEmojis = null, - bool? connect = null, - bool? speak = null, - bool? muteMembers = null, - bool? deafenMembers = null, - bool? moveMembers = null, - bool? useVoiceActivation = null, - bool? changeNickname = null, - bool? manageNicknames = null, - bool? manageRoles = null, - bool? manageWebhooks = null, - bool? manageEmojis = null) - => new GuildPermissions(RawValue, createInstantInvite, kickMembers, banMembers, - administrator, manageChannels, manageGuild, addReactions, viewAuditLog, readMessages, sendMessages, sendTTSMessages, manageMessages, embedLinks, attachFiles, readMessageHistory, mentionEveryone, useExternalEmojis, connect, speak, muteMembers, deafenMembers, moveMembers, useVoiceActivation, changeNickname, manageNicknames, manageRoles, manageWebhooks, manageEmojis); - - public bool Has(GuildPermission permission) => Permissions.GetValue(RawValue, permission); - - public List ToList() - { - var perms = new List(); - - // bitwise operations on raw value - // each of the GuildPermissions increments by 2^i from 0 to MaxBits - for (byte i = 0; i < Permissions.MaxBits; i++) - { - ulong flag = ((ulong)1 << i); - if ((RawValue & flag) != 0) - perms.Add((GuildPermission)flag); - } - return perms; - } - - public override string ToString() => RawValue.ToString(); - private string DebuggerDisplay => $"{string.Join(", ", ToList())}"; - } -}