Python不一致,请检查成员状态
我想在我的discord bot中实现一个功能,检查是否有成员脱机,然后执行以下功能。我已经阅读了API参考页,但不太了解如何做,会不会有类似的工作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
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嗯,我现在做了,而且成功了。谢谢,这很有教育意义!