Discord.py中@client.command()失效,welcome命令无法运行求助
Discord.py 命令无法运行问题排查
问题原因分析
自定义
on_message事件拦截了命令处理
当自定义on_message函数后,Discord.py默认的命令解析逻辑会被覆盖,机器人只会执行你编写的消息处理逻辑,不会识别和执行命令。必须手动调用client.process_commands(message)来触发命令处理流程。缺少
random模块导入welcome命令中使用了random.choice()方法,但代码开头未导入random模块,运行时会抛出NameError,导致命令执行失败。
修正后的完整代码
import discord import random # 补充导入random模块 from discord.ext import commands PREF = '!' client = commands.Bot(command_prefix=PREF) client.remove_command("help") @client.event async def on_message(message): wordd = 'say home' if wordd in message.content: await message.channel.send("home") # 新增该行,让机器人处理命令 await client.process_commands(message) @client.command() async def welcome(ctx): tablica = ["czesc", "siema", "witaj"] await ctx.channel.send(random.choice(tablica)) client.run(<你的令牌>)
内容的提问来源于stack exchange,提问作者ad_progg
相关产品推荐
相关产品推荐

