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

我的Discord机器人中@bot.command()指令无法生效是什么原因?

问题原因及解决方案
  • 自定义on_message事件覆盖了默认命令处理流程

当你重写@bot.event装饰的on_message事件后,discord.py将不再执行默认的事件逻辑,而默认逻辑中包含了@bot.command()注册指令的分发处理代码。
解决方法:在你自定义的on_message函数末尾添加一行代码:

await bot.process_commands(message)
  • 命令大小写或前缀不匹配

discord.py默认的命令是大小写敏感的,你注册的指令名为check,如果用户发送的是.Check(和帮助页的写法一致),会匹配失败。另外需要确认你初始化Bot时设置的命令前缀确实为.。
解决方法:在Bot初始化时添加case_insensitive=True参数关闭大小写敏感,或者统一指令调用写法为.check,也可以给check指令添加别名适配大小写。

  • 接口调用代码存在未捕获的异常,导致执行中断

你的代码中token变量仅在育碧会话请求状态码为200时才会被定义,一旦会话请求失败,后续的用户名查询请求会触发token变量未定义的报错,直接终止函数运行无输出。同时同步的requests库调用会阻塞discord.py异步主线程,也可能导致无响应。
解决方法:添加异常捕获逻辑,处理会话请求失败的场景,同时替换requests为异步的aiohttp库发起网络请求。

  • 未开启消息内容权限

Discord平台现在要求所有消息读取类机器人必须在开发者后台开启Message Content Intent权限,同时初始化Bot时要配置对应的意图参数intents.message_content = True,否则机器人无法读取消息内容,自然无法触发指令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:06:05