#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. да, я уверен, что я собираюсь отредактировать и написать весь метод.