Bot Auto仅响应一个dm

时间:2020-09-23 16:44:28

标签: node.js discord.js

所以我想让一个机器人来回答发送的dm。但是我希望它只回复一个人一次,而不管发送的邮件数量如何。 到目前为止,这是我的代码。

注意:我故意设置超时功能,我希望它有5秒的等待时间。

bot.on("message", async (message) => {
  setTimeout(function () {
    if (message.channel.type == "dm") {
      message.author.send("Hi");
    }
  }, 5000);
});

1 个答案:

答案 0 :(得分:0)

您可以使用Set()

const users = new Set();
bot.on('message', async (message) => {
 setTimeout(() => {
  if (message.channel.type == 'dm') {
   if (users.has(message.author.id)) return; // if user has already sent dm
   message.author.send('Hi');
   users.add(message.author.id); // if not, add user to the set and send the message
  }
 }, 5000);
});