Ошибка команды в коде Discord Python - PullRequest
0 голосов
/ 02 апреля 2019

Всякий раз, когда я запускаю свой код Python Discord и проверяю его в чате Discord, он говорит, что команда ping не найдена, хотя я определил ее в коде.

Я пытался использовать бот и клиент, и оба выдавали одну и ту же ошибку.

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 никогда не запускается; Я никогда не получаю оператор печати в журнале консоли.

Любая помощь приветствуется спасибо:)

Ответы [ 2 ]

3 голосов
/ 02 апреля 2019

bot.run должна быть последней строкой в ​​вашем коде.Python выполняется последовательно, поэтому все, что написано ниже bot.run, не вызывается до тех пор, пока бот не завершит работу.

0 голосов
/ 02 апреля 2019

Хорошо, я все исправил !!

Очевидно, что есть проблема с функцией on_message, я думаю, я просто пропустил ее в FAQ. Кто-нибудь смущен по этому поводу, просто добавьте строку:

await bot.process_commands (message)

в вашу функцию on_message. Когда вы определяете свою собственную функцию on_message, она переопределяет исходную функцию, которая передает сообщение в обработчик команд.

Также обязательно используйте bot.run () в конце вашего кода, после объявления функций. Простые ошибки, но они все исправлены:)

...