diff --git a/src/index.ts b/src/index.ts index f4da48c..ed3f668 100644 --- a/src/index.ts +++ b/src/index.ts @@ -139,9 +139,14 @@ client.on('clientReady', async () => { await initializeWebserver(client); - tasks.forEach(async (task) => { - if (task.firstRun) await task.handle(client); - setInterval(async () => await task.handle(client).catch((error) => console.log(error)), task.interval); + tasks.forEach((task) => { + const handler = () => { + Promise.resolve(task.handle(client)) + .catch(e => console.error(`Error in '${task.id}' task:`, e)); + }; + + if (task.firstRun) handler(); + setInterval(handler, task.interval); }); events.forEach(event => diff --git a/src/tasks/checkExpiredBansTask.ts b/src/tasks/checkExpiredBansTask.ts index 8e0c83a..947d1e4 100644 --- a/src/tasks/checkExpiredBansTask.ts +++ b/src/tasks/checkExpiredBansTask.ts @@ -1,8 +1,9 @@ import { Client } from 'discord.js'; -import { checkExpiredBans } from '../utils'; import { Task } from '../types'; +import { checkExpiredBans } from '../utils'; const task: Task = { + id: 'checkExpiredBans', interval: 300000, firstRun: true, diff --git a/src/tasks/closeStaleTicketsTask.ts b/src/tasks/closeStaleTicketsTask.ts index 9f80785..141c547 100644 --- a/src/tasks/closeStaleTicketsTask.ts +++ b/src/tasks/closeStaleTicketsTask.ts @@ -1,8 +1,9 @@ import { Client } from 'discord.js'; -import { closeOldTickets } from '../utils'; import { Task } from '../types'; +import { closeOldTickets } from '../utils'; const task: Task = { + id: 'closeStaleTickets', interval: 3.6e6, firstRun: true, diff --git a/src/tasks/pruneOldMessagesTask.ts b/src/tasks/pruneOldMessagesTask.ts index c5a3456..e226b79 100644 --- a/src/tasks/pruneOldMessagesTask.ts +++ b/src/tasks/pruneOldMessagesTask.ts @@ -3,6 +3,7 @@ import { Database } from '../shared/Database'; import { Task } from '../types'; const task: Task = { + id: 'pruneOldMessages', interval: 3.6e6, firstRun: true, diff --git a/src/types/task.d.ts b/src/types/task.d.ts index f002501..5182d08 100644 --- a/src/types/task.d.ts +++ b/src/types/task.d.ts @@ -1,6 +1,7 @@ import { Client } from "discord.js"; export interface Task { + id: string; interval: number; firstRun: boolean;