Обработка одного сообщения двумя обработчиками

Есть бот, который ограничивает возможность писать людям с указанной ролью (накладывает ограничение: не больше 1 сообщения в n секунд). Поскольку ограничение нужно накладывать при любом сообщении, используется эвент on_message.
Бот шикарно работает и справляется со своей задачей, пока не возникает необходимость добавить в него какую-либо команду через client.command, а не client.event:

import discord
from discord.ext import commands
import asyncio

CONTROL_ROLE = 'limited'    # название роли, которая не может писать часто
MUTE_ROLE = 'muted'         # название роли, которая будет выдаваться для мута
COOLDOWN = 5                # минимальная дистанция между сообщениями в секундах
INVERTED = False            # при инверсии CONTROL_ROLE отображает whitelist-роль, которая обходит ограничение. По умолчанию это blacklist-роль
TOKEN = 'TOKEN'
PREFIX = '.'

client = commands.Bot(command_prefix=PREFIX)

@client.event
async def on_message(message=None):
    if message is not None:
        if (CONTROL_ROLE in (role.name for role in message.author.roles)) != INVERTED:
            role = discord.utils.get(message.channel.guild.roles, name=MUTE_ROLE)
            await message.author.add_roles(role)
            await asyncio.sleep(COOLDOWN)
            await message.author.remove_roles(role)

@commands.has_permissions(administrator=True)
@client.command(pass_context=True)
async def clear(ctx, count=20):
    await ctx.channel.purge(limit=count)

client.run(TOKEN)

Проблема возникает при вызове .clear. Бот попросту не реагирует на неё, как на команду.
Очевидно, это вызвано тем, что обработку этого сообщения берёт на себя эвент on_message. Можно ли как-то заставить бота после обработки on_message проверить существование команды?

P.s. пробовал убирать декоратор @commands.has_permissions(administrator=True), дело не в нём.


Ответы (1 шт):

Автор решения: Smoliarick

Попробуйте добавить await client.process_commands(message) первой строкой в функцию on_message (возможно поможет)

→ Ссылка