Вопрос насчёт SelectMenu в Discord.js v13
Как подставить под value эмбед? Чтобы при выборе в меню, сообщение изменялось на эмбед
const { MessageActionRow, MessageButton, MessageSelectMenu, MessageEmbed } = require('discord.js');
module.exports.run = async (client,message,args,prefix) => {
const ex1 = new MessageEmbed() // Создаём наш эмбэд
.setColor('#43e2f7') // Цвет нашего сообщения
.setTitle('Приветик :>') // Название эмбэд сообщения
.setAuthor(message.guild.name) // Автором будет название сервера
.setDescription(':^Мы любим вас!^:') // комментарий
.setTimestamp() // Дата отправки сообщения
.setFooter('Ваш бот © 2021');
const selectMenu = new MessageSelectMenu()
.setCustomId('select')
.setPlaceholder('Ничего')
.addOptions([
{
label: 'Первый',
description: 'Описание',
value: `Первый` // Как сюда embed подставить??
},
{
label: 'Второй',
description: 'Описание2',
value: `Второй`
},
])
.setMaxValues(1);
const menu = new MessageActionRow()
.addComponents(selectMenu);
message.channel.send({content: 'ЫЫ', components: [menu]});
message.delete().catch();
}
module.exports.help = {
name: "menu" // Название команды
};
В index.js:
client.on('interactionCreate', async (interaction) => {
if (interaction.isButton() && interaction.customId == "archive") {
interaction.reply({ content: 'Pong!', ephemeral: true });
}
if (interaction.isSelectMenu() && interaction.customId == "select") {
interaction.update({ content: `${interaction.values[0]}`});
}
})
Ответы (2 шт):
Автор решения: ces-are
→ Ссылка
Если сообщение будет меняться, то тогда select пропадет. Если так задумано, то в таком случае можно попробовать навешать слушатель на выбираемый элемент в списке и при нажатии удалять сообщение с select-ом и отправлять embed. Либо просто отправлять embed.
Автор решения: Sirok_ 1
→ Ссылка
Просто слушаешь событие нажатия на меню if(interaction.isSelectMenu()) и редачишь сообщение interaction.update({content: "что-то или пустота", embeds: [указывешь что-то или пустота], components: [что-то или пустота]})