| |
| import discord |
| from discord import app_commands |
| from discord.ext import commands |
| import logging |
|
|
| logger = logging.getLogger(__name__) |
|
|
| class DeveloperCog(commands.Cog): |
| def __init__(self, bot): |
| self.bot = bot |
|
|
| su_dev = app_commands.Group( |
| name="sudev", |
| description="Developer God Mode Tools", |
| default_permissions=discord.Permissions(administrator=True) |
| ) |
|
|
| @su_dev.command(name="reload", description="Hot-reload a specific cog without restarting the bot") |
| @app_commands.describe(cog_name="The name of the cog to reload (e.g., cogs.market)") |
| async def reload_cog(self, interaction: discord.Interaction, cog_name: str): |
| await interaction.response.defer(ephemeral=True) |
| try: |
| await self.bot.reload_extension(cog_name) |
| await interaction.followup.send(f"β
Successfully hot-reloaded `{cog_name}`!") |
| logger.info(f"Admin {interaction.user.name} hot-reloaded {cog_name}.") |
| except commands.ExtensionNotLoaded: |
| try: |
| await self.bot.load_extension(cog_name) |
| await interaction.followup.send(f"β
Successfully loaded new cog `{cog_name}`!") |
| except Exception as e: |
| await interaction.followup.send(f"β Failed to load `{cog_name}`: {e}") |
| except Exception as e: |
| logger.error(f"Failed to reload {cog_name}: {e}", exc_info=True) |
| await interaction.followup.send(f"β Error reloading `{cog_name}`: {e}") |
|
|
| async def setup(bot): |
| await bot.add_cog(DeveloperCog(bot)) |
|
|