所以基本上,当我在VC中使用我想要的歌曲执行play cmd时,我的机器人不会响应它,也不会给出任何错误,但如果我只是输入play而不输入我想要的歌曲,我会得到Please provide song响应。
这是主文件
const distube = require('distube');
client.distube = new distube(client, { searchSongs: true, emitNewSongOnly: true })
client.distube
.on('playSong', (message, queue, song) => message.channel.send(
`Playing \`${song.name}\` - \`${song.formattedDuration}\`\nRequested by: ${song.user}\n${status(queue)}`,
))
.on('addSong', (message, queue, song) => message.channel.send(
`Added ${song.name} - \`${song.formattedDuration}\` to the queue by ${song.user}`,
))
.on('error', (message, e) => {
message.channel.send(`An error occured: ${e}`)
})这就是play cmd:
const distube = require("distube");
module.exports = {
name: 'play',
aliases: ['p'],
description: 'play a song!',
async execute(client, message, args) {
const VC = message.member.voice.channel;
if(!VC) return message.reply('Join VC or no music!');
const music = args.join(" ");
if(!music) return message.reply("Please provide me a song name");
await client.distube.play(message, music);
}
}我使用的包是:
npm i distube
npm i @discordjs/opus
npm i ffmpeg-static作为参考,以下是我看过的内容:
https://distube.js.org/guide/example-bot.html
https://www.youtube.com/watch?v=tbPqM6JcGA4&t=883s这也不是我第一次收到这个错误了。我以前尝试过使用不同的包,但仍然不起作用。当我提供我想要的歌曲时,他们都没有反应。基本上,我唯一的问题是机器人没有加入VC。有人知道怎么解决这个问题吗?
发布于 2021-06-13 21:11:54
为了操作distube,您还需要在您的软件包中包含ytdl-core,您可以像往常一样使用相同的npm install命令进行安装。
发布于 2021-06-14 05:44:56
这是因为您启用了searchSongs,但没有侦听searchResult事件。
只需在DisTube构造函数中编辑searchSongs: false即可解决此问题。
https://stackoverflow.com/questions/67907022
复制相似问题