如何向所有服务器上的频道发送消息

时间:2021-07-14 11:33:07

标签: javascript node.js discord.js

我想在午夜 12 点向所有名为“labycheck-shop”的所有服务器中的所有频道发送一条消息。 我已经试过了,但没有用:

cron.schedule('0 0 * * *', () => {
  const channel = client.channels.cache.find(ch => ch.name === 'labycheck-shop');
  channel.send('test')
})```

// (cron is node-cron)

1 个答案:

答案 0 :(得分:0)

  1. 此功能在 Discord API 上可能被证明是垃圾邮件,因此您可能需要牢记这一点

  2. 我相信您可能想要使用 <Collection>.filter 而不是 <Collection>.find。 Discord.js Collections 中的 find 函数的工作原理与 <Array>.find 非常相似,它返回它为 true 的第一个结果。 因此,您要做的是,使用 <Collection>.filter 过滤该名称的公会,然后循环遍历数组并发送消息。

有点像这样

cron.schedule('0 0 * * *', () => {
    client.channels.cache.filter((ch) => ch.name === "labycheck-shop").forEach((channel) => channel.send("Ding dong it's 12 AM"));
});

应该是这样的,我还检查了 cron 表达式,看起来也不错