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

Discord机器人异常:指定频道所有消息均被删除问题求助

Discord机器人频道消息过滤问题修复

问题根源

  1. Intents配置错误:你创建client时用了默认Intents,但单独定义的message_content=True没有传递给client,导致机器人无法读取消息内容。message.content始终为空,自然永远不等于"cado",所以所有消息都被删除。
  2. 频道ID类型不匹配:message.channel.id是整数类型,你用了字符串占位符'id',实际要替换成目标频道的数字ID,且不能加引号。
  3. 未排除机器人自身消息:如果不跳过机器人自己的消息,可能引发不必要的删除操作。

修正后的代码

import os
import discord

# 正确配置Intents,开启message_content权限
intents = discord.Intents.default()
intents.message_content = True

client = discord.Client(intents=intents)

@client.event
async def on_ready():
    print('BOTCADO ONLINE')

@client.event
async def on_message(message):
    # 跳过机器人自己的消息,避免循环操作
    if message.author == client.user:
        return
    
    # 替换成你的目标频道数字ID(不要加引号)
    target_channel_id = 123456789012345678
    if message.channel.id == target_channel_id:
        # 严格匹配"cado",如果要忽略大小写可以改成message.content.lower() == "cado"
        if message.content != "cado":
            await message.delete()

client.run(os.getenv('TOKEN'))

关键修改说明

  • 先配置包含message_content的Intents,再传给Client实例,确保机器人能正常读取消息内容。
  • 把频道ID替换成实际的数字ID(可以在Discord开启开发者模式后右键频道复制ID)。
  • 添加机器人自身消息的判断,避免不必要的操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 13:35:25