2020-07-12 00:39:34 -04:00
import { Message } from 'eris' ;
import { Client , Command } from '../class' ;
export default class Unmute extends Command {
constructor ( client : Client ) {
super ( client ) ;
this . name = 'unmute' ;
this . description = 'Unmutes a member.' ;
this . usage = 'unmute <member> [reason]' ;
this . permissions = 2 ;
this . guildOnly = true ;
this . enabled = true ;
}
public async run ( message : Message , args : string [ ] ) {
try {
if ( ! args [ 0 ] ) return this . client . commands . get ( 'help' ) . run ( message , [ this . name ] ) ;
const member = this . client . util . resolveMember ( args [ 0 ] , this . mainGuild ) ;
if ( ! member ) return this . error ( message . channel , 'Cannot find user.' ) ;
try {
const res1 = await this . client . db . local . muted . get < boolean > ( ` muted- ${ member . id } ` ) ;
if ( ! res1 || ! this . mainGuild . members . get ( member . id ) . roles . includes ( '478373942638149643' ) ) return this . error ( message . channel , 'This user is already unmuted.' ) ;
} catch { } // eslint-disable-line no-empty
if ( member && ! this . client . util . moderation . checkPermissions ( member , message . member ) ) return this . error ( message . channel , 'Permission Denied.' ) ;
message . delete ( ) ;
await this . client . util . moderation . unmute ( member . user . id , message . member , args . slice ( 1 ) . join ( ' ' ) ) ;
return this . success ( message . channel , ` ${ member . user . username } # ${ member . user . discriminator } has been unmuted. ` ) ;
} catch ( err ) {
return this . client . util . handleError ( err , message , this , false ) ;
}
}
}