Python 你是如何从discord.py中获得用户头像的?

Python 你是如何从discord.py中获得用户头像的?,python,discord,discord.py,Python,Discord,Discord.py,我为我的机器人做了一个头像命令,但它不能与mentioions一起工作,我试图不使用'@client.command',因为它会给代码的其余部分带来问题 if message.content.startswith('+avatar'): sender = message.author name = sender.display_name avatar_url = sender.avatar_url embedVar = dis

我为我的机器人做了一个头像命令,但它不能与mentioions一起工作,我试图不使用'@client.command',因为它会给代码的其余部分带来问题

  if message.content.startswith('+avatar'):
        sender = message.author
        name = sender.display_name
        avatar_url = sender.avatar_url

        embedVar = discord.Embed(title="**{}**".format(sender), description="Username: {}".format(name), color=0xec9e36)
        embedVar.set_image(url = avatar_url)
        await message.channel.send(embed=embedVar)

是我写的,我找不到任何方法让它工作,任何类型的帮助将不胜感激

我猜你是想做类似的事情
+avatar@提及
提及基本上是一个包含用户ID的字符串标记

重新导入
def是指:
''检查该字符串是否为不一致的有效'提及'字符串''
尝试:
返回布尔值(重新匹配(r'',s))
除例外情况外:
一无所获
def向您提及您的id:
''从提及中提取用户id''
如果提及:
返回int(关于sub(r'[!@','',s))
一无所获
您可以首先使用
title\u str=message.content.split()[1]
提取提及字符串,然后调用
title\u to\u id
函数从提及字符串中提取id

之后,在您的bot(客户端)对象上调用
get\u user
以获取用户,这将返回一个
user
对象,该对象具有
avatar\u url
字段

总之,

if message.content.startswith(“+avatar”):
message\u parts=message.content.split()
如果len(信息部分)>1:
提及\u str=message.content.split()[1]
如果提及(提及):
user=client.get\u user(向\u id提及\u(提及\u str)
#使用user.avatar\u url执行任何操作
其他:
#警告无效提及
其他:
#你想做什么就做什么
参考资料:

  • 获取用户
  • 用户

  • 我使用了
    message.indications
    来查找消息中是否提到了某个人,如果提到了,我获取了
    提到的用户的
    姓名和化身url,否则我获取了发件人的
    姓名和化身url


    您使用的是什么类型的客户端?
    discord.client
    commands.Bot
    discord.client
    @12944qwerty您不使用
    commands.Bot
    和commands版本的原因是什么?dpy的重写版本使命令变得非常简单。
      if message.content.startswith('+avatar'):
    
            if( len(message.mentions) > 0 ):   #checking if someone is mentioned
    
                #mesage.mentions[0] is the first mentioned user in the message
                name = message.mentions[0].display_name
                avatar_url = message.mentions[0].avatar_url
    
            else: #no one is mentioned
    
                name = sender.display_name
                avatar_url = sender.avatar_url
    
        embedVar = discord.Embed(title="Username: {}".format(name), color=0xec9e36)
        embedVar.set_image(url = avatar_url)
        await message.channel.send(embed=embedVar)