#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 , а не как упомянуть пользователя.