obama-bot/util/login.js
2020-12-27 14:32:23 +01:00

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));
});
});
}