我想在午夜 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)
答案 0 :(得分:0)
此功能在 Discord API 上可能被证明是垃圾邮件,因此您可能需要牢记这一点
我相信您可能想要使用 <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 表达式,看起来也不错