DisTubeError [INVALID_TYPE]:'volume' 的预期 'number',但得到“50”discord.js V13
DisTubeError [INVALID_TYPE]: Expected 'number' for 'volume', but got '50' discord.js V13
我正在尝试制作一个 Discord 音乐机器人。所有代码都工作正常,但在 Volume 命令中,我在执行 !volume 50
:
时收到此错误
throw new __1.DisTubeError("INVALID_TYPE", "number", volume, "volume");
^
DisTubeError [INVALID_TYPE]: Expected 'number' for 'volume', but got '50'
这是我的代码:
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");
因为'50'
不是数字而是字符串。先尝试解析:
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');
我正在尝试制作一个 Discord 音乐机器人。所有代码都工作正常,但在 Volume 命令中,我在执行 !volume 50
:
throw new __1.DisTubeError("INVALID_TYPE", "number", volume, "volume");
^
DisTubeError [INVALID_TYPE]: Expected 'number' for 'volume', but got '50'
这是我的代码:
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");
因为'50'
不是数字而是字符串。先尝试解析:
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');