Discord.py:如何为成员获角色的Embed消息添加用户头像?
解决Discord.py Embed添加用户头像的问题
要给Embed添加获得角色用户的头像,直接通过Member对象的display_avatar.url属性就能获取到用户当前使用的头像URL(自定义头像或默认头像均可)。
修改后的完整代码如下:
@client.event async def on_member_update(before: discord.Member, after: discord.Member): role = before.guild.get_role(xxxxxxx) channel = before.guild.get_channel(xxxxxx) gif_url = "xxxxx" if role not in before.roles and role in after.roles: embed = discord.Embed(color=discord.Color.from_rgb(28, 60, 128)) # 设置Embed作者栏,包含用户昵称和头像 embed.set_author(name=after.display_name, icon_url=after.display_avatar.url) embed.set_image(url=gif_url) await channel.send(f'<@{after.id}> **get role, cool!**', embed=embed)
关键说明
after.display_avatar.url:自动返回用户当前显示的头像永久URL,优先使用自定义头像,没有则返回系统默认头像。after.display_name:获取用户在服务器中的显示名称(有昵称用昵称,无昵称用用户名),如果想直接用用户名,替换为after.name即可。
内容的提问来源于stack exchange,提问作者Flichendery
相关产品推荐
相关产品推荐

