@Pelervin

Как сделать, чтобы появлялась реакция под сообщением бота и при нажатии срабатывал ответ?

Доработал немного задачу бота дискорда. Нужно, чтобы при запросе слова !iq выдавалось оповещение, далее по истечении времени появляется еще 2 оповещения в других каналах рабочих тестов. Позже они удаляются. Под двумя из сообщений надо выводить реакцию песочных часов.
Есть 2 проблемы:
1. Реакция не появляется, она появляется только если размещать часы после закрывающего if, но таких if еще несколько для разных видов тестов.
2. В дальнейшем надо назначить при нажатии на эмодзи действие, не очень разобрался, как это действие назначить; думал, добавить кнопками, но это неудобно, и так не подходит.
Не могу понять даже, почему реакции не появляются.

client.on(Events.MessageCreate, async (message) => {
   if (message.content === "!iq") {
      message.guild.channels.cache.get('1111111111111111111').send("Тест назначен. Время пошло!").then(() => {
         message.react('⏳');
         message.delete().catch(() => null);
         message.guild.channels.cache.get('1111111111111111111').send("Осталось мало времени").then(msg => {
                  message.react('⏳');
            setTimeout(() => msg.delete().catch(() => null), 60000 * 60 * 2);
         });
         setTimeout(() => {
            message.guild.channels.cache.get('1111111111111111111').send("Ваше время почти истекло").then(msg => {
               setTimeout(() => msg.delete().catch(() => null), 60000 * 60 * 4)
            });
         }, 60000 * 60 * 3);
      })
   }
});
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ответы на вопрос 1
Syjalo
@Syjalo
Представьте себе бота
1. Вы сразу удаляете сообщение, на которое реагируете.
2. Используйте коллекторы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы