如何仅使用用户ID获取用户信息?不和谐

2024-10-03 19:22:20 发布

您现在位置:Python中文网/ 问答频道 /正文

到目前为止,我只想使用用户的discord ID获取用户信息,我知道我可以使用discord.Member,但我想用他们的ID来做,就像k!userinfo 326024842765664257

有办法吗

以下是我尝试过的,但没有成功:

@client.command()
async def userinfo(ctx, member: discord.Member.id):
    embedinfo = discord.Embed()
    embedinfo.set_author(name=f"User info: {member}")
    embedinfo.set_thumbnail(url=member.avatar_url)
    embedinfo.add_field(name="Guild Name:", value=member.display_name)
    embedinfo.add_field(name="Created on:", value=member.created_at.strftime("%a, %#d %B %Y, %I:%M %p UTC"))
    embedinfo.add_field(name="Joined on:", value=member.joined_at.strftime("%a, %#d %B %Y, %I:%M %p UTC"))
    embedinfo.set_footer(text=f"Request by: {ctx.author}", icon_url=ctx.author.avatar_url)
    await ctx.send(embed=embedinfo)

Tags: 用户nameaddidurlfieldvalueauthor
2条回答

您可以使用^{}

@client.command()
async def userinfo(ctx, member_id: discord.Member.id):
    member = client.get_user(member_id)
    embedinfo = discord.Embed()
    embedinfo.set_author(name=f"User info: {member}")
    embedinfo.set_thumbnail(url=member.avatar_url)
    embedinfo.add_field(name="Guild Name:", value=member.display_name)
    embedinfo.add_field(name="Created on:", value=member.created_at.strftime("%a, %#d %B %Y, %I:%M %p UTC"))
    embedinfo.add_field(name="Joined on:", value=member.joined_at.strftime("%a, %#d %B %Y, %I:%M %p UTC"))
    embedinfo.set_footer(text=f"Request by: {ctx.author}", icon_url=ctx.author.avatar_url)
    await ctx.send(embed=embedinfo)

使用^{}的想法可以很好地使用ID。该参数将根据您是否提供可行的属性(例如ID)返回一个discord.Member对象。此外,这意味着您不需要麻烦使用^{}^{}

此外,如果使用此方法,如果您改变了获取成员的方式,则不需要在以后对其重新编码。如果您愿意,还可以从成员对象获取ID

代码:

@client.command()
async def userinfo(ctx, member: discord.Member):
    memb_id = member.id
    embedinfo = discord.Embed()
    embedinfo.set_author(name=f"User info: {member.username}#{member.discriminator}") # changed from {member}
    embedinfo.set_thumbnail(url=member.avatar_url)
    embedinfo.add_field(name="Guild Name:", value=member.display_name)
    embedinfo.add_field(name="Created on:", value=member.created_at.strftime("%a, %#d %B %Y, %I:%M %p UTC"))
    embedinfo.add_field(name="Joined on:", value=member.joined_at.strftime("%a, %#d %B %Y, %I:%M %p UTC"))
    embedinfo.set_footer(text=f"Request by: {ctx.author}", icon_url=ctx.author.avatar_url)
    await ctx.send(embed=embedinfo)

相关问题 更多 >