Discord JS Music bot - .message.member.voiceChannel.join()无效

时间:2017-12-04 16:45:55

标签: javascript discord discord.js

我正在尝试在Discord.JS制作音乐机器人。但是,我在调试代码时遇到错误。 这是代码:

var channel = message.member.voiceChannel;

        if(!message.guild.voiceConnection) channel.join().then(function(connection){
            play(connection, message);
        }); 

播放是我在代码中创建的函数。

我得到的错误是:

                                        ^
TypeError: Cannot read property 'join' of undefined
at Client.<anonymous> (C:\Users\ryans\Desktop\STATICbot\index.js:112:56)
at emitOne (events.js:116:13)
at Client.emit (events.js:211:7)
at MessageCreateHandler.handle (C:\Users\ryans\Desktop\STATICbot\node_modules\discord.js\src\client\websocket\packets\handlers\MessageCreate.js:9:34)
at WebSocketPacketManager.handle (C:\Users\ryans\Desktop\STATICbot\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:103:65)
at WebSocketConnection.onPacket (C:\Users\ryans\Desktop\STATICbot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:330:35)
at WebSocketConnection.onMessage (C:\Users\ryans\Desktop\STATICbot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:293:17)
at WebSocket.onMessage (C:\Users\ryans\Desktop\STATICbot\node_modules\ws\lib\EventTarget.js:99:16)
at emitOne (events.js:116:13)
at WebSocket.emit (events.js:211:7)

我尝试将 message.member.voiceChannel 中的成员更改为成员,但这不起作用。

我还尝试在变量之外和 .join()之前设置 message.member.voiceChannel

非常感谢任何帮助,谢谢!

2 个答案:

答案 0 :(得分:0)

错误代码所说的是,发送消息的用户不在任何语音通道中,因此机器人无法加入该频道。

可能的解决方案:

  1. 加入频道,然后发送消息。
  2. 如果找不到频道,则加入预设频道。

答案 1 :(得分:0)

我在不一致的机器人代码中使用与此类似的内容

voiceChannel = message.member.voiceChannel;

voiceChannel.join().then(function (connection) {

}