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

使用Nextcord开发Bot时,photo指令失效但on_message事件可正常运行的问题

问题原因与解决方案
  • 核心原因:当你自定义on_message事件处理函数时,Nextcord会默认跳过内置的命令解析流程。也就是说,如果你不在on_message里显式调用await bot.process_commands(message),所有用@bot.command()定义的指令都会失效;而你自己在on_message里写的文本匹配逻辑不受这个机制影响,这就是两种实现出现差异的根本原因。

  • 修复方法:修改你的on_message代码,添加命令处理的调用,让内置命令系统恢复工作:

@bot.event
async def on_message(message):
    if not message.author.bot:
        if '/photo' in message.content:
            await message.channel.send(message.author.avatar.url)
    # 必须添加这一行,确保命令解析器正常处理@bot.command()定义的指令
    await bot.process_commands(message)

如果不需要同时保留两种实现,建议只保留一种:要么用@bot.command()的官方命令方式(可以删掉on_message里的对应判断逻辑),要么继续用on_message的自定义匹配方式,但这种方式需要自己处理命令前缀、参数解析等细节,不如官方命令系统便捷。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:39:53