forked from Lea/obama-bot
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));
|
|
});
|
|
});
|
|
} |