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
相关产品推荐
相关产品推荐

