首页 > 解决方案 > 我的 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)

标签: javascriptdiscorddiscord.js

解决方案


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);
});

推荐阅读