运行1个斜线命令后是否可以有多个选择菜单,例如/quiz foo
将所有测验问题显示为一组选择菜单
类似这样的东西:
const row1 = new MessageActionRow().addComponents(
new MessageSelectMenu()
.setCustomId('select')
.setPlaceholder('Nothing selected')
.addOptions([
{
label: 'Select me',
description: 'This is a description',
value: 'first_option1',
},
{
label: 'You can select me too',
description: 'This is also a description',
value: 'second_option1',
},
])
)
const row2 = new MessageActionRow().addComponents(
new MessageSelectMenu()
.setCustomId('select')
.setPlaceholder('Nothing selected')
.addOptions([
{
label: 'Select me',
description: 'This is another description',
value: 'first_option2',
},
{
label: 'You can select me too',
description: 'This is also another description',
value: 'second_option2',
},
])
)
await interaction.reply({ content: 'Done!', components: [row1, row2] })
在一条消息中可以有多个MessageSelectMenu
,发送它们的方式就是您使用的方式。要在选择某个选项时执行一段代码,您只需添加:
client.on('interactionCreate', (interaction) => {
const valueClicked = interaction.values[0]
// Execute whatever you want with the value
})
需要记住的一点是,您当前的代码会出现错误,因为代码中的两个MessageSelectMenu
都有相同的customId
,所以您可能需要将其更改为不同的值。