Beispiel #1
0
        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;
        }
Beispiel #3
0
        /// <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;
        }