Recientemente agregué un controlador de comandos en mi bot de discordia. Todos los comandos que tenían Embeds aparecían con el error "Discord.MessageEmbed no es un constructor".
código:
const Discord = require('discord.js'); module.exports = { name: 'embed', description: "Embeds!", execute(client, message, args, Discord){ const embed = new Discord.MessageEmbed() .setColor('#3498DB') .setAuthor("Afghar | Test", "https://i.imgur.com/jF4xyap.png") .addFields( { name: "Test", value: "- `test`", inline: true }, { name: "Test", value: "- `test`", inline: true }, { name: '', value: '' }, ) .addField("\u200b", "\u200b") .setTimestamp() .setFooter("test", "http://i.imgur.com/w1vhFSR.png"); message.channel.send({ embeds: [embed] }); } }error completo:
C:\Asghar\commands\test.js:7 const embed = new Discord.MessageEmbed() ^ TypeError: Discord.MessageEmbed is not a constructor at Object.execute (C:\Asghar\commands\test.js:7:23) at module.exports (C:\Asghar\events\guild\message.js:11:25) at Client.emit (node:events:527:28) at MessageCreateAction.handle (C:\Asghar\node_modules\discord.js\src\client\actions\MessageCreate.js:34:18) at Object.module.exports [as MESSAGE_CREATE] (C:\Asghar\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32) at WebSocketManager.handlePacket (C:\Asghar\node_modules\discord.js\src\client\websocket\WebSocketManager.js:351:31) at WebSocketShard.onPacket (C:\Asghar\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22) at WebSocketShard.onMessage (C:\Asghar\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10) at WebSocket.onMessage (C:\Asghar\node_modules\ws\lib\event-target.js:199:18) at WebSocket.emit (node:events:527:28)npm uninstall -S discord.js
y entonces
npm i discord.js --save
Discord.MessageEmbed asume que importó el módulo discord.js como una variable llamada Discord . Su método de execute parece tener una variable Discord diferente que no es el módulo discord.js real:
execute(client, message, args, Discord){ Esto anula su variable Discord original, que es el módulo discord.js:
const Discord = require('discord.js'); Debería ver lo que hace esa nueva variable Discord en el método de execute y eliminarla si no es necesaria, o cambiarle el nombre.