当用户获得特定角色时,如何让我的机器人向我发送私人消息?

How can I make my bot send me a private message when a user gets a specific role?

我正在做一个小测验,当有人回答最后一个问题时,他们将获得 'Completed' 角色。当他们得到这个角色时,我希望我的机器人给我发送一条私人消息。有可能这样做吗? 谢谢

添加角色时将触发 on_member_update 事件。我们可以检查该角色在事件发生前不在成员的角色中,而在更新后存在:

from discord.utils import get

@bot.event
async def on_member_update(before, after):
    role_name = "Completed"
    if not get(before.roles, name=role_name) and get(after.roles, name=role_name):
        await bot.owner.send(f"{after.name} has finished")