diff --git a/bot.py b/bot.py index 967c009..cfb8e29 100644 --- a/bot.py +++ b/bot.py @@ -2,6 +2,7 @@ import os import disnake from disnake.ext import commands +from disnake.ext.commands import ExtensionAlreadyLoaded from dotenv import load_dotenv from logger import Logger @@ -26,7 +27,10 @@ if __name__ == '__main__': @bot.event async def on_ready(): - pass + try: + bot.load_extension('cogs.events') + except ExtensionAlreadyLoaded as eal: + pass @bot.event diff --git a/cogs/events.py b/cogs/events.py new file mode 100644 index 0000000..1cf6b68 --- /dev/null +++ b/cogs/events.py @@ -0,0 +1,40 @@ +import disnake +from disnake.ext import commands +import os + +from logger import Logger + +logger = Logger('Liza Events') + + +class EventsCog(commands.Cog): + def __init__(self, bot): + self.bot = bot + self.JOIN_MESSAGE = os.getenv('JOIN_MESSAGE') + self.LEAVE_MESSAGE = os.getenv('LEAVE_MESSAGE') + self.CHANNEL = os.getenv('WELCOME_LEAVE_CHANNEL_ID') + + @commands.Cog.listener() + async def on_member_join(self, member: disnake.Member): + c: disnake.guild = self.bot.get_channel(self.CHANNEL) + + await c.send_message(self.JOIN_MESSAGE.format(member.mention)) + + + @commands.Cog.listener() + async def on_member_update(self, before: disnake.Member, after: disnake.Member): + pass + + @commands.Cog.listener() + async def on_member_remove(self, member: disnake.Member): + c: disnake.guild = self.bot.get_channel(self.CHANNEL) + + await c.send_message(self.LEAVE_MESSAGE.format(member.mention)) + + @commands.Cog.listener() + async def on_member_ban(self, guild: disnake.Guild, member: disnake.Member or disnake.User): + pass + + +def setup(bot): + bot.add_cog(EventsCog(bot))