gacha-bot / cogs /developer.py
Amit
Clean Cloud Deployment
732ca45
Raw
History Blame Contribute Delete
1.59 kB
# cogs/developer.py
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))