Сообщение Discord Bot не собирает реакции - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь удалить реакции на мое сообщение ботов, как только реакция приходит, но по какой-то причине я получаю поведение, которое я не могу отследить причину.

Я хочу видеть, когда пользователь реагирует на ответное сообщение, но я вижу только, когда бот реагирует на собственное сообщение и когда пользователь реагирует на сообщение пользователя. Я запустил свой код (ниже) и отправил «сообщение» на канал, и после ответа от бота я нажал на реакцию как на свое сообщение, так и на сообщение бота. Вот журналы:

bot is ready
reaction by:  Lyon bot  on  reply
reaction by:  Lyon bot  on  reply
reaction by:  Lyon bot  on  reply
reaction by:  Lyon bot  on  reply
reaction by:  Virt  on  message
reaction by:  Virt  on  message

Я ожидаю, что смогу увидеть reaction by: Virt on reply, но никогда не вижу его.

const Discord = require('discord.js');
const bot = new Discord.Client();

const token = '*******';

bot.on('ready', () => {
    console.log('bot is ready');
});

bot.on('message', message => {
    if (message.content === 'message') {
        message.channel.send('reply');
    }

    message.react('?').then(() => message.react('?'));

    const filter = (reaction, user) => {
        return ['?', '?'].includes(reaction.emoji.name) && user.id === message.author.id;
    };

    const collector = message.createReactionCollector(filter, {});

    collector.on('collect', r => {
        console.log('reaction by: ', r.message.author.username, ' on ', r.message.content);
    });
});

bot.login(token);

1 Ответ

0 голосов
/ 29 апреля 2020

Ваш фильтр кажется неправильным, замените его следующим: const filter = (reaction, user) => reaction.emoji.name === '?' || reaction.emoji.name === '?' && user.id === message.author.id;

...