diff --git a/__main__.py b/__main__.py new file mode 100644 index 0000000..7a58e3f --- /dev/null +++ b/__main__.py @@ -0,0 +1,61 @@ +import os +import asyncio +import discord +from libs.Db import Db +from libs.BotLog import BotLog +from discord.ext import commands +from dotenv import load_dotenv + +load_dotenv() +token = os.getenv("DISCORD_TOKEN") +prefix = os.getenv("COMMAND_PREFIX") +guild_id = os.getenv("GUILD_ID") + +bot_intents = discord.Intents.default() +bot_intents.message_content = True +bot_intents.members = True + + +class FunkyBot(commands.Bot): + def __init__(self): + super().__init__( + command_prefix=prefix, + intents=bot_intents + ) + self.log_handler = BotLog("bot.log") + self.db = Db('sqlite:///data/bot.db', True) + self.guild_id = guild_id + + async def on_ready(self): + print(f"Logged in as {self.user.name}") + # await self.cmd_tree.sync(guild=discord.Object(id=551671017823797248)) + await self.load_cogs() + for cog in self.cogs: + print(f"{cog} Commands") + cg = self.get_cog(cog) + cmds = cg.get_commands() + print([f"/{c.name}" for c in cmds]) + synced = await self.tree.sync(guild=discord.Object(id=guild_id)) + print(synced) + + async def on_member_join(self, member): + channel = discord.utils.get(member.guild.channels, name="general") + role = discord.utils.get(await member.guild.fetch_roles(), name="Chinstrap Penguins") + if role is not None: + if role not in member.roles: + await member.add_roles(role) + await channel.send(f"Another Penguin has joined the Collective. Everyone say hi to {member.mention}!") + + + async def load_cogs(self): + for filename in os.listdir("./cogs"): + if filename.endswith(".py"): + await self.load_extension(f"cogs.{filename[:-3]}") + print(f"Loaded {filename[:-3]}") + +async def main(): + bot = FunkyBot() + async with bot: + await bot.start(token) + +asyncio.run(main())