【发布时间】:2023-03-18 00:15:01
【问题描述】:
我对 on_eaw_reaction_add 进行了编码,它工作得很好
@commands.Cog.listener()
async def on_raw_reaction_add(self, payload):
msgID = 754487460142121070
user = payload.user_id
member = payload.member
guild_id = payload.guild_id
guild = discord.utils.find(lambda g : g.id == guild_id, bot1.guilds)
canarinho = get(member.guild.roles, name="canarinho")
if not payload.guild_id:
return
if payload is not None:
if payload.message_id == msgID:
if str(payload.emoji) == ":canarinho:":
await member.add_roles(canarinho)
但是当我尝试删除角色时,它会卡在那里,我认为我在拉动特定公会时做错了什么
@commands.Cog.listener()
async def on_raw_reaction_remove(self, payload):
message_id = payload.message_id
if message_id == 754487460142121070 :
member = payload.user_id
guild_id = payload.guild_id
guild = discord.utils.find(lambda g: g.id == guild_id, bot.guilds)
#here -> role = get(member.guild.roles, name='canarinho')
if not payload.guild_id:
return
if payload is not None:
if payload.message_id == 754487460142121070:
if str(payload.emoji) == ":canarinho:":
print('Working')
移除反应时出错
File line 123, in on_raw_reaction_remove
role = get(member.guild.roles, name='canarinho')
AttributeError: 'int' object has no attribute 'guild'
编辑
我认为payload.user_id 是用户 ID,而不是 Member 对象有关系
【问题讨论】:
-
你启用
intents.members了吗? -
是的,我确实启用了
标签: python discord discord.py