diff --git a/main.js b/main.js index 8354477..a714f91 100644 --- a/main.js +++ b/main.js @@ -36,4 +36,19 @@ for (const file of eventFiles) { } } +client.on(Events.ClientReady, () => { + //setup timers + const timersPath = path.join(__dirname, 'timers'); + const timerFiles = fs.readdirSync(timersPath).filter(file => file.endsWith('.js')); + for (const file of timerFiles) { + const filePath = path.join(timersPath, file); + const timer = require(filePath); + console.log(`Started Timer ${timer.name}`); + let timerInstance = setInterval(() => { + timer.tick(client, timer); + }, timer.timeout); + timer.instance = timerInstance; + } +}); + client.login(token); \ No newline at end of file diff --git a/timers/testTimer.js b/timers/testTimer.js new file mode 100644 index 0000000..f9f27e4 --- /dev/null +++ b/timers/testTimer.js @@ -0,0 +1,15 @@ +module.exports = { + timeout: 1000, + global: true, + name: 'Test timer every 1 sec', + data: { + i: 0 + }, + async tick(client, timer) { + console.log(`Test timer ticked ${timer.data.i}`); + timer.data.i++; + if(timer.data.i >= 5) { + clearInterval(timer.instance); + } + }, +}; \ No newline at end of file