如何在Node.js的Discord Bot中获取发送消息的用户名?
解决Discord.js中获取消息发送者用户名的问题
在Discord.js的message事件里,发送消息的用户信息存在message.author对象中,你可以通过这些属性获取用户名相关内容:
message.author.username:用户的基础用户名(不带#后的识别码)message.author.tag:完整的用户标识(格式:用户名#XXXX)message.member.displayName:用户在当前服务器的昵称(若未设置则返回基础用户名)
针对你的代码,只需把固定的用户名替换为动态获取的用户标识即可,修改后的完整代码如下:
const Discord = require('discord.js'); const { prefix, token } = require('./config.json'); const client = new Discord.Client(); client.once('ready', () => { console.log('Ready!'); }); client.on('message', message => { if (message.content === `[ done ] the @🔥 gold 🔥 succes`) { // 使用基础用户名发送指令 message.channel.send(`!addinvites @${message.author.username} 50`); // 若需要完整用户标识,替换为这行: // message.channel.send(`!addinvites @${message.author.tag} 50`); // 若要获取服务器内的昵称,使用这行: // message.channel.send(`!addinvites @${message.member.displayName} 50`); } }); client.login(token);
注意:如果使用message.member.displayName,要确保机器人拥有读取成员信息的权限,且消息是在服务器频道中发送的——私信场景下message.member会是undefined。
内容的提问来源于stack exchange,提问作者Tibor
相关产品推荐
相关产品推荐

