Discord机器人无法回复消息的问题排查及代码修复请求
Discord机器人无法回复消息的问题排查及代码修复请求
嘿,我帮你排查出代码里的几个关键问题,这就是机器人不回复消息的原因,下面给你详细说明并附上修复后的完整代码:
代码里的问题点:
- 缺少事件装饰器:你的
on_message函数没有添加@client.event装饰器,Discord.py无法识别这是一个消息事件处理函数,自然不会触发它。 - 缩进错误:Python是严格依赖缩进的语言,你代码里
on_ready的print语句、on_message里的判断逻辑都没有正确缩进,会导致代码运行报错或者逻辑不执行。 - Intents权限不足:当前Discord要求必须显式开启
message_content意图才能读取消息内容,而你使用的discord.Intents.default()并不包含这个权限,所以机器人根本看不到你发送的消息。 - 消息发送方法错误:
message.send()是不存在的方法,想要回复消息应该用message.reply()(带引用回复)或者message.channel.send()(在对应频道发送消息)。
修复后的完整代码:
import discord # 开启所需的Intents,包含message_content权限 intents = discord.Intents.default() intents.message_content = True client = discord.Client(intents=intents) TOKEN = "MY TOKEN HERE" @client.event async def on_ready(): # 正确缩进的print语句 print(f"{client.user.name} has logged in!") @client.event # 给on_message加上事件装饰器 async def on_message(message): # 避免机器人回复自己的消息,防止死循环 if message.author == client.user: return if message.content == "안녕?": # 使用正确的reply方法带引用回复 await message.reply("안녕!") client.run(TOKEN)
关于Mac和Windows的差异:
其实几乎没有本质区别,代码本身是完全跨平台的。唯一可能需要注意的是Python环境的配置:Mac自带Python2,你要确保自己安装并使用的是Python3;安装discord.py的时候,Mac上可能需要用pip3 install discord.py而Windows用pip install discord.py,但只要环境配置正确,机器人的运行逻辑不会因为系统不同而出现问题。
备注:内容来源于stack exchange,提问作者seonhukim7805
相关产品推荐
相关产品推荐

