Discord API - Событие нажатия на кнопку реакции
Мне нужно, чтобы бот выставлял 5 реакций под своим сообщением, затем если кто-то нажмёт на одну из реакций выполнилась функция. Как это сделать?
Ответы (1 шт):
Автор решения: Hiteke
→ Ссылка
В discord.js есть коллектор реакций
client.on('message', async msg => {
if (msg.content === '!test') {
//Создаем сообщение
var m = await msg.сhannel.send('Привет, Мир!')
//Ставим реакции на сообщение
await m.react('1️⃣')
await m.react('2️⃣')
await m.react('3️⃣')
await m.react('4️⃣')
await m.react('5️⃣')
//Настраиваем фильтр
const filter = (reaction, user) => {
return user.id === msg.author.id
}
//Создаем коллектор
var collector = m.createReactionCollector(filter, {
time: 60000 //Сколько будет работать коллектор
})
//Обработка нажатых реакций
collector.on('collect', (reaction, reactionCollector) => {
if (reaction.emoji.name === '1️⃣') {
//Ваша функция
}
collector.stop() //Остановка коллектора
})
//Обработка остановки коллектора
collector.on('end', collected => {
m.delete() //Удаляем сообщение
});
}
})
Руководство https://discordjs.guide/popular-topics/collectors.html#basic-reaction-collector