diff --git a/src/index.js b/src/index.js index 6f768f5..f0ac6f1 100644 --- a/src/index.js +++ b/src/index.js @@ -80,6 +80,8 @@ client.on('registered', (event) => { client.on('close', (event) => { logger.info('Connection closed') + + await storage.close() process.exit() }) @@ -93,8 +95,27 @@ client.on('join', (event) => { }) client.on('leave', (event) => { - event.logger.info('Deactivating scheduled tasks.') - timers[event.channel].map(timer => clearImmediate(timer)) + event.logger.info('Deactivating scheduled tasks.', {action: 'leave'}) + timers[event.channel].map(timer => clearInterval(timer)) + delete timers[event.channel] +}) + +client.on('kick', (event) => { + if (config.username !== event.kicked) { + return + } + + event.logger.info('Deactivating scheduled tasks.', {action: 'kick'}) + timers[event.channel].map(timer => clearInterval(timer)) + delete timers[event.channel] +}) + +client.on('socket close', (event) => { + logger.debug('Pausing scheduled tasks') + Object.entries(timers).map(([channel, intervals]) => { + intervals.map(interval => clearInterval(interval)) + delete timers[channel] + }) }) client.connect({