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

Discord.js开发机器人hug指令提及用户显示undefined问题求助

问题修复方案

你遇到的undefined报错是属性名大小写拼写错误导致的:
Discord.js中GuildMember对象的服务器内显示名称属性为驼峰命名的displayName,你代码中使用了全小写的displayname,属性名不匹配无法读取到对应值,因此返回undefined。

修复步骤

  • 将embed.setTitle中的mention.displayname修改为mention.displayName即可解决显示问题
  • 如果你使用的是Discord.js v13及以上版本,原message事件已被弃用,需要将事件监听改为messageCreate,否则指令无法正常触发

修正后代码

const Discord = require("discord.js");
const { UserAgent } = require("discord.js/src/util/Constants");
const ytdl = require("ytdl-core");
const Client = new Discord.Client({
    intents : [
        Discord.Intents.FLAGS.GUILDS,
        Discord.Intents.FLAGS.GUILD_MESSAGES
    ]
});

const prefix ="<";

Client.on("ready", () => {
    console.log("bot opérationnel")
});

// v13+版本将下方"message"改为"messageCreate"
Client.on("message", message => {
    if (message.author.bot) return;
    if (message.content.startsWith (prefix + "hug")){
        let mention = message.mentions.members.first();

        if(mention == undefined){
            message.channel.send("u have to hug someone who actually exists");
        }
        else {
            const embed = new Discord.MessageEmbed()
            .setColor("DARK_RED")
            // 仅修改了此处的displayname为displayName
            .setTitle(":hugging: " + mention.displayName + " received a hug from " + message.author.username + " !")
            .setImage("https://cdn.weeb.sh/images/ryCG-OatM.gif");

        message.channel.send({embeds: [embed]});
        }
    }
});

Client.login("token");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:15:04