我想创建一个机器人,在用户对消息做出反应后提供角色。
不幸的是,我当前的代码无法正常工作。
async def on_reaction_add(self, reaction, user):
verifiziert = discord.utils.get(user.guild.roles, name="verifiziert")
if str(reaction.emoji) == ":white_check_mark:":
await user.add_roles(verifiziert)
答案 0 :(得分:0)
您可能想要使用 on_raw_reaction_add()
Event Reference 而不是 on_reaction_add()
事件引用。这是因为 payload
隐式传递给 discord.py
的 on_raw_reaction_add()
参数比 reaction
传递的 user
和 on_reaction_add()
参数提供了更多信息。< /p>
async def on_raw_reaction_add(payload):
role = discord.utils.get(payload.member.guild.roles, name="verifiziert")
if payload.emoji.name == u"\u2705":
await payload.member.add_roles(role)
请注意,u"\u2705"
是 :white_check_mark: 表情符号的 Unicode 等效项。