Код ниже работает хорошо, пока я не попытаюсь отправить сообщения после выбора X или проверки. Я получаю это вместо https://i.gyazo.com/2b8c4cfcd047121df364218ef0e8d7e9.png
Насколько я понимаю, эта коллекция является картой. Я пробовал разные способы доступа к карте, и все они были либо неопределенными, либо [объектными объектами] и т. Д. Вместо имени пользователя, отправившего собранную реакцию. Согласно документам, response.users - это то, как я думаю, что к коллекциям обращаются, но это не работает для меня ...
Я знаю, что он подтвердил, кто отправил реакцию, потому что я добавил строку «message.reply (« Вы приняли вызов. »)» Прямо над message.channel.send (`$ {response.users} ... ", и он отвечает этой строкой сразу после того, как я отреагировал, и он правильно отображает имя пользователя. Я пытался использовать collection.get (), как я видел, что некоторые люди используют, что тоже не работает ... Я не может прогрессировать дальше для моего бота, не заставив это работать.
Мне требуется имя пользователя, идентификатор и т. Д. Для пользователя, который отреагировал, потому что его информация используется для отправки их в таблицу mysql, в которой содержится статистика игры, для которой предназначен этот вызов.
async function acceptQuestion() {
const agree = "✅"
const disagree = "❌"
let msg = await message.channel.send(`A challenge has been issued by ${author}?\n\n**IF** you are listed above, please select one of the following to accept or deny the challenge...`)
await msg.react(agree)
await msg.react(disagree)
const filter = (reaction, user) => {
return ['✅', '❌'].includes(reaction.emoji.name) && uniquePlayersIDArray.includes(user.id);
};
const collector = await msg.createReactionCollector(filter, { time: 15000 });
collector.on('collect', (reaction, reactionCollector) => {
console.log(`Collected ${reaction.emoji.name}`)
if (reaction.emoji.name === '✅') {
message.channel.send(`${reaction.user} has **accepted** the challenge! Please await 5 minutes to pass or for all challenged players to respond!`)
} else if (reaction.emoji.name === '❌') {
message.channel.send(`${reaction.user} has **declined* the challenge! Please await 5 minutes to pass or for all challenged players to respond!`)
}
});
collector.on('end', collected => {
console.log(`Collected ${collected.size} items`);
});
}
Как я уже говорил выше, вместо [карты объектов] я хочу получить имя пользователя, который отправил реакцию. Мне также нужно будет получить идентификатор для пользователя. Ничто из того, что я пробую, не сработало.
Заранее спасибо за любую помощь!