Я хочу, чтобы бот Discord входил в голосовой канал и воспроизводил mp3-файл

#javascript #node.js

#javascript #node.js

Вопрос:

Я подозреваю, что с моим кодом что-то не так, но я не знаю.

 const Discord = require('discord.js');
const client = new Discord.Client();
const config = require('./config.json');

client.once('ready', () => {
    console.log('Bot online!');
});

client.on('message', async message => {
    if(message.content.voice.channel) {
        const connection = await message.member.voice.channel.join();
        const dispatcher = connection.playFile(require("path").join(__dirname, './audio.mp3'));
        dispatcher.on('start', () => {
            console.log('Now playing!');
        });
        dispatcher.on('finish', () => {
            console.log('Finished playing!');
            voiceChannel.leave();
        });
        dispatcher.on('error', console.error);
    }
});

client.login(config.TOKEN);
 

Я получаю сообщение об ошибке :

Необработанное promiserejectionwarning: ошибка типа: не удается прочитать свойство ‘channel’ неопределенного на клиенте. (C:Usersdjd18DesktopBotindex.js:10:30 ) в Client.emit (events.js:315:20) в MessageCreateAction.обрабатывать (C:Usersdjd18DesktopBotnode_modulesdiscord.jssrcclientactionsMessageCreate.js:31:14 ) в Object.module.exports [как MESSAGE_CREATE] (C:Usersdjd18DesktopBotnode_modulesdiscord.jssrcclientwebsockethandlersMESSAGE_CREATE.js:4:32 ) в WebSocketManager.handlePacket (C:Usersdjd18DesktopBotnode_modulesdiscord.jssrcclientwebsocketWebSocketManager.js:384:31 ) в WebSocketShard.onPacket (C:Usersdjd18DesktopBotnode_modulesdiscord.jssrcclientwebsocketWebSocketShard.js:444:22 ) в WebSocketShard.onMessage (C:Usersdjd18DesktopBotnode_modulesdiscord.jssrcclientwebsocketWebSocketShard.js:301:10 ) в WebSocket.onMessage (C:Usersdjd18DesktopBotnode_moduleswslibevent-target.js:132:16 ) в WebSocket.emit (events.js:315:20) в Receiver.receiverOnMessage (C:Usersdjd18DesktopBotnode_moduleswslibwebsocket.js:825:20 ) (Используется node --trace-warnings ... , чтобы показать, где было создано предупреждение) (узел: 16536) UnhandledPromiseRejectionWarning: Необработанное отклонение обещания. Эта ошибка возникла либо из-за включения асинхронной функции без блока catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch() . Чтобы завершить процесс узла при отклонении необработанного обещания, используйте флаг CLI --unhandled-rejections=strict (см. https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode ). (идентификатор отклонения: 1) (узел: 16536) [DEP0018] Предупреждение об устаревании: необработанные отклонения обещаний не рекомендуются. В будущем отклонения обещаний, которые не обрабатываются, прекратят Node.js процесс с ненулевым кодом выхода.

Комментарии:

1. прочитайте эту ссылку для улучшения голоса discord.js.org/#/docs/main/stable/topics/voice

2. Спасибо, у меня получилось.