You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级discord.js v13后,提及成员返回ID而非用户名问题求助

解决discord.js v13中提及成员显示ID而非用户名的问题

在discord.js v13版本中,GuildMember对象直接参与字符串拼接时,默认返回的是用户ID,这和旧版本的行为不同。你需要明确调用对应的属性来获取用户名或昵称。

问题原因

旧版本的discord.js中,GuildMember对象转字符串时会返回用户名或提及格式,但v13调整了这一行为,直接转字符串会返回用户ID。

解决方案

根据需求选择以下方式之一:

  • 获取用户原始用户名:调用member.user.username
  • 获取服务器内的昵称:调用member.displayName
  • 生成可点击的@提及标签:调用member.toString()(显示@用户名,支持点击跳转用户资料)

修改后的代码示例

const mentionedMember = message.mentions.members.first();

// 先判断是否存在提及的成员,避免报错
if (!mentionedMember) {
  return message.reply('请提及一个成员!');
}

const galletita1 = new Discord.MessageEmbed()
  .setDescription(`${message.author.username}  Toma una galletita ${mentionedMember.user.username}`)
  .setFooter({ text: "espero te guste" })
  .setColor('#FFFF00')
  .setImage('http://pm1.narvii.com/6559/7ce32024e00c60cb695a8e838d5bcaf3264bc612_hq.jpg');

// v13发送Embed的格式需要调整
message.channel.send({ embeds: [galletita1] });

额外说明

v13发送Embed的方式也有更新,必须用{ embeds: [embed对象] }作为参数,建议同步调整发送逻辑避免其他问题。

内容的提问来源于stack exchange,提问作者jojan gojan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 09:01:13