2019-09-13 20:02:41 +00:00
const client = require ( "../utils/client.js" ) ;
const database = require ( "../utils/database.js" ) ;
const logger = require ( "../utils/logger.js" ) ;
2019-11-13 00:09:06 +00:00
const messages = require ( "../messages.json" ) ;
2019-09-13 20:02:41 +00:00
const misc = require ( "../utils/misc.js" ) ;
// run when ready
module . exports = async ( ) => {
// make sure settings/tags exist
2019-11-05 15:52:46 +00:00
for ( const [ id , guild ] of client . guilds ) {
const guildDB = ( await database . guilds . find ( { id : id } ) . exec ( ) ) [ 0 ] ;
const xpDB = ( await database . xp . find ( { id : id } ) . exec ( ) ) [ 0 ] ;
// .length === 0 && guildDB.constructor === Object
// !Object.entries(guildDB)
2019-10-28 20:21:06 +00:00
if ( ! guildDB ) {
2019-11-05 15:52:46 +00:00
console . log ( ` Registering guild database entry for guild ${ id } ... ` ) ;
const newGuild = new database . guilds ( {
id : id ,
2019-10-28 20:21:06 +00:00
tags : misc . tagDefaults ,
prefix : "&"
} ) ;
await newGuild . save ( ) ;
}
2019-11-05 15:52:46 +00:00
// .length === 0 && xpDB.constructor === Object
// !Object.entries(xpDB)
if ( ! xpDB ) {
console . log ( ` Registering xp database entry for guild ${ id } ... ` ) ;
const memberInfo = { } ;
for ( const [ id ] of guild . members ) {
memberInfo [ id ] = {
xpAmount : 0 ,
level : 0
} ;
}
const newXP = new database . xp ( {
id : id ,
members : memberInfo ,
enabled : false
} ) ;
await newXP . save ( ) ;
}
2019-10-28 20:21:06 +00:00
}
2019-09-13 20:02:41 +00:00
// set activity (a.k.a. the gamer code)
( async function activityChanger ( ) {
2019-11-13 00:09:06 +00:00
client . editStatus ( "dnd" , { name : ` ${ misc . random ( messages ) } | @esmBot help ` , url : "https://essem.space/esmBot/commands.html?dev=true" } ) ;
2019-09-13 20:02:41 +00:00
setTimeout ( activityChanger , 900000 ) ;
} ) ( ) ;
logger . log ( "info" , ` Successfully started ${ client . user . username } # ${ client . user . discriminator } with ${ client . users . size } users in ${ client . guilds . size } servers. ` ) ;
} ;