我想要一个 Discord 机器人进入语音频道并播放 mp3 文件

时间:2021-01-10 18:15:43

标签: 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);

我收到错误:

<块引用>

UnhandledPromiseRejectionWarning: TypeError: 无法读取属性 未定义的“频道” 在客户端。 (C:\Users\djd18\Desktop\Bot\index.js:10:30) 在 Client.emit (events.js:315:20) 在 MessageCreateAction.handle (C:\Users\djd18\Desktop\Bot\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14) 在 Object.module.exports [as MESSAGE_CREATE] (C:\Users\djd18\Desktop\Bot\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32) 在 WebSocketManager.handlePacket (C:\Users\djd18\Desktop\Bot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31) 在 WebSocketShard.onPacket (C:\Users\djd18\Desktop\Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22) 在 WebSocketShard.onMessage (C:\Users\djd18\Desktop\Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10) 在 WebSocket.onMessage (C:\Users\djd18\Desktop\Bot\node_modules\ws\lib\event-target.js:132:16) 在 WebSocket.emit (events.js:315:20) 在 Receiver.receiverOnMessage (C:\Users\djd18\Desktop\Bot\node_modules\ws\lib\websocket.js:825:20) (使用 node --trace-warnings ... 显示警告的位置 创建)(节点:16536)未处理的承诺拒绝警告:未处理 承诺拒绝。此错误源于抛出内部 没有 catch 块的异步函数,或者通过拒绝承诺 这不是用 .catch() 处理的。终止节点进程 未处理的承诺拒绝,使用 CLI 标志 --unhandled-rejections=strict(见 https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。 (rejection id: 1) (node:16536) [DEP0018] DeprecationWarning: Unhandled 不推荐使用承诺拒绝。在未来,承诺拒绝 未处理的将终止 Node.js 进程 非零退出代码。

0 个答案:

没有答案