Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在discord.py中调用_member_update时如何访问成员?_Python_Discord_Discord.py_Discord.py Rewrite - Fatal编程技术网

Python 在discord.py中调用_member_update时如何访问成员?

Python 在discord.py中调用_member_update时如何访问成员?,python,discord,discord.py,discord.py-rewrite,Python,Discord,Discord.py,Discord.py Rewrite,我正在尝试创建一个discord bot,该bot在成员脱机/不可见时为其添加特定角色 这是我的密码 @ bot.event async def on_member_update(before, after): if str(before.status) == "online": if str(after.status) == "offline": guild = bot.get_guild(1234567890) role

我正在尝试创建一个discord bot,该bot在成员脱机/不可见时为其添加特定角色

这是我的密码

@ bot.event
async def on_member_update(before, after):
    if str(before.status) == "online":
        if str(after.status) == "offline":
            guild = bot.get_guild(1234567890)
            role = discord.utils.find(lambda r: r.name == 'rolename', guild.roles)
            await member.add_roles(role)

每次运行它时,我都会收到一个错误,表示未定义成员。如何将成员定义为更新其状态的人?谢谢。

在之前的参数
和在
之后的参数
都是成员对象,这意味着您可以使用其中一个来添加角色:

@bot.event
成员更新时的异步定义(之前、之后):
如果str(before.status)=“在线”:
如果str(之后的状态)=“脱机”:
#也可以通过after.guild或before.guild获得公会
帮会=bot.get_帮会(1234567890)
role=discord.utils.find(lambda r:r.name=='rolename',guild.roles)
等待。添加_角色(角色)
参数简单

  • 更新之前的
    discord.Member
    对象,即
    之前的
  • 更新后的
    discord.Member
    对象,即
    之后的

参考文献:

  • -获取成员更新所在公会的替代方案
  • -成员
对象在下面的括号中说明


我尝试运行您的代码,但出现了一个错误,错误是“禁止:403禁止(错误代码:50013):缺少权限”(即使我给了bot管理员权限)。我该如何解决这个问题?当我在_message(message)上调用bot时,它能够添加和删除角色。请确保bot的最高角色高于您尝试给用户的角色(在角色的列表层次结构中)。不用担心!不要忘记回答,因为它也可能帮助其他人面对同样的问题!祝机器人好运:^)