2024-02-09 09:53:30 +00:00
const { PermissionFlagsBits } = require ( "discord.js" ) ;
2019-08-02 08:32:00 +00:00
module . exports = {
name : 'volume' ,
description : 'Volume command.' ,
2019-10-31 18:29:26 +00:00
alias : 'volume' ,
2019-08-02 08:32:00 +00:00
cooldown : 5 ,
2019-10-10 13:43:04 +00:00
execute ( message , args , client , Discord , prefix ) {
2024-02-09 09:53:30 +00:00
const voiceChannel = message . member . voice . channel ;
2019-08-02 08:32:00 +00:00
const serverQueue = client . queue . get ( message . guild . id ) ;
const permissions = message . channel . permissionsFor ( message . author ) ;
2019-11-23 07:17:43 +00:00
if ( ! serverQueue ) return message . channel . send ( ':x: There is nothing playing.' ) ;
2019-11-22 18:51:41 +00:00
if ( ! serverQueue . playing ) return message . channel . send ( ':x: There is nothing playing.' ) ;
2019-08-02 08:32:00 +00:00
if ( ! args [ 1 ] ) return message . channel . send ( ` :loud_sound: The current volume is: ** ${ serverQueue . volume } ** ` ) ;
2019-10-24 18:02:44 +00:00
const volume = parseFloat ( args [ 1 ] ) ;
2024-02-09 09:53:30 +00:00
if ( ! voiceChannel ) return message . channel . send ( ':x: I\'m sorry but you need to be in a voice channel to change the volume!' ) ;
if ( client . global . db . guilds [ message . guild . id ] . permissions === true ) {
if ( client . global . db . guilds [ message . guild . id ] . dj ) {
if ( ! message . member . roles . cache . has ( client . global . db . guilds [ message . guild . id ] . djrole ) ) return message . channel . send ( ':x: You need the `DJ` role to change the volume!' ) ;
} else if ( ! permissions . has ( PermissionFlagsBits . ManageChannels ) ) return message . channel . send ( ':x: You need the `MANAGE_CHANNELS` permission to change the volume!' ) ;
2019-08-14 12:26:33 +00:00
}
2019-10-24 17:11:08 +00:00
if ( isNaN ( volume ) ) return message . channel . send ( ':x: I\'m sorry, But you need to enter a valid __number__.' ) ;
if ( volume > 100 ) return message . channel . send ( ':x: The max volume is `100`!' ) ;
if ( volume < 0 ) return message . channel . send ( ':x: The volume needs to be a positive number!' ) ;
serverQueue . volume = volume ;
2024-02-09 09:53:30 +00:00
serverQueue . audioResource . volume . setVolume ( volume / 100 ) ;
2019-10-24 17:11:08 +00:00
return message . channel . send ( ` :loud_sound: I set the volume to: ** ${ volume } ** ` ) ;
2019-08-02 08:32:00 +00:00
}
} ;