Discord Python Bot前缀命令无响应,请求技术排查
问题分析与解决
你的代码存在直接的匹配错误,同时结合Discord.py的版本特性,还有几个关键排查点:
核心错误:命令名称不匹配
你定义的命令名称是tst(@bot.command(name='tst')),但在Discord中输入的是!test,机器人无法识别到对应命令,自然没有响应。
修正后的可运行代码
import discord from discord.ext import commands # Discord.py v2.0+ 必须启用message_content意图才能读取消息内容 intents = discord.Intents.default() intents.message_content = True bot = commands.Bot(command_prefix='!', intents=intents) TOKEN = "Token_here" @bot.command(name='test') # 命令名改为test,对应输入!test;若保留tst则输入!tst调用 async def test(ctx): await ctx.send('testt') print('Test') @bot.event async def on_ready(): print(f'Successful login as {bot.user}') bot.run(TOKEN)
其他必要排查项
- Intents权限配置:除了代码中开启
message_content,还要到Discord开发者平台的机器人页面,手动开启"Message Content Intent"开关,否则机器人无法读取消息内容。 - 服务器权限:确保机器人在目标服务器拥有「发送消息」「读取消息」「读取消息历史」的基础权限,否则无法接收和响应命令。
- 前缀一致性:确认输入的前缀和代码中
command_prefix='!'完全一致,避免输入错误(比如中文感叹号)。
内容的提问来源于stack exchange,提问作者GhostRyder902
相关产品推荐
相关产品推荐

