private ChannelPermissions(ulong initialValue, bool?createInstantInvite = null, bool?manageChannel = 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?managePermissions = null) { ulong value = initialValue; Permissions.SetValue(ref value, createInstantInvite, ChannelPermission.CreateInstantInvite); Permissions.SetValue(ref value, manageChannel, ChannelPermission.ManageChannel); Permissions.SetValue(ref value, readMessages, ChannelPermission.ReadMessages); Permissions.SetValue(ref value, sendMessages, ChannelPermission.SendMessages); Permissions.SetValue(ref value, sendTTSMessages, ChannelPermission.SendTTSMessages); Permissions.SetValue(ref value, manageMessages, ChannelPermission.ManageMessages); Permissions.SetValue(ref value, embedLinks, ChannelPermission.EmbedLinks); Permissions.SetValue(ref value, attachFiles, ChannelPermission.AttachFiles); Permissions.SetValue(ref value, readMessageHistory, ChannelPermission.ReadMessageHistory); Permissions.SetValue(ref value, mentionEveryone, ChannelPermission.MentionEveryone); Permissions.SetValue(ref value, useExternalEmojis, ChannelPermission.UseExternalEmojis); Permissions.SetValue(ref value, connect, ChannelPermission.Connect); Permissions.SetValue(ref value, speak, ChannelPermission.Speak); Permissions.SetValue(ref value, muteMembers, ChannelPermission.MuteMembers); Permissions.SetValue(ref value, deafenMembers, ChannelPermission.DeafenMembers); Permissions.SetValue(ref value, moveMembers, ChannelPermission.MoveMembers); Permissions.SetValue(ref value, useVoiceActivation, ChannelPermission.UseVAD); Permissions.SetValue(ref value, managePermissions, ChannelPermission.ManagePermissions); RawValue = value; }
private OverwritePermissions(ulong allowValue, ulong denyValue, PermValue?createInstantInvite = null, PermValue?manageChannel = null, PermValue?addReactions = null, PermValue?readMessages = null, PermValue?sendMessages = null, PermValue?sendTTSMessages = null, PermValue?manageMessages = null, PermValue?embedLinks = null, PermValue?attachFiles = null, PermValue?readMessageHistory = null, PermValue?mentionEveryone = null, PermValue?useExternalEmojis = null, PermValue?connect = null, PermValue?speak = null, PermValue?muteMembers = null, PermValue?deafenMembers = null, PermValue?moveMembers = null, PermValue?useVoiceActivation = null, PermValue?manageRoles = null, PermValue?manageWebhooks = null) { Permissions.SetValue(ref allowValue, ref denyValue, createInstantInvite, ChannelPermission.CreateInstantInvite); Permissions.SetValue(ref allowValue, ref denyValue, manageChannel, ChannelPermission.ManageChannels); Permissions.SetValue(ref allowValue, ref denyValue, addReactions, ChannelPermission.AddReactions); Permissions.SetValue(ref allowValue, ref denyValue, readMessages, ChannelPermission.ReadMessages); Permissions.SetValue(ref allowValue, ref denyValue, sendMessages, ChannelPermission.SendMessages); Permissions.SetValue(ref allowValue, ref denyValue, sendTTSMessages, ChannelPermission.SendTTSMessages); Permissions.SetValue(ref allowValue, ref denyValue, manageMessages, ChannelPermission.ManageMessages); Permissions.SetValue(ref allowValue, ref denyValue, embedLinks, ChannelPermission.EmbedLinks); Permissions.SetValue(ref allowValue, ref denyValue, attachFiles, ChannelPermission.AttachFiles); Permissions.SetValue(ref allowValue, ref denyValue, readMessageHistory, ChannelPermission.ReadMessageHistory); Permissions.SetValue(ref allowValue, ref denyValue, mentionEveryone, ChannelPermission.MentionEveryone); Permissions.SetValue(ref allowValue, ref denyValue, useExternalEmojis, ChannelPermission.UseExternalEmojis); Permissions.SetValue(ref allowValue, ref denyValue, connect, ChannelPermission.Connect); Permissions.SetValue(ref allowValue, ref denyValue, speak, ChannelPermission.Speak); Permissions.SetValue(ref allowValue, ref denyValue, muteMembers, ChannelPermission.MuteMembers); Permissions.SetValue(ref allowValue, ref denyValue, deafenMembers, ChannelPermission.DeafenMembers); Permissions.SetValue(ref allowValue, ref denyValue, moveMembers, ChannelPermission.MoveMembers); Permissions.SetValue(ref allowValue, ref denyValue, useVoiceActivation, ChannelPermission.UseVAD); Permissions.SetValue(ref allowValue, ref denyValue, manageRoles, ChannelPermission.ManageRoles); Permissions.SetValue(ref allowValue, ref denyValue, manageWebhooks, ChannelPermission.ManageWebhooks); AllowValue = allowValue; DenyValue = denyValue; }
/// <summary> /// Tests the flag of the given permissions value to the expected output /// and then tries to toggle the flag on and off /// </summary> /// <param name="rawValue"></param> /// <param name="flagValue"></param> /// <param name="expected"></param> private void TestHelper(ulong rawValue, ulong flagValue, bool expected) { Assert.Equal(expected, Permissions.GetValue(rawValue, flagValue)); // check that toggling the bit works Permissions.UnsetFlag(ref rawValue, flagValue); Assert.False(Permissions.GetValue(rawValue, flagValue)); Permissions.SetFlag(ref rawValue, flagValue); Assert.True(Permissions.GetValue(rawValue, flagValue)); // do the same, but with the SetValue method Permissions.SetValue(ref rawValue, true, flagValue); Assert.True(Permissions.GetValue(rawValue, flagValue)); Permissions.SetValue(ref rawValue, false, flagValue); Assert.False(Permissions.GetValue(rawValue, flagValue)); }
private GuildPermissions(ulong initialValue, bool?createInstantInvite = null, bool?kickMembers = null, bool?banMembers = null, bool?administrator = null, bool?manageChannel = null, bool?manageGuild = null, bool?addReactions = 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?userExternalEmojis = 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, manageChannel, GuildPermission.ManageChannels); Permissions.SetValue(ref value, manageGuild, GuildPermission.ManageGuild); Permissions.SetValue(ref value, addReactions, GuildPermission.AddReactions); 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, userExternalEmojis, 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; }
private OverwritePermissions(ulong allowValue, ulong denyValue, PermValue?createInstantInvite = null, PermValue?manageChannel = null, PermValue?addReactions = null, PermValue?viewChannel = null, PermValue?sendMessages = null, PermValue?sendTTSMessages = null, PermValue?manageMessages = null, PermValue?embedLinks = null, PermValue?attachFiles = null, PermValue?readMessageHistory = null, PermValue?mentionEveryone = null, PermValue?useExternalEmojis = null, PermValue?connect = null, PermValue?speak = null, PermValue?muteMembers = null, PermValue?deafenMembers = null, PermValue?moveMembers = null, PermValue?useVoiceActivation = null, PermValue?manageRoles = null, PermValue?manageWebhooks = null, PermValue?prioritySpeaker = 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); Permissions.SetValue(ref allowValue, ref denyValue, addReactions, ChannelPermission.AddReactions); Permissions.SetValue(ref allowValue, ref denyValue, viewChannel, ChannelPermission.ViewChannel); Permissions.SetValue(ref allowValue, ref denyValue, sendMessages, ChannelPermission.SendMessages); Permissions.SetValue(ref allowValue, ref denyValue, sendTTSMessages, ChannelPermission.SendTTSMessages); Permissions.SetValue(ref allowValue, ref denyValue, manageMessages, ChannelPermission.ManageMessages); Permissions.SetValue(ref allowValue, ref denyValue, embedLinks, ChannelPermission.EmbedLinks); Permissions.SetValue(ref allowValue, ref denyValue, attachFiles, ChannelPermission.AttachFiles); Permissions.SetValue(ref allowValue, ref denyValue, readMessageHistory, ChannelPermission.ReadMessageHistory); Permissions.SetValue(ref allowValue, ref denyValue, mentionEveryone, ChannelPermission.MentionEveryone); Permissions.SetValue(ref allowValue, ref denyValue, useExternalEmojis, ChannelPermission.UseExternalEmojis); Permissions.SetValue(ref allowValue, ref denyValue, connect, ChannelPermission.Connect); Permissions.SetValue(ref allowValue, ref denyValue, speak, ChannelPermission.Speak); Permissions.SetValue(ref allowValue, ref denyValue, muteMembers, ChannelPermission.MuteMembers); Permissions.SetValue(ref allowValue, ref denyValue, deafenMembers, ChannelPermission.DeafenMembers); Permissions.SetValue(ref allowValue, ref denyValue, moveMembers, ChannelPermission.MoveMembers); Permissions.SetValue(ref allowValue, ref denyValue, useVoiceActivation, ChannelPermission.UseVAD); Permissions.SetValue(ref allowValue, ref denyValue, prioritySpeaker, ChannelPermission.PrioritySpeaker); 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; }