收到表情符号反应后的Discord.js消息

时间:2018-04-15 13:51:53

标签: javascript do-while discord.js

一旦前一条消息收到反应,有可能让Discord机器人发送消息吗?我在考虑类似的事情:

| id | name |
|----|------|
| 1  | John |
| 2  | Ana  |
| 3  | Dan  |

1 个答案:

答案 0 :(得分:0)

这不是你应该做的事 你想要的是message.awaitReactions DiscordJS团队和社区提供了一个很好的指南,它为MessageAdapter.ViewHolder holder= msgAdp.getViewHolder(msgAdp.getItemCount()-1); //Here holder.mMessageView is a text view Toast.makeText(ctx,holder.mMessageView.getText().toString(),Toast.LENGTH_SHORT).show(); 提供了一个很好的例子 以下是link及其使用的示例:

awaitReactions

你基本上需要一个过滤器,它只允许一系列表情符号,并且用户可以“使用”它们。

您的代码也在某处:

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

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

message.awaitReactions(filter, { max: 1, time: 60000, errors: ['time'] })
    .then(collected => {
        const reaction = collected.first();

        if (reaction.emoji.name === '') {
            message.reply('you reacted with a thumbs up.');
        }
        else {
            message.reply('you reacted with a thumbs down.');
        }
    })
    .catch(collected => {
        console.log(`After a minute, only ${collected.size} out of 4 reacted.`);
        message.reply('you didn\'t react with neither a thumbs up, nor a thumbs down.');
    });

您应该删除返回部分,否则它将只返回而不执行其余代码。