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

Posted

技术标签:

【中文标题】Discord Python代码中找不到命令错误【英文标题】:Command not found error in Discord Python code 【发布时间】:2019-08-24 00:02:21 【问题描述】:

每当我运行我的 discord python 代码并在 discord chat 中对其进行测试时,它都会说找不到 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: Command "ping" is not found" 即使我在代码中定义了 ping 命令。

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

感谢任何帮助:)

【问题讨论】:

当你运行机器人时它是否上线。您是否正确设置并添加到服务器? 是的,它上线了,我可以看出它正在从服务器获得响应,因为只有当我输入“]ping”时才会出现错误。 【参考方案1】:

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

【讨论】:

【参考方案2】:

好的,我搞定了!!

显然 on_message 函数存在问题,我想我只是在常见问题解答中跳过了它。任何对此感到困惑的人,只需添加以下行:

等待 bot.process_commands(消息)

进入你的 on_message 函数。当您定义自己的 on_message 函数时,它会覆盖将消息传递到命令处理程序的原始函数。

还要确保在代码末尾、函数声明之后使用 bot.run()。简单的错误,但现在都已修复:)

【讨论】:

以上是关于Discord Python代码中找不到命令错误的主要内容,如果未能解决你的问题,请参考以下文章

Python discord bot“找不到命令'ban'”错误

Discord Python代码中的命令未找到错误

Discord Bot 在消息中找不到嵌入内容

超越代码暴露 |暴露:在linux中找不到命令错误

discord.ext.commands.errors.CommandNotFound:找不到命令“播放”错误

错误:在 Heroku 上找不到模块 Discord.js