#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] });