如何在discord.py中获得用户pfp



这是我的bot的代码片段,旨在获取我的或用户的pfp并将其发布在discord频道中。由于某些原因,当我输入!avatar in discord时,它没有任何反应。我有所有正确的导入,并且在运行它时没有语法错误。我用的是repl。如果我是,这可能是问题所在,因为我完全不知道为什么这不起作用。

client = commands.Bot(command_prefix = "t!")

@client.command
async def avatar(ctx, member: discord.Member=None):
if member == None:
member = ctx.author

icon_url = member.avatar_url 

avatarEmbed = discord.Embed(title = f"{member.name}'s Avatar", color = 0xFFA500)

avatarEmbed.set_image(url = f"{icon_url}")

avatarEmbed.timestamp = ctx.message.created_at 

await ctx.send(embed = avatarEmbed)

该命令在大多数情况下看起来不错。然而,有几件事我确实注意到了。

首先,你的消息末尾似乎有三个反引号;如果它们出现在您的代码中,则可能会产生语法错误。(如果它们只用于粘贴代码,那么这完全没问题。)

第二,你没有关闭你的if环。虽然这是可以的,但最好的做法是使用else-语句关闭它,该语句应该包含嵌入代码。以下是我制作并测试的内容(运行良好):

@client.command(name= "embav", help="Send an embed of a member's avatar!")
async def avatar(ctx, member: discord.Member = None):
if member == None:
member = ctx.author
return #this just makes the code exit the loop
else:
icon_url = member.avatar_url
avatarEmbed = discord.Embed(title=f"{member.name}'s Avatar", color=0xFFA500)
avatarEmbed.set_image(url=f"{icon_url}")
avatarEmbed.timestamp = ctx.message.created_at
await ctx.send(embed=avatarEmbed)

第三,你说:

由于某种原因,当我输入!avatar in discord时,它什么也不做。我有所有正确的导入,并且在运行它时没有语法错误。

但是在代码中,您指定了一个前缀t!。如果你只是在提问时打了个错别字,也没关系。

最后,如果这些都没有帮助,那么它可能是一个回复。它问题。

最新更新