Discord.py开发的Bot重启后指令提示command not found是什么原因?
问题原因排查列表
- 装饰器语法错误:你当前代码里的指令注册装饰器写的是
@bot.command,正确写法应为@bot.command(),末尾缺少括号会导致装饰器未被正确调用,hi函数不会被注册为bot的可识别指令,这是最直接的报错原因。 - 未正确配置消息意图:discord.py v2.0及以上版本要求显式开启
message_content权限才能读取用户消息内容识别指令,你需要做两处修改:- 代码中初始化bot前添加意图配置:
intents = discord.Intents.default() intents.message_content = True bot = commands.Bot(command_prefix = "*", intents=intents)- 前往Discord开发者后台的对应Bot设置页,开启「Message Content Intent」开关。
- 调用指令时未加前缀:你配置的指令前缀是
*,需要发送*hi才能触发指令,直接发送hi不会被bot识别为指令。 - Bot权限不足:邀请Bot进入服务器时未授予「读取消息/查看频道」「发送消息」权限,会导致Bot无法读取指令消息或者无法发送响应内容。
- 若后续添加了
on_message自定义事件,需要在事件末尾添加await bot.process_commands(message),否则自定义消息事件会覆盖默认的指令识别逻辑,导致所有指令失效。
内容的提问来源于stack exchange,提问作者rhi
相关产品推荐
相关产品推荐

