discord.js 中的音量命令

Posted

技术标签:

【中文标题】discord.js 中的音量命令【英文标题】:Volume command in discord.js 【发布时间】:2021-09-21 19:09:11 【问题描述】:

我已经发出命令并且它可以工作,但它不会改变机器人的音量它一直说“音量只能设置在 `1` - `100 的范围内`" 但我输入了“第 1 卷,但它不起作用

命令 -

  else if (message.content.startsWith('"volume')) 
        const args = message.content
        if (!message.member.voice.channel) return message.channel.send("I'm sorry, but you need to be in a voice channel to set a volume!");
        if (!serverQueue) return message.channel.send("There is nothing playing");
        if (!args[1]) return message.channel.send(`The current volume is: **\`$!serverQueue.volume%\`**`);
        if (isNaN(args[1]) || args[1] > 100) return message.channel.send("Volume only can be set in a range of **\`1\`** - **\`100\`**");
        serverQueue.volume = args[1];
        serverQueue.connection.dispatcher.setVolume(args[1] / 100);
        return message.channel.send(`I set the volume to: **\`$args[1]%\`**`);
        return;

函数-

 const dispatcher = serverQueue.connection
        .play(ytdl(song.url))
        .on("finish", () => 
            if (!serverQueue.loop) serverQueue.songs.shift()
            play(guild, serverQueue.songs[0]);
        )
        .on("error", error => console.error(error));
    dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
    serverQueue.textChannel.send(`Started playing: **$song.title**`)

【问题讨论】:

【参考方案1】:

是不是因为分配给args时缺少.split()

const args = message.content.split(" ");

它将消息内容按空格分隔成一个数组。你的命令看起来像这样"volume 5

【讨论】:

以上是关于discord.js 中的音量命令的主要内容,如果未能解决你的问题,请参考以下文章

discord.js - 一个命令中的愚蠢错误

Discord.js - 允许特定频道中的命令[关闭]

如何使用命令更改 discord.js 中的文件?

使用 Discord 按钮的建议命令 Discord.JS

杀死 discord.js 中的命令处理程序脚本

斜杠命令处理程序中的 Discord.js v13 TypeError