@fanepka
Работаю на Python

Игнорирование команды discord.py?

Добрый день. Делал себе бота и хотел делать проверку на регистрацию пользователя и гильдии в базе данных. Для это использовал on_message, чтобы получать все сообщения из гильдий. Но тут проблема. Основные команды бот теперь игнорирует. Вроде бы загуглил правильно, но ответа нет. Помогите

Сам код

client = commands.Bot(command_prefix=config.PREFIX)
client.remove_command('help')

@client.event
async def on_message(ctx):
	try:
		print(ctx)

	except AttributeError:
		pass

#Test command
@client.command(pass_context=True)
async def test(ctx):
	await ctx.send('`Привет`')
  • Вопрос задан
  • 619 просмотров
Решения вопроса 1
F.A.Q./Why does on_message make my commands stop w...:
Замена стандартного `on_message` предотвращает выполнение любых дополнительных команд. Для исправления этого добавьте добавьте строку `bot.process_commands(message)` в конце вашего `on_message`, например:

@bot.event
async def on_message(message):
    # делаем что-нибудь тут

    await bot.process_commands(message)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@ratratrat
в дополнение: неверно расставлены отступы, у Вас их 2, а должно быть 4(!)

client = commands.Bot(command_prefix=config.PREFIX)
client.remove_command('help')

@client.event
async def on_message(ctx):
    try:
        print(ctx)

    except AttributeError:
        pass

#Test command
@client.command()
async def test(ctx):
    await ctx.send('`Привет`')


также в новой версии можно вбивать client.command без pass_context

также советую использовать Tab для быстроты расстановки отступов
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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