const { SlashCommandBuilder, EmbedBuilder, ButtonBuilder, ButtonStyle, ActionRowBuilder } = require('discord.js'); module.exports = { data: new SlashCommandBuilder() .setName('test-button') .setDescription("Button test command."), async execute(interaction) { let embed = new EmbedBuilder() .setDescription('Please use these buttons to see different types of commands.\n\nFor support, join the support server.') .setColor('#6A5ACD'); let row = new ActionRowBuilder() .addComponents( new ButtonBuilder() .setLabel('button-1') .setCustomId("bt-1").setStyle(ButtonStyle.Primary), new ButtonBuilder() .setLabel('button-2') .setCustomId("bt-2").setStyle(ButtonStyle.Primary), new ButtonBuilder() .setLabel('button-3') .setCustomId("bt-3").setStyle(ButtonStyle.Primary) ); const msg = await interaction.reply({ embeds : [embed], components: [row]}); const collector = await msg.createMessageComponentCollector(); collector.on('collect', async (i) => { if (i.customId === "bt-1") { if (i.user.id !== interaction.user.id) { let f = new EmbedBuilder() .setDescription("You cannot use these buttons!") .setColor('#ff0000'); return i.reply({ embeds: [f], ephemeral: true}); } else { await i.deferUpdate(); let e2 = new EmbedBuilder() .setTitle('Moderation commands') .setDescription("\n\n\n").setColor("Random"); const backBt = new ButtonBuilder().setCustomId('back').setLabel("back").setStyle(ButtonStyle.Secondary); await i.editReply({ embeds: [e2], components: [backBt]}); } } else if (i.customId === "bt-2") { if (i.user.id !== interaction.user.id) { let lol = new EmbedBuilder() .setDescription("You cannot use these buttons!") .setColor('#ff0000'); return i.reply({ embeds: [lol], ephemeral: true}); } else { await i.deferUpdate(); let e3 = new EmbedBuilder() .setTitle('Info commands') .setDescription("\n\n\n").setColor("Random"); const backBt2 = new ButtonBuilder().setCustomId('back').setLabel("back").setStyle(ButtonStyle.Secondary); await i.editReply({ embeds: [e3], components: [backBt2]}); } } else if (i.customId === "bt-3") { if (i.user.id !== interaction.user.id) { let no = new EmbedBuilder() .setDescription("You cannot use these buttons!") .setColor('#ff0000'); return i.reply({ embeds: [no], ephemeral: true}); } else { await i.deferUpdate(); let e4 = new EmbedBuilder() .setTitle('Fun commands') .setDescription("\n\n\n").setColor("Random"); const backBt3 = new ButtonBuilder().setCustomId('back').setLabel("back").setStyle(ButtonStyle.Secondary); await i.editReply({ embeds: [e4], components: [backBt3]}); } } else if (i.customId === "back") { if (i.user.id !== interaction.user.id) { let nope = new EmbedBuilder() .setDescription("You cannot use these buttons!") .setColor('#ff0000'); return i.reply({ embeds: [nope], ephemeral: true}); } else { await i.deferUpdate(); let e1 = new EmbedBuilder() .setDescription('Please use these buttons to see different types of commands.\n\nFor support, join the support server.') .setColor('#6A5ACD'); let row1 = new ActionRowBuilder() .addComponents( new ButtonBuilder() .setLabel('button-1') .setCustomId("bt-1").setStyle(ButtonStyle.Primary), new ButtonBuilder() .setLabel('button-2') .setCustomId("bt-2").setStyle(ButtonStyle.Primary), new ButtonBuilder() .setLabel('button-3') .setCustomId("bt-3").setStyle(ButtonStyle.Primary) ); await i.editReply({ embeds: [e1], components: [row1]}); } } }); }, };