Estoy usando la biblioteca discord.js y node.js para crear un bot de Discord que puede enviar un DM a un usuario que contiene botones.
Quiero enviar un mensaje de Discord con varios botones, cada uno con una identificación y una etiqueta únicas. Mi método actual está usando una lista de botones. Utilizo un bucle for para agregar objetos de botón a la lista y lo paso a los componentes del método .send como una lista.
x = 5 buttons = [] for (let i = 0; i < x; i++) { buttons.push(new MessageActionRow().addComponents( new MessageButton() .setCustomId(i.toString()) .setLabel(messageSplit[i]) .setStyle('PRIMARY') ) ) } msg.reply({ embeds: [embedRecipient], components: buttons })Esto funciona, pero cada botón es una nueva ActionRow propia y, por lo tanto, los botones están en diferentes líneas. Lo que quiero decir: imagen de botones cada uno en una línea diferente
¿Cómo puedo hacer que se conserven las mismas características (como customId y Label) de los botones, pero todos están en la misma línea? Hacerlos todos en el mismo ActionRow debería resolver esto. No conozco el código para lograrlo.
Para colocar todos los botones en un solo MessageActionRow , podría simplemente declarar la fila fuera del bucle for y luego dentro de ella, simplemente puede usar .addComponents() para agregar un botón a MessageActionRow . Un ejemplo es este:
x = 5 const buttons = new MessageActionRow() for (let i = 0; i < x; i++) { buttons.addComponents( new MessageButton() .setCustomId(i.toString()) .setLabel(messageSplit[i]) .setStyle('PRIMARY') ) ) } msg.reply({ embeds: [embedRecipient], components: [buttons] })