コード例 #1
0
        public ChannelTriStatePermissions(ChannelTriStatePermissions basePerms, PermValue?createInstantInvite = null, PermValue?managePermissions = null,
                                          PermValue?manageChannel   = 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?connect            = null, PermValue?speak        = null, PermValue?muteMembers = null, PermValue?deafenMembers = null,
                                          PermValue?moveMembers     = null, PermValue?useVoiceActivation = null)
        {
            uint allow = basePerms.AllowValue, deny = basePerms.DenyValue;

            PermissionsHelper.SetValue(ref allow, ref deny, createInstantInvite, PermissionBits.CreateInstantInvite);
            PermissionsHelper.SetValue(ref allow, ref deny, managePermissions, PermissionBits.ManageRolesOrPermissions);
            PermissionsHelper.SetValue(ref allow, ref deny, manageChannel, PermissionBits.ManageChannel);
            PermissionsHelper.SetValue(ref allow, ref deny, readMessages, PermissionBits.ReadMessages);
            PermissionsHelper.SetValue(ref allow, ref deny, sendMessages, PermissionBits.SendMessages);
            PermissionsHelper.SetValue(ref allow, ref deny, sendTTSMessages, PermissionBits.SendTTSMessages);
            PermissionsHelper.SetValue(ref allow, ref deny, manageMessages, PermissionBits.ManageMessages);
            PermissionsHelper.SetValue(ref allow, ref deny, embedLinks, PermissionBits.EmbedLinks);
            PermissionsHelper.SetValue(ref allow, ref deny, attachFiles, PermissionBits.AttachFiles);
            PermissionsHelper.SetValue(ref allow, ref deny, readMessageHistory, PermissionBits.ReadMessageHistory);
            PermissionsHelper.SetValue(ref allow, ref deny, mentionEveryone, PermissionBits.MentionEveryone);
            PermissionsHelper.SetValue(ref allow, ref deny, connect, PermissionBits.Connect);
            PermissionsHelper.SetValue(ref allow, ref deny, speak, PermissionBits.Speak);
            PermissionsHelper.SetValue(ref allow, ref deny, muteMembers, PermissionBits.MuteMembers);
            PermissionsHelper.SetValue(ref allow, ref deny, deafenMembers, PermissionBits.DeafenMembers);
            PermissionsHelper.SetValue(ref allow, ref deny, moveMembers, PermissionBits.MoveMembers);
            PermissionsHelper.SetValue(ref allow, ref deny, useVoiceActivation, PermissionBits.UseVoiceActivation);

            AllowValue = allow;
            DenyValue  = deny;
        }
コード例 #2
0
 public Task AddOrUpdateOverwrite(Role role, ChannelTriStatePermissions permissions)
 {
     if (role == null)
     {
         throw new ArgumentNullException(nameof(role));
     }
     return(AddOrUpdateOverwrite(role.Id, PermissionTarget.Role, permissions));
 }
コード例 #3
0
 public Task AddOrUpdateOverwrite(User user, ChannelTriStatePermissions permissions)
 {
     if (user == null)
     {
         throw new ArgumentNullException(nameof(user));
     }
     return(AddOrUpdateOverwrite(user.Id, PermissionTarget.User, permissions));
 }
コード例 #4
0
        private Task AddOrUpdateOverwrite(ulong id, PermissionTarget type, ChannelTriStatePermissions permissions)
        {
            var request = new AddOrUpdateChannelPermissionsRequest(id)
            {
                TargetId   = id,
                TargetType = EnumConverters.ToString(type),
                Allow      = permissions.AllowValue,
                Deny       = permissions.DenyValue
            };

            return(_channel.Client.ClientAPI.Send(request));
        }
コード例 #5
0
ファイル: Channel.cs プロジェクト: aadarshasubedi/Discord.Net
 internal PermissionRule(PermissionTarget targetType, ulong targetId, uint allow, uint deny)
 {
     TargetType  = targetType;
     TargetId    = targetId;
     Permissions = new ChannelTriStatePermissions(allow, deny);
 }
コード例 #6
0
 public Task AddOrUpdatePermissionsRule(Role role, ChannelTriStatePermissions permissions) => _permissions.AddOrUpdateOverwrite(role, permissions);
コード例 #7
0
 public Task AddOrUpdatePermissionsRule(User user, ChannelTriStatePermissions permissions) => _permissions.AddOrUpdateOverwrite(user, permissions);