Как сделать такое меню на discord.js?

Для создания меню на Discord.js вы можете использовать реакции и методы, предоставляемые библиотекой. Вот подробное объяснение, как это сделать.

1. Создайте главное меню, которое будет отображаться пользователю. Вы можете использовать простое сообщение, содержащее текст и эмодзи-реакции для каждого пункта меню. Например:

const mainMenuMessage = await message.channel.send(`
  **Главное меню**

  1️⃣ Пункт меню 1
  2️⃣ Пункт меню 2
  3️⃣ Пункт меню 3
`);

2. Добавьте реакции к сообщению, чтобы пользователи могли выбрать пункты меню. Используйте метод reaction.edit() для обновления сообщения с новыми реакциями. Например:

await mainMenuMessage.react('1️⃣');
await mainMenuMessage.react('2️⃣');
await mainMenuMessage.react('3️⃣');

3. Добавьте обработчик событий messageReactionAdd, чтобы отслеживать, когда пользователь выбирает реакцию на сообщение. В этом обработчике вы можете выполнить нужные действия в зависимости от выбранного пункта меню. Например:

client.on('messageReactionAdd', (reaction, user) => {
  if (reaction.message.id === mainMenuMessage.id && user.id !== client.user.id) {
    switch (reaction.emoji.name) {
      case '1️⃣':
        // Выполните действия для пункта меню 1
        break;
      case '2️⃣':
        // Выполните действия для пункта меню 2
        break;
      case '3️⃣':
        // Выполните действия для пункта меню 3
        break;
      default:
        // Неизвестная реакция
        break;
    }
  }
});

4. Добавьте обработчик событий messageReactionRemove, чтобы отслеживать, когда пользователь удаляет реакцию с сообщения. В этом обработчике вы можете выполнять дополнительные действия, если необходимо. Например:

client.on('messageReactionRemove', (reaction, user) => {
  if (reaction.message.id === mainMenuMessage.id && user.id !== client.user.id) {
    switch (reaction.emoji.name) {
      case '1️⃣':
        // Отменить действия для пункта меню 1
        break;
      case '2️⃣':
        // Отменить действия для пункта меню 2
        break;
      case '3️⃣':
        // Отменить действия для пункта меню 3
        break;
      default:
        // Неизвестная реакция
        break;
    }
  }
});

5. Убедитесь, что ваш бот готов обрабатывать события реакций, добавив client.login() в конце кода. Например:

client.login('ваш_токен_бота');

Теперь ваш бот будет отображать меню с пунктами и реагировать на выбор пользователя, выполняя соответствующие действия. Вы можете настроить действия для каждого пункта меню, добавив соответствующий код внутри обработчиков событий messageReactionAdd и messageReactionRemove.