diff --git a/cogs/message_listener/__init__.py b/cogs/message_listener/__init__.py new file mode 100644 index 0000000..2545332 --- /dev/null +++ b/cogs/message_listener/__init__.py @@ -0,0 +1,41 @@ +"""Defines cog for on message listener.""" + +import nextcord +from nextcord.ext import commands + +from main import birthday_list + + +class SubmissionListener(commands.Cog, name="Message Listener"): + """Sets up message listener.""" + + def __init__(self, bot: commands.Bot) -> None: + self.bot = bot + + @commands.Cog.listener() + async def on_message(self, message: nextcord.Message) -> None: + """Listen for message creation. Adds score and attachments to submission.""" + # don't want to process any messages from bot. + if message.author.id == self.bot.user.id: # type: ignore reportOptionalMemberAccess + return + + await birthday_action(message) + + +# This function will be called when this extension is loaded. +# It is necessary to add these functions to the bot. +def setup(bot: commands.Bot) -> None: + """Add function to bot.""" + bot.add_cog(SubmissionListener(bot)) + + +async def birthday_action(message: nextcord.Message) -> None: + """ + Check a message's author and mentions to see if they are in the birthday list. + + Args: + message (nextcord.Message): The message to check for a birthday person. + + """ + if message.author.id in birthday_list or bool(set(message.raw_mentions) & set(birthday_list)): + await message.add_reaction("🎂")