【问题标题】:How do I use on_member_update to perform an action once a user obtains a specific role?用户获得特定角色后,如何使用 on_member_update 执行操作?
【发布时间】:2021-02-07 00:35:56
【问题描述】:

所以基本上我希望我的机器人使用 on_member_update 以便当用户获得“已验证”角色时,它会发送一个 dm。到目前为止,我的代码是-

@client.event
async def on_member_update(before, after):
    if str(before.roles) != "verified":
        if str(after.roles) == "verified":
            user = member.id
            channel = client.get_user(user)
            async with channel.typing():
                time.sleep(2)
                await channel.send("Verified")

但它似乎不起作用。该机器人也不会打印任何错误,因此我认为代码中的某些内容不正确,以至于不满足条件。是的,我实际写的条件,当然不是我真正的意思。那么,我怎样才能扭曲我的代码,使其符合我的要求?

【问题讨论】:

    标签: python discord.py roles


    【解决方案1】:

    比较两个角色列表以查看添加了哪个角色,检查角色名称是否是您需要的角色,然后向他们发送消息。

    @client.event
    async def on_member_update(before, after):
        added_role = set(after.roles) - set(before.roles)
        verified = None
        for r in added_role:
            verified = r
    
        if verified.name == "verified":
            await after.send("You have been verified.")
    

    【讨论】:

      猜你喜欢
      • 2017-07-10
      • 2015-11-04
      • 1970-01-01
      • 2015-02-01
      • 1970-01-01
      • 2017-08-06
      • 2011-09-28
      • 2013-12-26
      • 1970-01-01
      相关资源
      最近更新 更多