Как получить объект-член из идентификатора discord.py

#discord #discord.py #discord.py-rewrite

#Discord #discord.py #discord.py-переписать

Вопрос:

У меня есть идентификатор пользователя, однако я хочу иметь возможность преобразовать его в объект-член. у моего бота есть таблица лидеров, и stores использует идентификатор пользователя discord в качестве ключа. Я хочу иметь возможность использовать эти идентификаторы для получения объекта-члена. Я хочу иметь доступ к этому, даже если этого пользователя нет на сервере. Возможно ли это, если да, то как я могу это сделать

Ответ №1:

Вы можете сделать это в одной строке кода:

 member_obj = ctx.guild.get_member(user_id)
 

Так, например, вот как вы могли бы использовать его в функции:

 import discord
from discord.ext import commands

@client.command()
async def id_to_name(ctx, *, id):
    member_obj = ctx.guild.get_member(user_id)
    await ctx.send(f'ID to name: {member_obj.display_name}')
 

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

1. Когда я использую это, он всегда возвращает discord.ext.commands.errors. Ошибка CommandInvokeError: команда вызвала исключение: ошибка атрибута: объект ‘Context’ не имеет атрибута ‘get_member’

2. @noahatholm Попробуйте сделать ctx.guild.get_member() вместо или ctx.get_member() .

3. ctx.guild.get_members() сработало, однако оно возвращается none , есть ли у вас какие-либо идеи, что является причиной этого?

4. Если вы пытаетесь распечатать элемент discord, обычно он возвращает none . Вам нужно использовать его как метод , например: member_obj.mention или что-то в этом роде. Всегда помните, что объекты discord не являются строками или целыми числами.

Ответ №2:

Вы могли бы сделать одно из двух.

Если вы хотите использовать ctx:

 ctx.author.mention
 

#Если вы хотите использовать элемент участника.

 @Bot.command()

async def example(ctx, member : discord.Member):

       await ctx.send(f"name{member.mention or ctx.authour.mention}

 

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

1. Это не отвечает на вопрос OP. Они спрашивали, как получить объект-член из идентификатора в Discord.py , а не как упомянуть пользователя.