Задать вопрос
@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 просмотра
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
Syjalo
@Syjalo
Представьте себе бота
1. Вы сразу удаляете сообщение, на которое реагируете.
2. Используйте коллекторы.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы