UNPKG

@shadow-dev/core

Version:

A modular core framework for Discord bot development, providing commands, buttons, menus, middleware, and more.

48 lines (47 loc) 1.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TaskScheduler = void 0; class TaskScheduler { constructor() { this.tasks = new Map(); } schedule(name, interval, callback, immediate = false) { if (this.tasks.has(name)) { console.warn(`⚠️ Task "${name}" is already scheduled.`); return; } console.log(`🕒 Scheduled Task: ${name} (every ${interval / 1000}s)`); if (immediate) { try { callback(); } catch (err) { console.error(`❌ Initial run of task "${name}" failed:`, err); } } const timer = setInterval(() => { try { callback(); } catch (err) { console.error(`❌ Task "${name}" error:`, err); } }, interval); this.tasks.set(name, { name, interval, timer, callback }); } cancel(name) { const task = this.tasks.get(name); if (!task) return console.warn(`⚠️ Task "${name}" not found.`); clearInterval(task.timer); this.tasks.delete(name); console.log(`🛑 Cancelled Task: ${name}`); } list() { return Array.from(this.tasks.keys()); } has(name) { return this.tasks.has(name); } } exports.TaskScheduler = TaskScheduler;