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

discord.py引入Cogs后命令重复执行、出现Unknown Message等报错求助

问题根因

命令重复执行及关联报错的核心原因是你在embed_command.py的Cog中额外添加了on_message监听,并且手动调用了await self.client.process_commands(message)。discord.py的Bot实例本身默认会执行一次命令解析逻辑,额外手动调用就会导致每条命令被解析执行两次。
而你看到的Unknown Message报错是因为第一次命令执行已经触发了消息删除操作,第二次执行同个命令时要删除的消息已经不存在;Already playing audio报错是因为两次调用播放指令,第一次已经启动了音频播放,第二次调用时播放器处于正在运行状态。

解决方案
  1. 直接删除embed_command.py中以下冗余代码即可:
@commands.Cog.listener()
async def on_message(self, message):
    if message.author == self.client.user:
        return
    await self.client.process_commands(message)

不需要在Cog中手动处理命令解析,Bot实例会自动完成这一步骤。
2. 你当前已经注释掉了main.py中直接调用cogs setup的循环,使用load_extension加载Cog的逻辑是正确的,不需要修改。

修改后重启机器人即可解决命令重复执行、关联报错的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:39:03