2023-08-26 10:47:06 -04:00
import Discord from 'discord.js' ;
import TClient from '../client.js' ;
2023-10-06 02:11:23 -04:00
import ansi from 'ansi-colors' ;
2023-12-24 10:21:40 -05:00
export default class Ready {
static async run ( client :TClient ) {
2023-10-06 02:11:23 -04:00
const botSwitches = Object . entries ( client . config . botSwitches ) . map ( ( [ k , v ] ) = > ` ${ ansi . yellow ( k ) } ${ ansi . black ( ':' ) } ${ v } ` ) . join ( '\n' ) . replace ( /true/g , ansi . green ( 'true' ) ) . replace ( /false/g , ansi . red ( 'false' ) ) ;
2023-10-06 01:54:27 -04:00
2023-12-24 10:21:40 -05:00
await client . guilds . fetch ( client . config . dcServer . id ) . then ( async guild = > {
const logsArray = [ client . config . dcServer . channels . logs , client . config . dcServer . channels . bankick_log ] ;
for ( const channelID of logsArray ) {
const channel = await client . channels . fetch ( channelID ) as Discord . TextChannel ;
if ( channel && channel . type === Discord . ChannelType . GuildText ) await channel . messages . fetch ( { limit : 15 } ) ;
}
2023-08-26 10:47:06 -04:00
await guild . members . fetch ( ) ;
setInterval ( ( ) = > {
client . user . setPresence ( client . config . botPresence ) ;
guild . invites . fetch ( ) . then ( invites = > invites . forEach ( inv = > client . invites . set ( inv . code , { uses : inv.uses , creator : inv.inviterId , channel : inv.channel.name } ) ) )
} , 300000 )
} )
if ( client . config . botSwitches . registerCommands ) {
console . log ( 'Total commands: ' + client . registry . length ) //Debugging reasons.
client . config . whitelistedServers . forEach ( guildId = > ( client . guilds . cache . get ( guildId ) as Discord . Guild ) . commands . set ( client . registry ) . catch ( ( e :Error ) = > {
console . log ( ` Couldn't register slash commands for ${ guildId } because ` , e . stack ) ;
2023-12-24 10:21:40 -05:00
( client . channels . resolve ( client . config . dcServer . channels . errors ) as Discord . TextChannel ) . send ( ` Cannot register slash commands for ** ${ client . guilds . cache . get ( guildId ) . name } ** ( \` ${ guildId } \` ): \ n \` \` \` ${ e . message } \` \` \` ` )
2023-08-26 10:47:06 -04:00
} ) )
}
console . log ( ` ${ client . user . username } has logged into Discord API ` ) ;
console . log ( client . config . botSwitches , client . config . whitelistedServers ) ;
2023-12-24 10:21:40 -05:00
( client . channels . resolve ( client . config . dcServer . channels . bot_status ) as Discord . TextChannel ) . send ( { content : ` ** ${ client . user . username } ** is active ` , embeds : [ new client . embed ( ) . setColor ( client . config . embedColor ) . setDescription ( ` ** \` \` \` ansi \ n ${ botSwitches } \ n \` \` \` ** ` ) ] } ) ;
2023-08-26 10:47:06 -04:00
console . timeEnd ( 'Startup' )
}
}