Получить статус бота discord.py - PullRequest
0 голосов
/ 22 января 2019

Я хотел бы получить статус бота, когда он изменяется, чтобы совершить действие (сейчас это просто печать, когда он подключен к сети на консоли.) Но это не работает:

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

Iдумаю, что проблема в том, что статус - это не атрибут пользователя, а атрибут участника.Как я могу "преобразовать" моего бота в пользователя?

Заранее спасибо:)

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Хорошо, на самом деле, есть атрибут discord.Server (discord.Server.me), который делает это x)

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

Не проверял, хотя

0 голосов
/ 22 января 2019

У меня это так.

@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:
...