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

如何通过Discord.js V14开发的Discord机器人获取用户用户名

使用Discord.js V14获取用户Discord用户名的正确实现

你的代码存在几处和Discord.js V14不兼容的问题,下面是修正后的完整代码:

const { Client, IntentsBitField } = require('discord.js');
const client = new Client({ 
    intents: [
        IntentsBitField.Flags.Guilds,
        IntentsBitField.Flags.GuildMessages,
        IntentsBitField.Flags.MessageContent // 必须添加这个意图才能读取消息内容
    ] 
});

client.once('ready', () => {
    console.log('Bot is ready');
});

client.on('messageCreate', message => {
    // 用严格相等判断指令,避免赋值错误
    if (message.content === '!username') {
        const username = message.author.username;
        message.channel.send(`你的用户名是:${username}`);
    }
});

client.login('your-bot-token');

关键修正点说明:

  • 事件更新:Discord.js V14已将原message事件替换为messageCreate,必须使用新事件才能监听消息
  • 意图调整:
    • 引入IntentsBitField替代旧的Intents.FLAGS写法
    • 必须添加MessageContent意图,否则机器人无法读取消息内容(需要在Discord开发者后台的机器人页面开启"Message Content Intent"权限)
  • 判断逻辑修正:将if (message.content = '!username')改为if (message.content === '!username'),避免把字符串赋值给message.content导致的逻辑错误
  • 用户名获取:message.author.username可以正确获取用户的Discord用户名,若需要带标签的完整用户名(如Username#1234),可以使用message.author.tag

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 10:54:52