import discord import config import logging # Set up logging logging.basicConfig(level=logging.DEBUG) class Selena(discord.Client): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.tree = discord.app_commands.CommandTree(self) async def setup_hook(self): guild = discord.Object(id=config.DISCORD_GUILD_ID) await self.load_extensions() self.tree.copy_global_to(guild=guild) await self.tree.sync(guild=guild) async def load_extension(self, name): module = __import__(name, fromlist=["setup"]) await module.setup(self) async def load_extensions(self): # Mandatory modules that cannot be disabled mandatory_modules = [ "modules.admin.logger_module", "modules.admin.policy_module", ] # Load mandatory modules for extension in mandatory_modules: await self.load_extension(extension) # Load enabled modules from configuration for extension in config.ENABLED_MODULES: await self.load_extension(extension) async def on_ready(self): print(f'Logged in as {self.user} (ID: {self.user.id})') print('------') if __name__ == "__main__": intents = discord.Intents.default() client = Selena(intents=intents) client.run(config.DISCORD_TOKEN)