def tweak_overwrite(overwrite: discord.PermissionOverwrite, add_mask: int, remove_mask: int, reset_mask: int) -> discord.PermissionOverwrite: allow, deny = overwrite.pair() return discord.PermissionOverwrite.from_pair( tweak_permissions(allow, add_mask, reset_mask), tweak_permissions(deny, remove_mask, reset_mask))
def set( self, target: Union[discord.Role, discord.Member], permission_overwrite: discord.PermissionOverwrite, ): """Set the permissions for a target.""" self.__overwrites[target] = discord.PermissionOverwrite().from_pair( *permission_overwrite.pair() )
def make_dict_from_overwrite( target: typing.Union[discord.Member, discord.Role], overwrite: discord.PermissionOverwrite): allow, deny = overwrite.pair() ovr = { 'id': target.id, 'allow': allow.value, 'deny': deny.value } if isinstance(target, discord.Role): ovr['type'] = 'role' else: ovr['type'] = 'member' return ovr