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

Discord Bot命令hi未找到报错 修复后仍不响应命令问题求助

问题原因&修复方案

第一个报错(Command "hi" is not found)的根源

初始代码里的命令注册装饰器写法错误,@client.command 缺少调用括号,正确写法应为 @client.command(),装饰器没有正确执行所以命令没有被Bot注册,才会触发命令未找到的报错。

修改后代码无响应的核心问题

  • 代码执行顺序错误:client.run('Token') 是阻塞方法,代码运行到这一行后会一直保持Bot登录状态,后续创建commands.Bot实例、注册hi命令的代码永远不会被执行
  • 重复实例化客户端没有意义:commands.Bot 本身是discord.Client的子类,完全包含后者的所有功能,不需要同时实例化两个客户端
  • 缺少消息内容权限:discord.py v2.0及以上版本默认不开启消息内容读取权限,没有权限的情况下Bot无法识别消息中的命令前缀,自然不会响应

完整可运行修复代码

import discord
from discord.ext import commands
import os
import random

# 声明意图,开启消息内容读取权限
intents = discord.Intents.default()
intents.message_content = True

# 直接用commands.Bot实例化,不需要单独创建discord.Client
client = commands.Bot(command_prefix = '?', intents=intents)

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))

# 装饰器加括号正确注册命令
@client.command()
async def hi(ctx): 
  await ctx.send("Hello World")

# 所有配置、命令注册完成后再调用run启动Bot
client.run('替换为你的Bot Token')

额外注意:你需要登录Discord开发者平台,进入对应Bot的设置页,在「Privileged Gateway Intents」分类下开启Message Content Intent开关,否则即使代码声明了意图也无法读取消息内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:06:02