You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.js多Bot异常:clientHook触发逻辑却由client执行

问题分析与解决办法

问题出在你调用joinVoiceChannel时指定的adapterCreator是从client实例获取的,而非clientHook。这就导致不管监听的是哪个Bot的消息事件,最终都是client执行加入语音频道的操作,和事件触发的实例无关。

修正方案

把adapterCreator的来源改成clientHook对应的服务器实例,或者更稳妥的方式是直接使用消息事件里的message.guild来获取,避免硬编码服务器ID:

clientHook.on("messageCreate", async (message) => {
    if (message.author.bot && message.content.startsWith("You casted")) {
        // 先判断服务器是否存在,避免报错
        if (!message.guild) return;
        
        joinVoiceChannel({
            channelId: Fishgame[castStrength],
            guildId: message.guild.id,
            adapterCreator: message.guild.voiceAdapterCreator,
        });
    }
});

额外注意事项

  • 确认clientHook已正常登录,且拥有目标服务器的语音频道访问权限
  • 检查clientHook的Intents是否包含GUILD_VOICE_STATES等语音相关必要权限
  • 验证Fishgame[castStrength]返回的频道ID是有效的、存在的语音频道ID

内容的提问来源于stack exchange,提问作者TheKamek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 23:12:04