NodeJS Discord.js Skip方法跳过当前歌曲+队列的第一首歌曲,而不是仅跳过当前歌曲

swvgeqrz  于 2023-03-08  发布在  Node.js
关注(0)|答案(1)|浏览(103)

我目前正在用Discord.js 14开发一个discord音乐机器人,我正在跳过歌曲部分,但是当我跳过当前歌曲时,它会跳过当前歌曲加上队列中的第一首歌曲,它不应该只跳过当前歌曲。
正如你在代码中看到的。我正在检索discord服务器的队列。一切都很好,因为我有我应该有的每首歌。稍后在代码中,我做queue.skip(),它应该只跳过当前歌曲,因为它说这是一个布尔值,跳过当前曲目。我花了一整天的时间来理解为什么它跳过2首歌,而不是一首。
提前感谢每一个人谁将回答那里。

const { SlashCommandBuilder, EmbedBuilder} = require('@discordjs/builders')

module.exports = {
    data: new SlashCommandBuilder()
        .setName('skip')
        .setDescription('Skips the current song'),

    run: async ({client, interaction}) => {
        const queue = client.player.getQueue(interaction.guildId)

        if (!queue){
            return await interaction.editReply("No songs are currently playing")
        }

        const currentSong = queue.current
        queue.skip()
        
        await interaction.editReply({
            embeds: [
                new EmbedBuilder()
                    .setDescription(`${currentSong.title} has been skipped`)
                    .setThumbnail(currentSong.thumbnail)
            ]
        })
    }
}

尝试使用其他方法,但这不是我想要的。Skip()方法应该是好的

tf7tbtn2

tf7tbtn21#

使用discord-player@5.3.0代替discord-player@5.4.0,它对我有效。这是我的依赖项:)

"dependencies": {
        "@discordjs/opus": "^0.9.0",
        "body-parser": "^1.20.2",
        "discord-player": "^5.3.0",
        "discord.js": "^14.7.1",
        "dotenv": "^16.0.3",
        "express": "^4.18.2",
        "ffmpeg": "0.0.4",
        "fluent-ffmpeg": "^2.1.2",
        "ytdl-core": "^4.11.2"
      },

相关问题