Как сохранить значение переменной, когда пользователь реагирует на сообщение?

#discord #discord.js

#Discord #discord.js

Вопрос:

Я выяснил, как заставить бота реагировать на его сообщение из следующего кода:

 if(message.content === "!start"){
        message.channel.send(serve).then(message => {
            message.react('764193096060764211');
        })
}
 

(serve — это вложение, хранящееся в переменной)

Я хочу, чтобы пользователь отреагировал на это, а бот что-то сделал с этой информацией, например, сохранив значение 1 в переменной с именем startingServe . Если пользователь не реагирует в течение 5 секунд, я хочу, чтобы бот сообщал «Игрок завершен». Как мне это сделать? С нетерпением ждем помощи от этого сообщества! Если от меня нужно что-то еще, чтобы ответить на этот вопрос, можно спросить.

Ответ №1:

Используйте что-то вроде этого:

 var startingServe = 0
message.awaitReactions(filter, { max: 1, time: 5000, errors: ['time'] })
    .then(collected => {
        const reaction = collected.first();
        if (reaction.emoji.id == "764193096060764211") {
            startingServe = 1
        } else {
            message.channel.send('Gamer Ended')
        }
    })
    .catch(collected => {
        message.channel.send('Gamer Ended');
    });
 

Источник и дополнительная информация на этой странице руководства.