Estoy tratando de hacer un bot de música Discord. Todo el código funciona bien, pero en el comando Volumen, aparece este error cuando ejecuto !volume 50
:
throw new __1.DisTubeError("INVALID_TYPE", "number", volume, "volume"); ^ DisTubeError [INVALID_TYPE]: Expected 'number' for 'volume', but got '50'
Este es mi código:
const { guild, channel, member } = message; if ( member.roles.cache.has('926674590200123502') || member.roles.cache.has('945435842258808862') || member.roles.cache.has('928717168001024020') || member.roles.cache.has('935939126123974726') || member.permissions.has(Permissions.FLAGS.ADMINISTRATOR) ) { const voicechannel = member.voice.channel; if (!voicechannel) return message.reply( 'You must be in a voice channel to use Music commands', ); if (guild.me.voice.channelID && voicechannel.id !== guild.me.voice.channelID) return message.reply( `I am already playing music in <#${guild.me.voice.channelID}>`, ); const volume = args[0]; if (volume > 100 || volume < 1) return message.reply('the volume must be a number between 1 and 100'); await client.distube.setVolume(voicechannel, volume); await message.reply(`🔊 volume set to ${volume}`); } else return message.reply("You can't use this command");
Es porque '50'
no es un número sino una cadena. Intenta analizarlo primero:
const volume = parseInt(args[0], 10); if (isNaN(volume)) return message.reply('Volume must be a valid number'); if (volume > 100 || volume < 1 ) return message.reply('Volume must be a number between 1 and 100');