2022-11-15 09:06:18 -05:00
import Discord from 'discord.js' ;
2023-04-14 06:47:58 -04:00
import TClient from '../client.js' ;
2022-11-15 09:06:18 -05:00
export default {
2023-03-05 05:04:10 -05:00
run ( client :TClient , interaction :Discord.BaseInteraction ) {
2023-02-13 02:37:23 -05:00
if ( ! interaction . inGuild ( ) || ! interaction . inCachedGuild ( ) ) return ;
if ( interaction . isChatInputCommand ( ) ) {
const commandFile = client . commands . get ( interaction . commandName ) ;
2023-06-09 21:11:19 -04:00
console . log ( client . logTime ( ) , ` ${ interaction . user . username } used / ${ interaction . commandName } ${ interaction . options . getSubcommand ( false ) ? ? '' } in # ${ interaction . channel . name } ` ) ;
if ( ! client . config . botSwitches . commands && ! client . config . whitelist . includes ( interaction . user . id ) ) return interaction . reply ( { content : ` I am currently operating in development mode. \ nPlease notify <@ ${ client . config . whitelist [ 0 ] } > if this is a mistake. ` , ephemeral : true } ) ;
2023-02-13 02:37:23 -05:00
if ( commandFile ) {
try {
2023-04-14 06:47:58 -04:00
commandFile . command . default . run ( client , interaction ) ;
2023-03-05 05:04:10 -05:00
commandFile . uses ? commandFile . uses ++ : commandFile . uses = 1 ;
2023-02-13 02:37:23 -05:00
} catch ( error ) {
2023-03-31 04:56:01 -04:00
console . log ( ` An error occurred while running command " ${ interaction . commandName } ${ interaction . options . getSubcommand ( false ) ? ? '' } " ` , error , error . stack ) ;
return interaction . reply ( 'An error occurred while executing that command.' ) ;
2022-11-15 09:06:18 -05:00
}
2023-02-13 02:37:23 -05:00
}
2023-05-02 17:35:43 -04:00
} else if ( interaction . isButton ( ) ) {
if ( interaction . customId . startsWith ( 'reaction-' ) && client . config . botSwitches . buttonRoles ) {
const RoleID = interaction . customId . replace ( 'reaction-' , '' ) ;
if ( interaction . member . roles . cache . has ( RoleID ) ) {
2023-05-02 20:12:59 -04:00
interaction . member . roles . remove ( RoleID , 'Button Role' ) ;
2023-05-02 17:35:43 -04:00
interaction . reply ( { content : ` You have been removed from <@& ${ RoleID } > ` , ephemeral : true } )
} else {
2023-05-02 20:12:59 -04:00
interaction . member . roles . add ( RoleID , 'Button Role' ) ;
2023-05-02 17:35:43 -04:00
interaction . reply ( { content : ` You have been added to <@& ${ RoleID } > ` , ephemeral : true } )
}
} else console . log ( client . logTime ( ) , ` Button pressed at ${ interaction . message . url } ` ) ;
2022-11-15 09:06:18 -05:00
}
2023-02-13 02:37:23 -05:00
}
2023-03-05 05:04:10 -05:00
}