簡體   English   中英

收到表情符號反應后發出Discord.js消息

[英]Discord.js message after receiving emoji reaction

一旦先前的消息收到響應,是否可以使Discord機器人發送消息? 我在想類似的東西:

if(cmd === `${prefix}list`) {
    var i = 0;

    let embed = new Discord.RichEmbed()
      .addField("List", "Content");

    let anotherembed = new Discord.RichEmbed()
      .addField("Message", "List has been completed!");

    return message.channel.send(embed);

    do {
      message.channel.send(anotherembed + 1);
    }
    while (i !== 0) && (reaction.emoji.name === "✅");

}

那不是你應該做的。
您想要的是message.awaitReactions
有由DiscordJS團隊和社區有一個很好的例子一個很大的指導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.');
    });

基本上,您需要一個過濾器,該過濾器僅允許一定范圍的表情符號,並由用戶“使用”它們。

而且在您的代碼中的某處您有:

return message.channel.send(embed);

您應該刪除返回部分,否則它將返回並且不執行其余代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM