2019-10-06 20:29:50 +02:00
const { Command } = require ( 'discord-akairo' ) ;
const userBlacklist = require ( '../../models' ) . userBlacklist ;
class blacklistCommand extends Command {
constructor ( ) {
super ( 'blacklist' , {
aliases : [ 'blacklist' ] ,
category : 'owner' ,
ownerOnly : 'true' ,
userPermissions : [ 'MANAGE_MESSAGES' ] ,
args : [
{
id : 'userID' ,
type : 'string' ,
prompt : {
start : 'Who do you want to blacklist?' ,
}
}
] ,
2020-03-19 23:24:31 +01:00
channel : 'guild' ,
2019-10-06 20:29:50 +02:00
description : {
2019-10-06 20:38:06 +02:00
content : 'Blacklist user from the bot' ,
usage : '[userID]' ,
examples : [ '' ]
2019-10-06 20:29:50 +02:00
}
} ) ;
}
async exec ( message , args ) {
2019-12-28 21:06:07 +01:00
const blacklist = await userBlacklist . findOne ( { where : { userID : args . userID } } ) ;
2019-10-06 20:29:50 +02:00
if ( ! blacklist ) {
const body = { userID : args . userID } ;
userBlacklist . create ( body ) ;
2020-03-04 02:08:04 +01:00
return message . channel . send ( ` The following user have been blacklisted: ${ this . client . users . resolve ( args . userID ) . username } # ${ this . client . users . resolve ( args . userID ) . discriminator } ( ${ args . userID } ) ` ) ;
2019-10-06 20:29:50 +02:00
} else {
message . channel . send ( 'This user is already blacklisted, do you want to unblacklist him? y/n' ) ;
const filter = m => m . content && m . author . id == message . author . id ;
message . channel . awaitMessages ( filter , { time : 5000 * 1000 , max : 1 , errors : [ 'time' ] } )
. then ( messages => {
let messageContent = messages . map ( messages => messages . content ) ;
if ( messageContent == 'y' || messageContent == 'yes' ) {
userBlacklist . destroy ( { where : { userID : args . userID } } ) ;
2020-03-04 02:08:04 +01:00
return message . channel . send ( ` The following user have been unblacklisted: ${ this . client . users . resolve ( args . userID ) . username } # ${ this . client . users . resolve ( args . userID ) . discriminator } ( ${ args . userID } ) ` ) ;
2019-10-06 20:29:50 +02:00
}
} )
. catch ( err => {
console . error ( err ) ;
return message . channel . send ( 'Took too long to answer. didin\'t unblacklist anyone.' ) ;
} ) ;
}
}
}
module . exports = blacklistCommand ;