如何让我的机器人对随机表情符号做出反应?

时间:2019-12-24 05:13:15

标签: bots discord.js

我使用Discord.js,到目前为止,这是我的代码。

    if (message.content === '..react') {
        message.react('?')
        message.react('?')
        message.react('?')
        message.react('?')
        message.react('?')
        message.react('?')
        message.react('?')
        message.react('?')
        message.react('?')
        message.react('?')
        message.react('?')
        const embed = new RichEmbed()
        .setDescription('I just reacted with diffrent emojies! React to your favorite!')
        .setColor(0x1ED5E7)
      message.channel.send(embed);
    }
  });

我希望它对可用的表情符号做出反应,而不会超过11个反应。帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果您想反应随机表情符号,则可以获取所有客户端emoji.id,将其随机播放,然后切片并在数组映射中反应。我不知道在Discord中获取标准unicode表情符号列表的方法,因此也许您需要将所有非混合表情符号数组都设置为大,然后将其与emojilist数组连接。

与11个随机可用的客户端表情符号进行反应,您可以像这样

  if (message.content === '..react') {
    let emojiList = bot.emojis.map(emoji => emoji.id)
    let randTenEmojies = shuffle(emojiList).splice(0,11)
    randTenEmojies.map(emoji => message.react(emoji))
    const embed = new RichEmbed()
    .setDescription('I just reacted with diffrent emojies! React to your favorite!')
    .setColor(0x1ED5E7)
  message.channel.send(embed);
}
});

const shuffle = (arr) => {
    var j, temp;
    for(var i = arr.length - 1; i > 0; i--){
        j = Math.floor(Math.random()*(i + 1));
        temp = arr[j];
        arr[j] = arr[i];
        arr[i] = temp;
    }
    return arr;
}