как мне удалить роль у пользователя?

#discord.py

#discord.py

Вопрос:

Я хочу удалить роль пользователя, который удаляет свою реакцию, и я попробовал этот код, но guild.get_member ничего не вернул.

     async def on_raw_reaction_remove(payload):
    for role_id, msg_id, emoji in client.reaction_roles:
        emojiList = str(emoji).split(":")
        emojiName = emojiList[1] 
        if msg_id == payload.message_id and emojiName == payload.emoji.name:
            guild = client.get_guild(payload.guild_id)
            role = discord.utils.get(guild.roles, id=role_id)
            member = discord.utils.get(guild.members, id=payload.user_id)
            await member.remove_roles(role)
  

Ответ №1:

Вы можете использовать discord.utils.get для этого. Вот пример:

 
guild = client.get_guild(payload.guild_id)
role = discord.utils.get(guild.roles, id="here is the role id")
member = discord.utils.get(guild.members, id=payload.user_id)
await member.remove_roles(role)
  

Я на мобильном телефоне, поэтому, если возникает какая-либо ошибка синтаксиса или атрибута, просто прокомментируйте.

Комментарии:

1. полезная нагрузка не имеет гильдии или пользовательских методов):

2. третья строка возвращает участнику NoneType, ошибка 'NoneType' object has no attribute 'remove_roles'

3. Вы уверены, что этот код присутствует в on_raw_reaction_remove событии?

4. да, я уверен, что я собираюсь отредактировать и написать весь метод.