@ -1,4 +1,4 @@
import { Permission s } from 'discord.js' ;
import { Permission Flag sBits, InteractionType } from 'discord.js' ;
import db from '../../models/index.js' ;
import db from '../../models/index.js' ;
const ratelimit = { } ;
const ratelimit = { } ;
@ -10,7 +10,7 @@ export default {
name : 'interactionCreate' ,
name : 'interactionCreate' ,
async execute ( interaction ) {
async execute ( interaction ) {
const client = interaction . client ;
const client = interaction . client ;
if ( ! interaction . isCommand ( ) ) return ;
if ( interaction . type !== InteractionType . ApplicationCommand ) return ;
const globalBlacklist = await db . Blacklists . findOne ( { where : { type : 'global' , uid : interaction . user . id } } ) ;
const globalBlacklist = await db . Blacklists . findOne ( { where : { type : 'global' , uid : interaction . user . id } } ) ;
const commandBlacklist = await db . Blacklists . findOne ( { where : { type : interaction . commandName , uid : interaction . user . id } } ) ;
const commandBlacklist = await db . Blacklists . findOne ( { where : { type : interaction . commandName , uid : interaction . user . id } } ) ;
@ -40,14 +40,14 @@ export default {
if ( command . clientPermissions ) {
if ( command . clientPermissions ) {
const clientMember = await interaction . guild . members . fetch ( client . user . id ) ;
const clientMember = await interaction . guild . members . fetch ( client . user . id ) ;
if ( ! clientMember . permissions . has ( command . clientPermissions ) ) {
if ( ! clientMember . permissions . has ( command . clientPermissions ) ) {
return interaction . reply ( { content : ` ❌ I am missing one of the following permission(s): \` ${ new Permission s( command . clientPermissions ) . toArray ( ) } \` ` , ephemeral : true } ) ;
return interaction . reply ( { content : ` ❌ I am missing one of the following permission(s): \` ${ new Permission FlagsBit s( command . clientPermissions ) . toArray ( ) } \` ` , ephemeral : true } ) ;
}
}
}
}
// Check if the user has the needed permissions
// Check if the user has the needed permissions
if ( command . userPermissions ) {
if ( command . userPermissions ) {
if ( ! interaction . member . permissions . has ( command . userPermissions ) ) {
if ( ! interaction . member . permissions . has ( command . userPermissions ) ) {
return interaction . reply ( { content : ` ❌ You are missing one of the following permission(s): \` ${ new Permission s( command . userPermissions ) . toArray ( ) } \` ` , ephemeral : true } ) ;
return interaction . reply ( { content : ` ❌ You are missing one of the following permission(s): \` ${ new Permission FlagsBit s( command . userPermissions ) . toArray ( ) } \` ` , ephemeral : true } ) ;
}
}
}
}
@ -74,7 +74,20 @@ export default {
ratelimit [ userID ] = { command : commandName , limit : ratelimit [ userID ] . limit , cooldown : date } ;
ratelimit [ userID ] = { command : commandName , limit : ratelimit [ userID ] . limit , cooldown : date } ;
}
}
}
}
await command . execute ( interaction ) ;
const args = [ ] ;
interaction . options . data . forEach ( arg => {
console . log ( arg ) ;
if ( arg . type === 'MENTIONABLE' ) {
return args . push ( arg . member ) ;
}
else if ( arg . type === 'ATTACHMENT' ) {
return args . push ( arg . attachment ) ;
}
args . push ( arg . value ) ;
} ) ;
await command . execute ( interaction , args , client ) ;
}
}
catch ( error ) {
catch ( error ) {
console . error ( error ) ;
console . error ( error ) ;