title: discord.js: How do I replace reactions with buttons in my ticket system?
body: <p>I am developing my ticketing system in the last time. I saw an update of 'Ticketsbot' and turned curious &quot;how is that possible???, i have never seen that!&quot;
  <a href="https://i.stack.imgur.com/gSUu7.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/gSUu7.png" alt="this" /></a>
  So, can you please help me how can I replace reactions with such buttons.</p>
  <p>The part of my code (part which is responsible for reactions):</p>
  <pre><code>let embed = new discord.MessageEmbed()
      .setAuthor(`Welcome to your ticket!`)
      .addField('Here you can:', ':one: Report an issue or bug of the server.\n:two: Suggest any idea for the server.\n:three: Report a staff member of the server.')
      .addField('Make sure to be patient, support will be with you shortly.', `&lt;@&amp;837064899322052628&gt;`)
      .setColor('#468DFF')
      .setFooter(`AftNetwork`)
  
  let embed2 = new discord.MessageEmbed()
      .setAuthor(`React with ⛔ if your issue has been resolved.`)
      .setColor('#468DFF')
      .setFooter(`AftNetwork`)
  
  let reactionMessage = null;
  try {
    reactionMessage = await channel.send(`${message.author}`, {
  embed: embed,
  }).then(message =&gt; message.channel.send(embed2));
  } catch (error) {
    console.log(error);
    return message.channel.send(
      '⚠️ Error sending message in ticket channel!',
    );
  }
  
  try {
    await reactionMessage.react('');
    await reactionMessage.react('⛔');
  } catch (err) {
    console.log(err);
    return channel.send('⚠️ Error sending emojis!');
  }
  
  const collector = reactionMessage.createReactionCollector(
    (reaction, user) =&gt; {
      // collect only reactions from the original
      // author and users w/ admin permissions
      const isOriginalAuthor = message.author.id === user.id;
      const isAdmin = message.guild.members.cache
        .find((member) =&gt; member.id === user.id)
        .hasPermission('MANAGE_MESSAGES');
  
      return isOriginalAuthor || isAdmin;
    },
    { dispose: true },
  );
  
  collector.on('collect', (reaction, user) =&gt; {
    switch (reaction.emoji.name) {
      // lock: admins only
      case '':
        const isAdmin = message.guild.members.cache
          .find((member) =&gt; member.id === user.id)
          .hasPermission('MANAGE_MESSAGES');
  
        if (isAdmin) {
          channel.updateOverwrite(message.author, {
            SEND_MESSAGES: false,
          });
        } else {
          // if not an admin, just remove the reaction
          // like nothing's happened
          reaction.users.remove(user);
        }
        break;
      // close: anyone i.e. any admin and the member
      // created the ticket
      case '⛔':
        channel.send('Deleting this ticket in 5 seconds...');
        setTimeout(() =&gt; channel.delete(), 5000);
        break;
    }
  });
  </code></pre>
  <p>Have a good day!</p>