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

如何在Pycord中实现词汇过滤?我编写的指定消息删除代码无效

问题修正方案

你的代码存在几个关键错误,导致自动删除消息的功能无法正常运行,以下是具体修正方案:

错误点梳理

  • on_message 事件参数错误:Pycord 中该事件仅接收 message 参数,不需要额外的 ctx
  • 消息内容判断逻辑错误:直接将 message 对象与字符串 "test" 比较永远不会成立,需通过 message.content 获取消息文本内容
  • 方法调用错误:message.delete 是方法,必须添加括号 () 才能执行删除操作
  • 缺少自我消息过滤:若机器人自身发送 "test" 消息,也会触发删除逻辑,建议添加判断避免这种情况

修正后的代码

@bot.event
async def on_message(message):
    # 跳过机器人自己的消息,避免循环删除
    if message.author == bot.user:
        return
    # 判断消息内容是否完全等于"test"
    if message.content == "test":
        await message.delete()

扩展说明

如果需要删除包含"test"的消息(而非完全匹配),可以将判断逻辑改为:

if "test" in message.content:
    await message.delete()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 02:55:55