获取机器人的状态discord.py

时间:2019-01-22 08:51:29

标签: python bots discord discord.py status

无论何时更改为执行操作,我都希望获得bot的状态(目前,它仅在控制台上在线时才显示。)但这不起作用:

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

我认为问题在于状态不是用户属性,而是成员属性。如何将我的漫游器“转换”为会员?

预先感谢:)

2 个答案:

答案 0 :(得分:1)

我这样子。

@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"))

尝试一下:

m = None
for s in bot.servers:
    m = s.get_member(bot.user.id)
    break

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

或者这个:

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

答案 1 :(得分:0)

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

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

虽然没有测试