Бот для discord на python добавляет роли, но не убирает их

Бот использует реакции и добавляет роли, но если убирать реакцию, он пишет Member not found (прикрепляю код):

@client.event
async def on_raw_reaction_remove(payload):
    message_id = payload.message_id
    if message_id == 822401200942350336:
        guild_id = payload.guild_id
        guild = discord.utils.find(lambda g: g.id == guild_id, client.guilds)

        if payload.emoji.name == '?':
            role = discord.utils.get(guild.roles, id=788080179624149002)
        elif payload.emoji.name == '?':
            role = discord.utils.get(guild.roles, id=788080230182682634)
        elif payload.emoji.name == '?':
            role = discord.utils.get(guild.roles, id=790238512774512660)
        else:
            role = None

        if role is not None:
            member = guild.get_member(payload.user_id)
            if member is not None:
                await member.remove_roles(role)
                print("done")
            else:
                print("Member not found")
        else:
            print("Role not found")

Ошибки нет, только выводит ответы, сначала done при получении роли и Member not found при удалении роли:

Stupid_bot присоединился к Discord!
done
Member not found

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

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

Попробуй так:

@client.event
async def on_raw_reaction_remove(payload):
    message_id = payload.message_id
    if message_id == 822401200942350336:
        guild_id = payload.guild_id
        guild = discord.utils.find(lambda g: g.id == guild_id, client.guilds)

        if payload.emoji.name == '?':
            role = discord.utils.get(guild.roles, id=788080179624149002)
        elif payload.emoji.name == '?':
            role = discord.utils.get(guild.roles, id=788080230182682634)
        elif payload.emoji.name == '?':
            role = discord.utils.get(guild.roles, id=790238512774512660)
        else:
            role = None

        if role is not None:
            member =  utils.get(message.guild.members, id=payload.user_id)
            if member is not None:
                await member.remove_roles(role)
                print("done")
            else:
                print("Member not found")
        else:
            print("Role not found")
→ Ссылка