在我对自己发送的图像中的表情符号做出反应后,如何让不和谐的机器人做某事

How to make a discord bot do something after I react to an emoji in an image sent by itself

我正在制作我的第一个 discord 机器人,我试图让它在我对它的一个表情符号做出反应后发送消息,问题是,当我点击竖起大拇指的表情符号时,机器人根本不发送消息,现在已经几个小时了,我找不到问题,很抱歉,如果这个问题已经在其他地方解决了,我找不到任何有用的东西。

if (command === "ping") {

    const attachment = new MessageAttachment('https://cdn.mcr.ea.com/3/images/ac394369-2801-4e09-87eb-82ca54e26254/1588018258-0x0-0-0.jpg'); 
    const sentMessage = await message.channel.send({files: [attachment] })
    sentMessage.react('');
    //sentMessage.react('');
    const filter = (reaction, user) => {
        return reaction.emoji.name === '' && user.id === message.author.id;
    };
    const collector = sentMessage.createReactionCollector(filter, { time: 15000 });
    collector.on('collect', (reaction, user) => {
        message.channel.send(`Collected ${reaction.emoji.name} from ${user.tag}`);
    });

    collector.on('end', collected => {
        message.channel.send(`Collected ${collected.size} items`);
        console.log(`Collected ${collected.size} items`);
    });

编辑

我发现我缺少 "GUILD_MESSAGE_REACTIONS" 意图,现在我有这 3 个 "GUILDS", "GUILD_MESSAGES", "GUILD_MESSAGE_REACTIONS",但仍然无法正常工作!

完整代码如下: https://pastebin.com/Q0eZ6VSz

嗨,这段代码可以正常工作,除了一点小事...

sentMessage.createReactionCollector(filter, { time: 15000 });

将其更改为:

sentMessage.createReactionCollector({filter, time: 15000 });

我还建议您也添加 max: 1 选项。

所以最终代码:

...
sentMessage.createReactionCollector({filter, max: 1,  time: 15000 });

在这种情况下只有你最先做出反应。