Discord.js 机器人处理无头像用户指令时崩溃问题如何解决
问题原因
message.author.avatarURL() 方法在用户未设置自定义头像时会返回 null,直接将该值传入 Embed 页脚的 icon 参数时,Discord API 不接受空值参数,因此触发异常导致机器人崩溃。
解决方案
方案1:使用内置displayAvatarURL方法(推荐)
discord.js 提供的displayAvatarURL()方法会自动判断用户是否有自定义头像,无头像时自动返回官方默认头像地址,无需手动处理边界情况,且已适配 Discord 新的无#号用户名系统,兼容性更强。
修改后的代码:
${message.author.displayAvatarURL({ size: 1024, dynamic: true })}
方案2:手动添加空值回退
如果你需要自定义默认头像逻辑,可以用空值合并运算符处理avatarURL()返回null的场景:
${message.author.avatarURL({ size: 1024, dynamic: true }) ?? `https://cdn.discordapp.com/embed/avatars/${Number(message.author.discriminator ?? 0) % 5}.png`}
内容的提问来源于stack exchange,提问作者AppleEater_
相关产品推荐
相关产品推荐

