Как мне сделать событие, которое проверяет, когда пользователь выходит в Интернет?

#discord.py

Вопрос:

 async def on_member_update(member, status):
  if str(member.status) == "online":
    print(f"{member} has gone {status}.")
 

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

Ответ №1:

on_member_update принимает только до и после в качестве параметров, а не участника или статуса.

Что — то вроде этого должно сработать:

 @bot.event
async def on_member_update(before, after):
    if str(after.status) == "online":
        print(f"{after.name} has gone {after.status}.")
 

https://discordpy.readthedocs.io/en/latest/api.html?выделите=on_member_update#раздор.on_member_update

Комментарии:

1. Что вы имеете в виду под этим? Все, что я могу сказать, это то, что я сам протестировал его с помощью этого кода, и он работает для меня. Не могли бы вы показать полный список слушателей событий?

2. Вы добавили @bot.event декоратора над вашим слушателем? Соответствующим образом отредактировал мой код

3. Это связано с тем, что вы не включили шлюз участников, предназначенный для портала разработчиков discord.

4. @LUNA также он должен быть активирован в коде вместе с порталом

5. Вам также необходимо включить намерения присутствия