Discord.js 13出现channel.join is not a function错误如何解决?
错误原因
Discord.js 从13版本开始将所有语音相关能力从核心库中剥离,独立为单独的@discordjs/voice维护,因此原v12版本内置的VoiceChannel.join()方法已被官方移除,调用时自然会抛出方法不存在的错误。
修复方案
- 第一步:安装独立语音依赖
npm install @discordjs/voice
- 第二步:替换原有加入语音频道的逻辑
你原来的代码可以直接调整为如下写法:
// 顶部引入语音库的加入方法 const { joinVoiceChannel } = require('@discordjs/voice'); const voiceChannel = message.member.voice.channel; // 调用新方法加入频道 const voiceConnection = joinVoiceChannel({ channelId: voiceChannel.id, guildId: voiceChannel.guild.id, adapterCreator: voiceChannel.guild.voiceAdapterCreator });
- 额外注意项:Discord.js v13要求显式声明机器人需要的意图,你需要确保你初始化客户端时的意图列表包含
GuildVoiceStates,否则即使调整了代码也无法正常连接语音频道。
内容的提问来源于stack exchange,提问作者nikoszz
相关产品推荐
相关产品推荐

