Guest User

Discord Embed Buttons

a guest
Aug 14th, 2022
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. } else if (commandName === 'ticket') {
  2.         await interaction.deferReply({ ephemeral: true });
  3.         const type = interaction.options.getString('type');
  4.         const body = interaction.options.getString('body');
  5.         const ticketChannel = interaction.guild.channels.cache.get('1008036059709456385');
  6.  
  7.         const ticket_buttons = new ActionRowBuilder()
  8.             .addComponents(
  9.                 new ButtonBuilder()
  10.                     .setCustomId('claim')
  11.                     .setLabel('Claim Ticket')
  12.                     .setStyle(ButtonStyle.Success),
  13.             )
  14.             .addComponents(
  15.                 new ButtonBuilder()
  16.                     .setCustomId('close')
  17.                     .setLabel('Close Ticket')
  18.                     .setStyle(ButtonStyle.Danger)
  19.             );
  20.  
  21.         const ticket = new EmbedBuilder()
  22.             .setColor('DarkGrey')
  23.             .setAuthor({ name: `Ticket created by ${interaction.user.tag}`, iconURL: interaction.member.displayAvatarURL() })
  24.             .setTitle(`Ticket - ${type}`)
  25.             .setDescription(`Status: UNCLAIMED\nTicket Author: <@${interaction.user.id}>\nTicket Inquiry: ${body}`)
  26.             .setTimestamp();
  27.  
  28.         const message = await ticketChannel.send({ embeds: [ticket], components: [ticket_buttons] });
  29.         const dmMessage = await interaction.member.send({ embeds: [ticket] });
  30.         await interaction.editReply({ content: `Ticket has been created!` });
  31.  
  32.         client.on('interactionCreate', async button => {
  33.             if (!button.isButton()) return;
  34.             if (!button.memberPermissions.has('ModerateMembers')) return button.reply({ content: 'You cannot claim this ticket!', ephemeral: true });
  35.  
  36.             if (button.customId === 'claim') {
  37.                 const editEmbed = new EmbedBuilder()
  38.                     .setColor('Green')
  39.                     .setAuthor({ name: `Ticket created by ${interaction.user.tag}`, iconURL: interaction.member.displayAvatarURL() })
  40.                     .setTitle(`Ticket - ${type}`)
  41.                     .setDescription(`Status: CLAIMED BY: <@${button.user.id}\nTicket Author: <@${interaction.user.id}>\nTicket Inquiry: ${body}`)
  42.                     .setTimestamp();
  43.  
  44.                 message.edit({ embeds: [editEmbed] });
  45.                 dmMessage.edit({ embeds: [editEmbed] });
  46.                 button.reply({ content: 'Successfully claimed the ticket!', ephemeral: true });
  47.             } else if (button.customId === 'close') {
  48.                 const closeEmbed = new EmbedBuilder()
  49.                     .setColor('Red')
  50.                     .setAuthor({ name: `Ticket created by ${interaction.user.tag}`, iconURL: interaction.member.displayAvatarURL() })
  51.                     .setTitle(`Ticket - ${type}`)
  52.                     .setDescription(`Status: CLOSED BY: <@${button.user.id}>\nTicket Author: <@${interaction.user.id}>\nTicket Inquiry: ${body}`)
  53.                     .setFooter({ text: 'Ticket Closed' })
  54.                     .setTimestamp();
  55.                
  56.                 button.reply({ content: 'Successfully closed the ticket!', ephemeral: true });
  57.                 await message.delete();
  58.                 interaction.member.send({ embeds: [closeEmbed] });
  59.             }
  60.         });
  61.     }
Advertisement
Add Comment
Please, Sign In to add comment