const { client, logger } = require('../index'); module.exports.run = () => { return new Promise((resolve, reject) => { const token = process.env.BOT_TOKEN; if (!token) { logger.error('No bot token provided. Please provide the bot token as environment variable \'BOT_TOKEN\'.'); process.exit(1); } logger.info('Logging in'); const loginStartTime = Date.now(); client.login(token) .catch(error => { logger.error(`Failed to log in\n${error}`); process.exit(1); }); client.on('ready', () => { logger.done( `Logged in as ${client.user.tag}\n` + logger.createBox([ `Login took ${Date.now() - loginStartTime}ms`, `${client.guilds.cache.size} cached guilds`, `${client.users.cache.size} cached users` ]) ); resolve(); // Set the bot's activity and update it every 60 seconds in case it gets reset let setActivity = () => { try { // Activity type 5 corresponds to 'Competing in': https://discord.com/developers/docs/game-sdk/activities#data-models-activitytype-enum client.user.setPresence({ activity: { type: 5, name: 'being Obama' }, status: 'dnd' }) .then(() => logger.debug('Updated activity')); } catch(e) { console.error(e); } } setActivity(); setInterval(setActivity, (1000 * 60)); }); }); }