@Leqort

Как исправить ошибку не найдена команда?

Сижу я делаю себе очистку чата, запускаю бота и пишет что команда не найдена хотя я даже ей дал имя.
Вот код:
import discord      # импортируем нужные библиотеки, и токен для бота.
from discord.ext import commands
from discord.ext.commands import Bot
from config import TOKEN


bot = Bot(command_prefix='!')   # префикс бота перед командой

@bot.event
async def on_ready():
    print(f'Logged on {bot.user}')   # пишем что бот запустился

    await bot.change_presence(status=discord.Status.do_not_disturb, activity=discord.Game("!help")) # статус бота, и игра в которую он играет

@bot.command()
async def hi(ctx):
    await ctx.reply('Привет!') # первая команда, привет

@commands.command(name='clear')
async def clear(self, ctx, amount:int):
    messages = await ctx.channel.purge(limit = amount + 1)
    await ctx.send(f"{len(messages)} сообщений было очищено!")
 

bot.run(TOKEN)

Вот ошибка:
Logged on Leqort#9720
Ignoring exception in command None:
discord.ext.commands.errors.CommandNotFound: Command "clear" is not found
  • Вопрос задан
  • 494 просмотра
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Не создали команду.

Либо делаете просто @bot.command(), либо @commands.command(), при этом регистрируя ее с помощью bot.add_command(test).

@commands.command() есть, а регистрации - нет

https://discordpy.readthedocs.io/en/stable/ext/com...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Wolf_Yout
@Wolf_Yout
Так команда не создаёться, либо пробуйте:
@bot.command(name='clear')
async def _clear(self, ctx, amount:int):
    messages = await ctx.channel.purge(limit = amount + 1)
    await ctx.send(f"{len(messages)} сообщений было очищено!")

Либо после bot = Bot(command_prefix='!') # префикс бота перед командой напишите:
bot.add_command('clear')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы