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

Discord Bot重复回复问题求助:多实例运行导致指令多次响应

问题解决步骤

一、终止残留的Bot进程(解决重复回复问题)

你断开PyCharm连接时未终止进程,旧的Bot实例仍在后台运行,和新启动的Bot同时在线,因此会出现多次回复的情况。

  • Windows:打开任务管理器 → 找到所有python.exe或pythonw.exe进程 → 右键选择「结束任务」
  • macOS/Linux:打开终端执行以下命令:
    # 查找所有Python进程
    ps aux | grep python
    # 找到对应Bot的进程ID(PID)后执行终止命令
    kill <进程PID>
    # 若确定无其他Python程序在运行,可直接终止所有Python进程
    pkill python
    

重新启动Bot后,重复回复的问题即可解决。

二、修正代码中的错误

你的代码存在两处问题:

  1. 拼写错误:msg.conent应为msg.content,此错误会导致包含"meme"的消息无法触发回复
  2. 重复判断:两次检查"amouranth"会触发两次发送操作,可合并为一个判断块

修正后的代码:

async def on_message(self, msg):
    if msg.author == self.user:
        return

    if msg.content == 'ping':
        await msg.channel.send('pong')
    elif "meme" in msg.content:
        await msg.channel.send('Go to reddit I just have Mommy pics')
    elif "gigachad" in msg.content:
        await msg.channel.send('https://i.kym-cdn.com/entries/icons/original/000/026/152/gigachad.jpg')
    elif "amouranth" in msg.content:
        await msg.channel.send('https://files.spieletipps.de/2c/2e/85/839491e6c61a69a14d7d6d9024_ciA2NDIDMmU4NGU2NjE3ZDI=.jpg')
        await msg.channel.send('MOMMY')

说明:用elif替代多个独立if,可减少不必要的条件判断,同时修正拼写错误、合并重复逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 01:25:28