From 16990071cb856295b7955cebe69d90dafd6887de Mon Sep 17 00:00:00 2001 From: Michael H Date: Thu, 2 May 2019 16:25:35 -0400 Subject: [PATCH] [V3 core] on_message_without_command dispatch (#2338) * conveinience and performance addition with new dispatch * I promise, I read the specs first. * Really, I read the fucking specs. --- redbot/core/bot.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/redbot/core/bot.py b/redbot/core/bot.py index 004b00432..aba40f504 100644 --- a/redbot/core/bot.py +++ b/redbot/core/bot.py @@ -190,6 +190,21 @@ class RedBase(commands.GroupMixin, commands.bot.BotBase, RPCMixin): async def get_context(self, message, *, cls=commands.Context): return await super().get_context(message, cls=cls) + async def process_commands(self, message: discord.Message): + """ + modification from the base to do the same thing in the command case + + but dispatch an additional event for cogs which want to handle normal messages + differently to command messages, + without the overhead of additional get_context calls per cog + """ + if not message.author.bot: + ctx = await self.get_context(message) + if ctx.valid: + return await self.invoke(ctx) + + self.dispatch("message_without_command", message) + @staticmethod def list_packages(): """Lists packages present in the cogs the folder"""