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

Discord.py中on_voice_state_update事件不生效问题求助

问题排查步骤
  • 检查Bot实例初始化的意图配置
    discord.py v2.0及以上版本要求显式声明所需网关意图,你必须在初始化Client/Bot实例时开启voice_states意图,参考配置如下:
    intents = discord.Intents.default()
    intents.voice_states = True
    client = commands.Bot(command_prefix="自定义的命令前缀", intents=intents)
    
  • 检查Discord开发者后台的权限开关
    进入Discord开发者后台的对应Bot管理页,找到「Privileged Gateway Intents」分区,开启Voice State Intent开关。
  • 确认Cog已成功加载
    启动Bot后查看控制台是否打印test is loaded!,如果没有输出说明Cog未被正确加载,你需要在主文件中调用await client.load_extension("Cog文件的名称,无需加.py后缀")完成加载。
  • 确认Bot拥有对应频道的查看权限
    如果Bot没有权限访问用户加入的语音频道,也无法监听到对应的状态变更事件。
  • (可选)优化触发逻辑
    你当前的代码会在任何语音状态变更(包括静音、切换频道、离开频道等)时打印1,如果仅需要在用户加入语音频道时触发,可以补充状态判断:
    @commands.Cog.listener()
    async def on_voice_state_update(self, member, before, after):
        if before.channel is None and after.channel is not None:
            print("1")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:09:02