Декораторы event и command в discord.py
Возникла вот такая проблема в процессе написания бота для дискорда на Python. Написал функцию, чтобы при отправлении сообщения производились какие-то действия с базой данных. Вот сама функция с соответствующим декоратором:
@client.event
async def on_message(message):
#действия с бд
Но при использовании данной функции у меня перестают работать команды. Вот сама команда (самая простая):
@client.command()
async def hello(ctx):
author = ctx.message.author
await ctx.send(f"Hello, {author.mention}!")
Не могу понять в чём проблема. Может есть какой-то другой декоратор, позволяющий производить какие-то действия при отправке сообщений.
Ответы (1 шт):
F.A.Q./Why does on_message make my commands stop working?:
Замена стандартного
on_messageпредотвращает выполнение любых дополнительных команд. Для исправления этого добавьте добавьте строкуbot.process_commands(message)в конце вашегоon_message, например:
@bot.event
async def on_message(message):
# делаем что-нибудь тут
await bot.process_commands(message)