Estoy tratando de hacer un Menú para mi servidor Discord y tengo el comando de barra funcionando, pero cuando voy a tirar del menú obtengo: Menú principal como un retorno en discordia al ejecutar el comando de barra.
Utilicé el siguiente código para llegar hasta donde tengo:
//Remember to run " node deploy-commands.js " to register your commands! const { SlashCommandBuilder } = require('@discordjs/builders'); const { MessageActionRow, MessageButton } = require('discord.js'); module.exports = { data: new SlashCommandBuilder() .setName('menu') .setDescription('Brings up the Main Menu'), async execute(interaction, client) { const row = new MessageActionRow() .addComponents( new MessageButton() .setCustomId('dice-bag') .setLabel('danger') .setStyle("DANGER"), new MessageButton() .setCustomId('spells') .setLabel('primary') .setStyle("PRIMARY"), new MessageButton() .setCustomId('inventory') .setLabel('Success') .setStyle("SUCCESS"), ); await interaction.reply({content: 'Main menu,', components: [row]}) }, };Tengo la sensación de que necesito incrustar el mensaje de alguna manera, pero no estoy 100 % seguro de cómo hacerlo. Estoy bastante seguro de que probablemente necesito agregar algo:
await interaction.reply({content: 'Main menu,', components: [row]})Estoy bastante seguro de que los componentes: [fila]}) están mal, pero no estoy seguro de qué poner en su lugar. cada vez que trato de arreglarlo, recibo errores sobre la fila de acción MessageActionRow que necesita NUEVO.
¡Gracias por cualquier ayuda!
¡Nota! Esto supone que está utilizando Discord.js v13.2.0.
Según la documentación, <MessageActionRow>.addComponents(...) espera una matriz de MessageActionRowComponentResolveables . Esto se parece a esto:
<MessageActionRow>.addComponents([ new MessageButton().setValue("option1").setStyle("PRIMARY"), new MessageButton().setValue("option2").setStyle("DANGER") ]); Lo importante a tener en cuenta aquí es el uso de llaves ( [] ). En JavaScript, las llaves indican un Array. En tu código, te faltan las llaves.
// DON'T do this! <MessageActionRow>.addComponents(new MessageButton, new MessageButton); // DO this! <MessageActionRow>.addComponents([ new MessageButton, new MessageButton ]);Con eso, su código no es muy diferente. Todo lo que tienes que hacer es agregar las llaves.
<MessageActionRow>.addComponents([ new MessageButton() .setCustomId('dice-bag') .setLabel('danger') .setStyle("DANGER"), new MessageButton() .setCustomId('spells') .setLabel('primary') .setStyle("PRIMARY"), new MessageButton() .setCustomId('inventory') .setLabel('Success') .setStyle("SUCCESS") ]);