首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何监视特定成员discord.py的状态

如何监视特定成员discord.py的状态
EN

Stack Overflow用户
提问于 2022-09-27 10:08:38
回答 1查看 53关注 0票数 1

我需要帮助监视一个特定的成员在线/离线状态与discord.py,我希望不和谐的机器人不断更新和打印人员的状态。

代码语言:javascript
代码运行次数:0
运行
复制
def run_bot():

@client.event
async def on_ready():
    print(f"{client.user} is now running")
    await updater()

@client.event
async def updater():
    while True:
        sleep(1)
        for guilds in client.guilds:
            for member in guilds.members:
                if member.id == my_Member_id:
                    if member.status == discord.Status.online:
                        print(f"{member.name} is online")
                    else:
                        print(f"{member.name} is not online")
client.run(TOKEN)

我所拥有的代码无限期地显示人员的状态,但是当该人更改其状态时,它不会更新,而是继续显示旧状态。

下面是输出的屏幕截图,请记住,在循环运行时,人员状态被多次更改。

EN

回答 1

Stack Overflow用户

发布于 2022-09-27 11:53:19

可以使用discord.on_presence_update事件侦听器监视成员状态/活动的更改。

代码语言:javascript
代码运行次数:0
运行
复制
@client.event
async def on_presence_update(before: discord.Member, after: discord.Member):
    if after.id == my_Member_id:
        print('{} changed status to {}'.format(
            after.display_name,
            after.status
        ))

您还可以使用它更新本地存储的成员状态和活动。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73865824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档