Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.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不一致,请检查成员状态_Python_Discord_Discord.py - Fatal编程技术网

Python不一致,请检查成员状态

Python不一致,请检查成员状态,python,discord,discord.py,Python,Discord,Discord.py,我想在我的discord bot中实现一个功能,检查是否有成员脱机,然后执行以下功能。我已经阅读了API参考页,但不太了解如何做,会不会有类似的工作 client = discord.Client() @client.event async def on_member_update(before, after): if before == online: if after == offline: print("{} has gone offlin

我想在我的discord bot中实现一个功能,检查是否有成员脱机,然后执行以下功能。我已经阅读了API参考页,但不太了解如何做,会不会有类似的工作

client = discord.Client()

@client.event
async def on_member_update(before, after):
    if before == online:
        if after == offline:
            print("{} has gone offline.".format(member))
我认为代码不会按预期工作,但它可能会为我的目标提供一些指导。

类似的内容

@client.event
async def on_member_update(before, after):
    if str(before.status) == "online":
        if str(after.status) == "offline":
            print("{} has gone {}.".format(after.name,after.status))
如果您希望它仅在用户联机并“脱机”时触发
你可以这样做

@client.event
async def on_member_update(before, after):
    if str(after.status) == "offline":
        print("{} has gone {}.".format(after.name,after.status))

如果您希望在用户处于“空闲”或“dnd”状态并处于“脱机”状态时触发它。

使用decorator时,必须调用一次函数才能运行它。因此,您可以添加调度程序,以便在调用函数时调用函数memeber\u update上的
。所以调度器将在下次运行它。用于计划程序检查
https://schedule.readthedocs.io/en/stable/
。我并不是真的想知道“成员更新”命令上的
触发器,我对后面的代码感兴趣。@abccd True,我猜如果他是“隐形的”,它会被注册为“离线”和任何动作(状态、游戏、化身、昵称、角色)也会导致它被打印出来。接得好!为什么要比较字符串值,而不是比较
状态。联机
状态。脱机
?@PatrickHaugh当我尝试这样做时,我得到了一个“NameError:name'Status'未定义”,所以我选择了一个有效的。我可能在这里遗漏了一些东西,我的代码是:if(after.status==status.online):然后离线时也是如此,其余的是same@Tristo您是否从discord导入状态执行了
?这也没什么大不了的way@PatrickHaugh嗯,我现在做了,而且成功了。谢谢,这很有教育意义!