Je crée un bot Discord en utilisant JavaScript et discord.js. Là, je veux envoyer un RichEmbed/MessageEmbed (je ne sais pas comment il s'appelle) à un canal. Au lieu d'envoyer un Embed cependant, il a jeté une erreur dans discord.js.
TypeError: fields.flat is not a function
at Function.normalizeFields (D:\discord-bot\node_modules\discord.js\src\structures\MessageEmbed.js:436:8)
at MessageEmbed.addFields (D:\discord-bot\node_modules\discord.js\src\structures\MessageEmbed.js:252:42)
at commands.forEach.command (D:\discord-bot\src\js\core\commands\commandManager.js:55:19)
at Array.forEach (<anonymous>)
at helloWorldEmbed (D:\discord-bot\src\js\core\commands\commandManager.js:54:18)
at Object.call (D:\discord-bot\src\js\core\commands\commandManager.js:29:13)
at Client.client.on (D:\discord-bot\src\js\core\bot.js:16:49)
at Client.emit (events.js:182:13)
at MessageCreateAction.handle (D:\discord-bot\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (D:\discord-bot\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
J'ai déjà cherché une réponse, mais il semble que je sois la seule personne à avoir des problèmes.
Voici le code que j'ai utilisé:
const embed = new MessageEmbed()
.setTitle('Hello World')
.setDescription('This is a test.')
.setColor('#3498db')
quotes.forEach(quote => {
embed.addField(quote.name, quote.description, true)
})
message.channel.send('Hello world.', embed)
Comme indiqué dans les commentaires, la mise à jour de Node.js résout le problème. Discord.js v12 nécessite 12.0.0 ou une version plus récente en raison des méthodes (comme Array#flat()
dans l'erreur) qu'il utilise pour son efficacité qui n'existent pas dans les anciennes versions.