我刚开始使用javascript尝试使用discord.js设置discord机器人。我想将此机器人用作组织突袭的“简便”方法。因此,人们只需要轻按一下Icon即可登录团队。

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


...令牌,前缀等

bot.on('message', message => {
    if (message.content.startsWith(PREFIX)) {
        let args = message.content.substring(PREFIX.length).split(" ");


...一些检查命令的东西

message.channel.send('RaidID: ' + RaidID + '\nRaid: GOS \nRaid Leader: <@' + message.author.id + '> \nDate: ' + args[2] + '\nTime: ' + args[3]).then(messageReaction => {
                                            messageReaction.react('✅');
                                        });


到目前为止,代码工作正常。它检查日期和时间就好了。现在,我想检测是否有人对此消息作出了反应,并通过编辑对其进行提及。而且我只是不了解如何使用awaitReactions。甚至连awaitReactions都可以。

最佳答案

您可以替换当前的消息功能

message.channel.send('RaidID: ' + RaidID + '\nRaid: GOS \nRaid Leader: <@' + message.author.id + '> \nDate: ' + args[2] + '\nTime: ' + args[3]).then(messageReaction => {
                                            messageReaction.react('✅');
                                        });


具有此功能:

message.channel
    .send(
        "RaidID: " +
            RaidID +
            "\nRaid: GOS \nRaid Leader: <@" +
            message.author.id +
            "> \nDate: " +
            args[2] +
            "\nTime: " +
            args[3]
    )
    .then((messageReaction) => {
        messageReaction.react("✅");
        messageReaction.awaitReactions((args, user) => {
            return !user.bot && args._emoji.name === "✅";

        }, { max: 1 }).then(reaction => {
            // SOMEONE REACTED
            console.log('REACTION');
        });
    });


它在promise的.awaitReactions中添加.then函数。它检查是否由用户和表情符号✅做出反应。如果反应正确,则调用// SOMEONE REACTED处的部分。

10-06 03:12