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

Я хочу, чтобы бот всегда обнаруживал реакции на выполнение кода (здесь я пытаюсь создать канал, реагируя).

Я пытался использовать Reaction Collector, но у него есть таймер, и его нельзя использовать для каждого сообщения.

Мне нужен пример, пожалуйста, я действительно много чего перепробовал и не нашел ничего полезного в документах. ?

Возможно, лучше задать вопрос на сервере помощи разработчикам Discord. Ссылка на него здесь: discordapp.com/developers/docs/intro#getting-help

Chris Deacy 31.05.2019 04:31

я знаю об этом

user10294268 31.05.2019 11:56
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
1 623
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

I tried to use Reaction Collector but it has a timer...

Мои извинения за это заблуждение; Я ошибся, когда ранее намекал, что коллекционеры ограничены во времени.

Согласно документам, отсутствие параметра time по умолчанию не ограничивает время (см. CollectorOptions). Поэтому этот пример должен продолжать искать реакцию пользователя, пока бот не остановится.

message.channel.send('React with ?.')
  .then(m => {
    const filter = (reaction, user) => user.id === message.author.id && reaction.emoji.name === '?';
    const collector = m.createReactionCollector(filter, { max: 1 });

    collector.on('collect', () => {
      message.clearReactions();
      message.edit('You did it!');
    });
  })
  .catch(console.error);

Однако, как уже упоминалось, если бот остановится, сборщик остановится. Нет простого способа обойти это. Если вам действительно нужна бесконечная коллекция, единственным решением, которое я вижу, является сохранение списка сообщений и соответствующих сборщиков в базе данных (или файле json) и их повторное применение к существующим сообщениям в клиентском событии ready.

Да, я знаю, и у меня есть некоторые существующие определенные сообщения, я хочу, чтобы участники могли создавать голосовые каналы при реагировании, для каждого сообщения есть отдельный канал для создания, я не собираюсь делать это автоматически, например, отображать это сообщение, когда выполнить команду, так что да, единственное, что я должен сделать, это получить идентификаторы сообщений, и я поставлю их на «если», так что да, это хорошо для меня, но я все еще не знаю, как это сделать.

user10294268 31.05.2019 20:06

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

slothiful 31.05.2019 20:08

Точно или лучше: все сообщения уже были отправлены на определенный канал, поэтому нам не нужно получать идентификатор каждого канала.

user10294268 31.05.2019 20:25

Можно ли отправлять сообщения повторно или нужно использовать существующие?

slothiful 31.05.2019 20:26

И мы можем сделать содержимое сообщения в качестве названия канала.

user10294268 31.05.2019 20:27

некоторые существующие вставки на канале под названием «создать голосовые каналы»

user10294268 31.05.2019 20:28

Итак, есть идеи??

user10294268 01.06.2019 23:54

Другие вопросы по теме