Goal: Make a dropdown menu and handle the selection.
Create commands/menudemo.js
const { SlashCommandBuilder } = require("@discordjs/builders");
const { ActionRowBuilder, StringSelectMenuBuilder } = require("discord.js");
module.exports = {
dev: true,
data: new SlashCommandBuilder().setName("menudemo").setDescription("Sends a demo menu"),
async execute(interaction) {
const menu = new StringSelectMenuBuilder()
.setCustomId("demo_menu")
.setPlaceholder("Choose one...")
.addOptions(
{ label: "Red", value: "red" },
{ label: "Blue", value: "blue" },
{ label: "Green", value: "green" }
);
const row = new ActionRowBuilder().addComponents(menu);
await interaction.reply({ content: "Pick a color:", components: [row] });
},
};
Create menus/demo_menu.js
module.exports = {
customID: "demo_menu",
async execute(interaction) {
const choice = interaction.values?.[0];
await interaction.reply({ content: `You chose: ${choice}`, ephemeral: true });
}
};
node index.js
Run /menudemo and pick a value.