discord.js Событие «Ожидание реакции» не функционирует?

#javascript #node.js #discord #discord.js

Вопрос:

Ниже приведен небольшой раздел из кода, если вам нужно больше, чтобы понять проблему, дайте мне знать. Код запускается и выводит «примененный материал.. ожидание.», но когда добавляется реакция, ничего не происходит.

 let PossibleMessage = await Message.channel.send({embeds: [msgEmbed1]});

PossibleMessage.react("✅").then(() => {
  PossibleMessage.react("❎").then(() => {
    console.log("stuff applied.. awaiting.")
    PossibleMessage.awaitReactions(
      (Reaction, User) => User.id == Message.author.id amp;amp; (Reaction.emoji.name == "❎" || Reaction.emoji.name == "✅"),
      {max: 1, time: 3000}

    ).then(Collected => {
      console.log("yes")
      if (Collected.first().emoji.name == "✅") {
        console.log("ye2")
 

Комментарии:

1. смешивание await и .then в одной функции всегда вызывает у меня подозрения, и вложение этих .react.then функций тоже выглядит странно

2. Какая версия discord.js используете ли вы (отлично работает на v12)?

3. Вы включили GUILD_MESSAGE_REACTIONS намерение или ( DIRECT_MESSAGE_REACTIONS для DMs)?

4. Используйте имена переменных в нижнем регистре для всего, что не является классом (конструктором) или пространством имен.

Ответ №1:

Код выглядит нормально (код, которым вы поделились, пропускает 3 окончания «}»).

Возможно, время, которое вы указали в настройках, слишком быстрое, и событие заканчивается без какого-либо ответа. Попробуйте с {max: 1, time: 10000} помощью заставить слушателя подождать 10 секунд.

Если вы используете discord.js v13 убедитесь, что у вас есть намерение для подобных реакций:

 const Discord = require('discord.js');
const client = new Discord.Client({ intents: [Discord.Intents.FLAGS.GUILD_MESSAGE_REACTIONS, Discord.Intents.FLAGS.DIRECT_MESSAGE_REACTIONS] });