Как узнать статус пользователя по discord id?(PyCord)

Рейтинг: 0Ответов: 1Опубликовано: 16.01.2023

написал вот такой метод, для проверки в сети ли пользователь по ID, но почему то я получаю ошибку: user не имеет метода status,хотя исходня из документации такой метод должен быть у discord.Member, я подозреваю что user полученный по fetch_user не такой же как discord.Member вот сам код:

@bot.command(name="observe", description="watching the user")
async def kick(ctx, id):
    user = await bot.fetch_user(int(id))
    if user.status == discord.Status.online:
        await ctx.respond("True")

(Варианты сделать все по упоминанию не предлагать, мне нужно получать статус именно по ID)

Ответы

▲ 0

Похоже, вы пытаетесь использовать атрибут status объекта User, чтобы проверить, находятся ли они в сети, но, похоже, атрибут status не является членом класса User. Вместо этого вы можете использовать атрибут присутствия для проверки онлайн-статуса пользователя.

Вот как вы можете обновить свой код, чтобы проверить статус пользователя в Сети, используя атрибут присутствия:

      @bot.command(name="observe", description="user observation")
async def observe(ctx, id: int):
    member = ctx.guild.get_member(int(id))
    if member is not None:
        if member.status == discord.Status.online:
            await ctx.send("True")
        else:
            await ctx.send("False")
    else:
        await ctx.send("User not found in this server")