获取机器人的状态 discord.py

Get bot's status discord.py

我想在机器人更改为执行操作时获取它的状态(现在它只是在上线时打印。)。

不幸的是,我的方法不起作用:

@bot.event
async def on_member_update(usr_before, usr_after):
    if bot.user.status == discord.Status.online:
        print("becomes online!")

我认为问题在于状态不是 User 属性而是 Member 属性。我怎样才能 "convert" 我的机器人到 Member?

我有这个。

@client.event
async def on_ready():
print("Bot Online!")
print("Name: {}".format(client.user.name))
print("ID: {}".format(client.user.id))
await client.change_presence(game=discord.Game(name="d!help for help"))

试试这个:

member = None
for server in bot.servers:
    member = server.get_member(bot.user.id)
    break

if member.status == discord.Status.online:

或者这个:

if [s for s in bot.servers][0].get_member(bot.user.id).status == discord.Status.online:

好吧,实际上,有一个 discord.Server 属性 (discord.Server.me) 可以执行 x)

https://discordpy.readthedocs.io/en/latest/api.html#discord.Server.me

不过还没有测试过