@getaxe
JS developer

Как поймать следующее сообщение пользователя?

Мне нужно поймать следующее сообщение пользователя, и взять из него content.
Например:
message.reply('укажите число')
ephemeral: true
????

//ответ бот ожидает в течении 10 секунд, после чего 
message.reply('Прошло 10 секунд, попробуйте еще')
ephemeral: true

p.s. Александр, надеюсь вы не против, что в качестве эксперта выбираю вас. Просто вы помогли 2/2 и ответили очень понятно :)

update:
попытался сделать через timeout, но если будет сообщение - убить таймаут через return;
Но почему-то это не работает =/
bot.on('messageCreate', (message) => {
	if(message.author.id !== "337262564289282051") {
		return;
	}
	if(message.content == "222") {	
		bot.on('messageCreate', (message) => {
			if(message.author.id !== "337262564289282051") {
				return;
			}
			//if канал пользователь
			console.log('123')
			return;
		})
		setTimeout(() => {
			console.log("321");
			return;
		}, 10000);
		return;
	};
})
  • Вопрос задан
  • 141 просмотр
Решения вопроса 1
Alexandre888
@Alexandre888 Куратор тега Боты
Javascript-разработчик
if (message.content === ...) {
    const collector = message.channel.createMessageCollector({
        time: 10000
    });

    let userMessage = [];

    collector.on('collect', m => {
        if (m.author.id === message.author.id) {
            userMessage.push(m.content);
            collector.stop();
        }
    })

    collector.on('end', collected => {
        if (userMessage.length === 0) return message.reply(`Прошло 10 секунд, попробуйте ещё.`)

        // userMessage[0] - контент первого сообщения, отправленного пользователем
    });
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы