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

discord.py开发的Discord Bot无响应问题求助

Discord Bot on_message事件与命令无响应问题解决

你的代码存在两个核心问题,导致on_message事件未正常触发命令、自定义消息处理逻辑也异常:

问题1:重写on_message未调用父类方法

当自定义on_message事件时,会覆盖commands.Bot默认的消息处理逻辑,而Bot的命令解析正是依赖默认的on_message实现。必须在自定义的on_message末尾调用父类方法,才能让命令系统正常工作。

问题2:命令装饰器缺少括号

@bot.command需要写成@bot.command(),不带括号的话装饰器无法正确初始化,导致hi命令不会被Bot注册。

修复后的完整代码

import discord
from discord.ext import commands

intents = discord.Intents.all()
intents.message_content = True

bot = commands.Bot(command_prefix='!', intents=intents)

@bot.event
async def on_ready():
    print(f'Logged in as {bot.user} (ID: {bot.user.id})')
    print('------')

@bot.event
async def on_message(message):
    print(message)
    if message.author == bot.user:
        return
    print(message)
    # 调用父类方法,确保命令逻辑被执行
    await super().on_message(message)

@bot.command()
async def hi(ctx):
    print(ctx)
    await ctx.send('#your response here')

bot.run('MY_TOKEN')

额外验证要点:

  • 确认Bot的Token正确,且已被邀请到目标服务器并拥有Send Messages、Read Message History等必要权限
  • 检查Discord开发者后台是否已开启服务器的消息内容意图(Message Content Intent)(代码中设置intents.message_content = True后,后台也需同步开启对应权限)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 11:42:06