类型错误; discord.js 中未定义的“MessageEmbed”

Posted

技术标签:

【中文标题】类型错误; discord.js 中未定义的“MessageEmbed”【英文标题】:Type error; 'MessageEmbed" of undefined in discord.js 【发布时间】:2021-10-26 04:25:20 【问题描述】:

我不明白为什么会出现错误: TypeError:无法读取未定义的属性“MessageEmbed”

这是我的代码:

module.exports = 
name: 'help',
description: "this is the help command",
execute(message, args, Discord)
  const newEmbed = new Discord.MessageEmbed()
  .setColor('#304281')
  .setTitle('Commands')
  .setDescription('here are the commands'),
  .addFields(
    name: '-help', value: 'The help command',
    name: '-ping', value: 'Ping pong**'
  ),
  .setFooter('thanks for using the bot')

  message.channel.send(newEmbed);

【问题讨论】:

可能是您没有正确地将 Discord 传递给您的命令?可能需要更多代码来回答这个问题 还需要什么代码? 这是我的 main.js 文件中的代码: if(command === 'help') client.commands.get('help').execute(message,args) 【参考方案1】:

如 cmets 中所述,您使用以下代码调用您的代码:

// 2 arguments passed
client.commands.get('help').execute(message,args)

但是,您的命令需要 3 个参数:

execute(message, args, Discord)
  // ...

因此,Discordundefined,导致您的错误。要解决此问题,您可以:

执行命令时传递Discord
client.commands.get("help").execute(message, args, Discord);
const Discord = require("discord.js") 在你的命令里面
const Discord = require("discord.js");
// ...
execute(message, args)
  const newEmbed = new Discord.MessageEmbed();
  // ...

【讨论】:

【参考方案2】:

我已经通过添加一些代码来修复:

const  MessageEmbed  = require('discord.js');
  const newEmbed = new MessageEmbed()

在我这样做之后它起作用了

【讨论】:

以上是关于类型错误; discord.js 中未定义的“MessageEmbed”的主要内容,如果未能解决你的问题,请参考以下文章

无法读取 discord.js 中未定义的属性“发送”

排行榜命令中未定义的用户名 [ quick.db / discord.js ]

当不应该在 discord.js 命令处理程序中未定义时,无法读取未定义的属性

JavaScript、Discord.js、Node.js 类型错误:无法读取未定义的属性“执行”

Discord.js 机器人“未处理的承诺拒绝类型错误:无法读取未定义的属性 255890520990154752”

有人帮我解决这个错误:无法设置未定义的属性“类型”。在我的架构 discord.js