javascript - 我的 Discord 机器人未加入语音 (js) 错误显示如下
问题描述
这是我用来让我的机器人加入服务器的代码
if(!message.guild.voiceConnection) message.member.voiceChannel.join().then(function(connection){
play(connection, message);
});
这就是我得到的错误,我正在语音聊天中,正如我所看到的那样,这也是导致该错误的原因
TypeError: Cannot read property 'join' of undefined
at Client.<anonymous> (A:\Projects\JereBot\api\main.js:182:84)
at Client.emit (events.js:315:20)
at Client.EventEmitter.emit (domain.js:485:12)
at MessageCreateAction.handle (A:\Projects\JereBot\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (A:\Projects\JereBot\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (A:\Projects\JereBot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:386:31)
at WebSocketShard.onPacket (A:\Projects\JereBot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:435:22)
at WebSocketShard.onMessage (A:\Projects\JereBot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:293:10)
at WebSocket.onMessage (A:\Projects\JereBot\node_modules\ws\lib\event-target.js:120:16)
at WebSocket.emit (events.js:315:20)
解决方案
从discord.js 12.0.0开始,API 使用缓存。试试看:
let channel_info = message.member.guild.voiceStates.cache.find(user => user.id == message.author.id)
message.guild.channels.cache.find(channel => channel.id == channel_info.channelID).join().then(function(connection){
play(connection, message);
});
推荐阅读
- c# - Unity & VS Code - 无法构建,无法调试
- react-native - 如何再次取消选中相同的复选框?
- javascript - 我在确定我的功能范围时做错了什么?
- json - 在typeScript中将大JSON从对象数组包装到带有“数据”的对象的最简单方法是什么
- angular - 内部描述中的模拟数据问题(茉莉花)
- python - 如何在python中将嵌套的Json转换为csv?
- javascript - Meteor 使用外部 mongodb 时运行 mongo-dev-server(project dev local mongo)
- tableau-api - 一月第一周的周数未显示在 Tableau 中
- html - 用图像拟合 css 网格单元
- swift - 关闭时缺少返回期望返回“无效?”