每当我运行不和谐的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事件永远不会运行;我从没在控制台日志中得到打印语句。
感谢任何帮助,谢谢:)
答案 0 :(得分:3)
bot.run
必须是代码的最后一行。 Python是按顺序执行的,因此直到机器人完成运行后,bot.run
下面的所有内容才被调用。
答案 1 :(得分:0)
好的,我已经解决了!
显然on_message函数存在问题,我想我只是在FAQ中跳过了它。任何对此感到困惑的人,只需添加以下行即可:
等待bot.process_commands(消息)
进入您的on_message函数。当您定义自己的on_message函数时,它将覆盖将消息传递到命令处理程序中的原始函数。
还要确保在函数声明之后在代码末尾使用bot.run()。简单的错误,但现在都已解决:)