Discord.js TypeError: connection.play is not a function
Писал дискорд музыкального бота. Ответов на ошибку нигде не нашёл
Вот и сам код:
else if (command === 'music') {
if (message.member.voice.channel) {
music = 'https://www.youtube.com/watch?v=xzD0M1MXGqY'
message.channel.send(`Начинаю воспроизведение: ${music}`);
const connection = message.member.voice.channel.join();
const dispatcher = connection.play(ytdl(music));
dispatcher.on("end", end => {
message.channel.send('Воспроизведение завершено')
voiceChannel.leave();
});
}
Вот ошибкаи сама ошибка:
const dispatcher = connection.play(ytdl(music));
^
TypeError: connection.play is not a function
at Client.<anonymous> (D:\Рабочая папка\zamurbot\main.js:79:37)
at Client.emit (events.js:315:20)
at MessageCreateAction.handle (D:\Рабочая папка\zamurbot\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (D:\Рабочая папка\zamurbot\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (D:\Рабочая папка\zamurbot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:386:31)
at WebSocketShard.onPacket (D:\Рабочая папка\zamurbot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:436:22)
at WebSocketShard.onMessage (D:\Рабочая папка\zamurbot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:293:10)
at WebSocket.onMessage (D:\Рабочая папка\zamurbot\node_modules\ws\lib\event-target.js:125:16)
at WebSocket.emit (events.js:315:20)
at Receiver.receiverOnMessage (D:\Рабочая папка\zamurbot\node_modules\ws\lib\websocket.js:797:20)```
Ответы (1 шт):
Автор решения: wilddip
→ Ссылка
voiceChannel.join() - это Promise. Используйте его вместе с await
const connection = await message.member.voice.channel.join();
const dispatcher = connection.play(ytdl(music));
dispatcher.on("end", async () => {
await connection.channel.disconnect();
return message.channel.send('Воспроизведение завершено');
});