45 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
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));
 | 
						|
        });
 | 
						|
    });
 | 
						|
} |