discord.js创建语音连接报错adapterCreator is not a function如何解决
问题原因及解决方案
你遇到的adapterCreator is not a function报错可以按照以下步骤逐一排查解决:
- 首先确认依赖安装和导入是否正确
joinVoiceChannel是独立包@discordjs/voice提供的方法,你需要先安装对应依赖:
同时确保导入方式正确:npm install @discordjs/voiceconst { joinVoiceChannel } = require('@discordjs/voice'); - 确认discord.js版本匹配
voiceAdapterCreator属性仅在discord.js v13及以上版本提供,如果你使用的是v12及更低版本,需要先升级discord.js到v13+,同时确保@discordjs/voice版本和discord.js版本适配。 - 确认Guild实例有效
你需要保证运行代码时message.guild是有效的服务器实例,不是undefined或null:- 这段代码不能在私信频道场景下触发,私信场景不存在服务器实例
- 如果你是通过斜杠交互触发逻辑,应该使用
interaction.guild.voiceAdapterCreator而非message.guild下的属性
你可以在调用joinVoiceChannel前添加日志确认属性存在:
如果返回结果不是console.log(typeof message.guild?.voiceAdapterCreator)function,说明你获取的Guild实例异常,需要先排查Guild的获取逻辑。 - 确认参数书写正确
配置项中的adapterCreator是大小写敏感的,注意不要拼写为AdapterCreator等错误形式;同时不要对voiceAdapterCreator加执行括号,你需要传入的是函数本身,而非函数执行后的返回值,确认代码里写的是adapterCreator: message.guild.voiceAdapterCreator而非adapterCreator: message.guild.voiceAdapterCreator()。
内容的提问来源于stack exchange,提问作者scirip
相关产品推荐
相关产品推荐

