discord.py не видит пользователя

@client.event
async def on_raw_reaction_add(payload):
    message_id = payload.message_id
    if message_id == 766958633032351744:
        guild_id = payload.guild_id
        guild = discord.utils.find(lambda g : g.id == guild_id, client.guilds)
        #role = discord.utils.get(guild.roles, name = '3D')
        if payload.emoji.name == 'as':
            role = discord.utils.get(guild.roles, name = 'mute')
        elif payload.emoji.name == ':video_game:':
            role = discord.utils.get(guild.roles, name = 'Gamer')
        else:
            role = discord.utils.get(guild.roles, name =payload.emoji.name)
        if role is not None:
            member = discord.utils.find(lambda m : m.id == payload.user_id, guild.members)
            if member is not None:
                await member.add_roles(role)
                print ('done')
            else:
                print ('user not found')
        else:
            print ('role not found')
@client.event
async def on_raw_reaction_remove(payload):
    pass

Вывод:

C:\Users\Administrator>py Desktop\server\back.py
                                                                                                                        Successfull connect
user not found

Ответы (2 шт):

Автор решения: xZartsust

Вы же сами написали эту структуру:

if member is not None:
    await member.add_roles(role)
    print('done')
else:
    print('user not found')

И вам выводит user not found значить у вас переменная member есть None

Да и лучше не find а get_user:

import discord
from discord.ext import commands
from discord.utils import get

if role is not None:
    member = client.get_user(payload.member.id)
    if member is not None:
        await member.add_roles(role)
        print ('done')
    else:
        print ('user not found')
→ Ссылка
Автор решения: LeonidM

В связи с новым обновлением дискорда, guild.members всегда возвращает пустой список. Поэтому

member = discord.utils.find(lambda m : m.id == payload.user_id, guild.members)

нужно заменить на

member = await (await client.fetch_guild(payload.guild_id)).fetch_member(payload.user_id)
→ Ссылка