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

如何让Discord机器人删除含特定词汇的消息?代码报错求助

修复Discord机器人消息过滤器的报错问题

嘿,我来帮你搞定这个报错!咱们先拆解下你代码里的问题,再一步步修正:

错误原因分析

  • on_message事件参数写错了:Discord.py的on_message回调函数只需要接收message这一个参数,你写了ctx, message,直接导致参数不匹配,这就是报错TypeError: on_message() missing 1 required positional argument: 'message'的根源。
  • 大小写混淆:Python是大小写敏感的,你代码里用了大写的Message,但实际传入的参数是小写的message,程序会找不到对应的对象。
  • 方法调用漏了括号:lower是字符串的方法,必须加()才能调用它把内容转成小写,你写的lower只是引用了方法本身,没法判断内容里有没有敏感词。

修正后的完整代码

@bot.event
async def on_message(message):
    # 先排除机器人自己发的消息,避免触发无限循环
    if message.author == bot.user:
        return
    
    if 'fuck' in message.content.lower():
        await message.delete()

额外优化说明

我加了if message.author == bot.user: return这一行,是为了防止机器人误删自己发送的消息,避免出现不必要的循环问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 10:19:10