NodeJS 向特定用户发送消息

um6iljoc  于 2022-12-12  发布在  Node.js
关注(0)|答案(2)|浏览(230)

我有这样的代码:我希望机器人每1分钟向一个用户发送消息,而不是每1分钟向所有用户发送消息

guild.members.cache.forEach(member => {
 setInterval(() => {
      member.send('hello').catch(error => {message.channel.send(`**dm closed**`)});
   }, 60000)
  })
   }) 
  }
})

我希望机器人每1分钟发送消息给一个特定的用户,而不是所有。
我尝试了下面的代码,但它不工作.

rxztt3cl

rxztt3cl1#

所以,据我所知,对于名单上的每一个成员,你都要给每个人发一条信息,每隔一分钟。
您可以对所有成员使用一个间隔,通过保留对发送消息的最后一个成员的索引的引用来节省内存使用量和CPU使用量。

let members = guild.members.cache
let index = -1;
let timer = setInterval(() => {
    if (index + 1 >= members.length) index = 0;
    else index++;
    
    let member = members[index];
    if (member) member.send('hello').catch(error => {message.channel.send(`**dm closed**`)});
}, 60000)
6rqinv9w

6rqinv9w2#

从外观上看,你好像是在遍历一个公会成员列表,并且每分钟都要向列表中的每个成员发送“hello”。如果你想每分钟都向某个特定的用户发送“hello”,你必须在下面的代码中指定一个成员(用该成员替换specificMember)。

setInterval(() => {
   specificMember.send('hello')
   .catch(error => {message.channel.send(`**dm closed**`)});
 }, 60000)

相关问题