Discord JS 音乐机器人 - .message.member.voiceChannel.join() 不工作
Posted
技术标签:
【中文标题】Discord JS 音乐机器人 - .message.member.voiceChannel.join() 不工作【英文标题】:Discord JS Music bot - .message.member.voiceChannel.join() not working 【发布时间】:2018-05-18 04:43:15 【问题描述】:我正在尝试在 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,但没有成功。
我也尝试将 message.member.voiceChannel 放在变量之外,并在 .join() 之前。
任何帮助将不胜感激,谢谢!
【问题讨论】:
是语音频道的成员吗? @DakshMiglani 不是当我运行命令时,没有。 错误码的意思是,发送消息的用户不在任何语音频道,所以机器人无法加入频道。 @DakshMiglani 解决了!您能否将其添加为我的问题的答案,以便我可以选择您已回答我的问题? 好的,我会这样做的。 【参考方案1】:所以错误代码的意思是,发送消息的用户不在任何语音频道中,因此机器人无法加入频道。
可能的解决方案:
-
加入频道,然后发送消息。
如果找不到频道,则加入预设频道。
【讨论】:
【参考方案2】:我在我的不和谐机器人代码中使用了类似的东西
voiceChannel = message.member.voiceChannel;
voiceChannel.join().then(function (connection)
【讨论】:
以上是关于Discord JS 音乐机器人 - .message.member.voiceChannel.join() 不工作的主要内容,如果未能解决你的问题,请参考以下文章
Discord.js 音乐机器人:TypeError:this.inputMedia.pipe 不是函数