欢迎Embed中成员头像不显示,报AttributeError错误求助
解决Nextcord机器人欢迎消息头像显示报错问题
报错原因
出现AttributeError: 'Member' object has no attribute 'display_avatar_url'是因为Nextcord的Member对象没有display_avatar_url这个属性,正确获取用户头像URL的方式是调用display_avatar属性的url方法。
修改后的完整代码
if member.guild.id == 928443083660607549: # 获取"new"角色,增加容错判断 new = nextcord.utils.get(member.guild.roles, name="new") if not new: print("未找到名为'new'的角色") return # 获取欢迎频道,增加容错判断 channel = bot.get_channel(996767690091925584) if not channel: print("未找到指定ID的欢迎频道") return # 创建欢迎Embed embed = nextcord.Embed(title="welcome to ikari!", description="・make sure to read the rules in <#928443083698360397>\n・for more questions refer to <#928507764714651698>", color=0x303136) # 修复头像URL获取方式 embed.set_author(name=f"{member.name}#{member.discriminator}", icon_url=member.display_avatar.url) # 处理服务器图标为空的情况 if member.guild.icon: embed.set_thumbnail(url=member.guild.icon.url) await channel.send(f"{member.mention}!", embed=embed) await member.add_roles(new)
关键修改点
- 替换
member.display_avatar_url为member.display_avatar.url:这是Nextcord官方规定的获取用户当前显示头像URL的正确方式 - 增加角色和频道的存在性判断:避免因角色/频道不存在导致机器人抛出异常崩溃
- 增加服务器图标为空的判断:防止服务器未设置图标时出现报错
内容的提问来源于stack exchange,提问作者Janna Cora
相关产品推荐
相关产品推荐

