如何让Discord Bot回复时携带消息发送者的用户名?
解决Discord Bot回复包含用户名的问题
你遇到的核心问题是没用到JavaScript模板字符串的正确语法——模板字符串必须用**反引号()**包裹,而非单引号(')或双引号(")。要是用错引号,${message.author}`这类占位符会被当成普通文本输出,不会解析成实际的用户名。
正确代码示例
假设你的消息监听逻辑是这样,修改引号就能解决:
client.on('messageCreate', (message) => { // 用反引号包裹字符串,才能解析${}占位符 message.reply(`hello ${message.author}!`); // 也可以单独获取用户名或完整标签: message.reply(`hello ${message.author.username}!`); message.reply(`hello ${message.author.tag}!`); });
常见错误排查
- 确认用的是反引号(和键盘上的~是同一个键),别用单引号或双引号
- 检查变量名是否匹配:确保回调参数是
message(如果是msg或user,得先在代码里定义对应的变量) - 如果你用的是Discord.js v14及以上版本,要确认监听的是
messageCreate事件(v12及更早版本是message事件)
内容的提问来源于stack exchange,提问作者Bubbish
相关产品推荐
相关产品推荐

