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

如何在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:12:40