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

如何阻止Discord机器人响应自身/其他机器人?解决刷屏问题

解决Discord机器人无限刷屏"k"的问题

这个问题的根源很明显——你的机器人陷入了无限循环:当它发送"k"这条消息后,这条消息会被它自己的on_message事件监听器捕捉到,因为内容匹配"k",所以它又会发送一次"k",如此反复直到你关闭它。

要解决这个问题,只需要在处理消息前先排除机器人自身发送的消息就行,具体步骤如下:

  • 在on_message函数的最开头,添加判断:如果消息的发送者是机器人自己,直接返回,不执行后续逻辑。这样机器人发送的"k"就不会触发自己的事件了。
  • 另外注意:如果你的Discord.py版本是v1.0及以上,client.send_message已经被弃用,推荐使用message.channel.send()来发送消息。

修改后的完整代码如下:

@client.event
async def on_message(message):
    # 排除机器人自身的消息,避免循环
    if message.author == client.user:
        return
    
    if message.content == "k":
        # 新版本用message.channel.send替代client.send_message
        await message.channel.send("k")
    
    await client.process_commands(message)

这样修改后,机器人只会响应其他用户发送的"k",而不会被自己发送的消息触发循环,也就不会刷屏了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:34:08