在 Discord Python 代码中找不到命令错误

每当我运行我的不和谐 python 代码并在不和谐聊天中对其进行测试时,它都会说找不到 ping 命令,即使我在代码中定义了它。


我尝试同时使用 Bot 和 Client,但都出现了相同的错误。


import discord

from discord.ext import commands



bot_prefix= "]"

bot = commands.Bot(command_prefix=bot_prefix)



bot.run("*")


@bot.event

async def on_ready():

    print("ok")

@bot.event

async def on_message(message):

    print(message.content)



@bot.command()

async def ping(ctx):

    latency = bot.latency

    await ctx.send(latency)


个人信息以“*”代替


机器人应该在用户的频道中发送一条消息,说明机器人的延迟,但我只是收到一条错误消息:“忽略命令中的异常无:discord.ext.commands.errors.CommandNotFound:命令“ping”不是找到”即使我在代码中定义了 ping 命令。


另外,应该注意的是 on_ready 事件永远不会运行;我从来没有在控制台日志中得到打印语句。


子衿沉夜
浏览 142回答 2
2回答

米琪卡哇伊

bot.run必须是代码中的最后一行。Python 按顺序执行,因此bot.run在机器人完成运行之前不会调用下面的所有内容。

手掌心

好的,我搞定了!!显然 on_message 函数存在问题,我想我只是在常见问题解答中跳过了它。任何对此感到困惑的人,只需添加以下行:等待 bot.process_commands(消息)进入你的 on_message 函数。当您定义自己的 on_message 函数时,它会覆盖将消息传递到命令处理程序的原始函数。还要确保在代码末尾,在函数声明之后使用 bot.run()。简单的错误,但现在它们都已修复:)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python