我在时间进行了自动通道清洁(Monday 15:00)
但是我的程序不能正常工作。 当频道中出现消息时,倒计时开始。
我需要在 channel.id
中没有新消息的情况下清除频道代码
const schedule = require("node-schedule");
client.on("message", async (message) => {
if (client.channels.cache.get("829042005236645900")) {
const job = schedule.scheduleJob('30 * * * * *', function () {
console.log('Delete');
message.channel.bulkDelete(20)
});
}
});
答案 0 :(得分:0)
您似乎是在事件处理程序中创建计划,这可能是导致问题的原因。这是一个替代方案:
const schedule = require("node-schedule");
const channel = client.channels.cache.get("829042005236645900");
const job = schedule.scheduleJob('30 * * * * *', function () {
console.log('Delete');
channel.bulkDelete(20);
});
但是,您似乎还想让事件每 30 秒触发一次? node-schedule
有一个名为 Recurrence Rule Scheduling 的系统:
const schedule = require("node-schedule");
const channel = client.channels.cache.get("829042005236645900");
const job = new schedule.scheduleJob({ second: new schedule.Range(0, 59, 30) },
function () {
console.log('Delete');
channel.bulkDelete(20);
});