Discord JS 音乐机器人 - .message.member.voiceChannel.join() 不工作

Discord JS Music bot - .message.member.voiceChannel.join() not working

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

var channel = message.member.voiceChannel;

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

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

我得到的错误是:

                                        ^
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 中的 member 更改为 members 但是那没有用。

我也尝试过在变量之外和 .join() 之前使用 message.member.voiceChannel

任何帮助将不胜感激,谢谢!

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

可能的解决方案:

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

我在我的 discord 机器人代码中使用了类似的东西

voiceChannel = message.member.voiceChannel;

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

}