mirror of
https://github.com/pacnpal/Pac-cogs.git
synced 2025-12-20 10:51:05 -05:00
fix: Improve command registration and cleanup - Add proper command syncing - Add teardown function - Add error handling for sync operations
This commit is contained in:
@@ -1,12 +1,30 @@
|
|||||||
"""VideoArchiver cog for Red-DiscordBot"""
|
"""VideoArchiver cog for Red-DiscordBot"""
|
||||||
from redbot.core.bot import Red
|
from redbot.core.bot import Red
|
||||||
from .video_archiver import VideoArchiver
|
from .video_archiver import VideoArchiver
|
||||||
from .commands import VideoArchiverCommands
|
|
||||||
|
|
||||||
async def setup(bot: Red) -> None:
|
async def setup(bot: Red) -> None:
|
||||||
"""Load VideoArchiver."""
|
"""Load VideoArchiver."""
|
||||||
cog = VideoArchiver(bot)
|
cog = VideoArchiver(bot)
|
||||||
|
# Add cog first
|
||||||
await bot.add_cog(cog)
|
await bot.add_cog(cog)
|
||||||
# Add commands from VideoArchiverCommands
|
# Then sync commands after cog is loaded
|
||||||
commands_cog = VideoArchiverCommands(bot, cog.config_manager, cog.update_checker, cog.processor)
|
if hasattr(bot, "tree"):
|
||||||
await bot.add_cog(commands_cog)
|
try:
|
||||||
|
# Only sync guild commands to avoid rate limits
|
||||||
|
await bot.tree.sync(guild=None)
|
||||||
|
except Exception as e:
|
||||||
|
# Log error but don't fail cog load
|
||||||
|
bot.log.error(f"Failed to sync commands: {str(e)}")
|
||||||
|
|
||||||
|
async def teardown(bot: Red) -> None:
|
||||||
|
"""Clean up when unloading."""
|
||||||
|
if hasattr(bot, "tree"):
|
||||||
|
try:
|
||||||
|
# Remove all commands from this cog
|
||||||
|
for command in bot.tree.get_commands():
|
||||||
|
bot.tree.remove_command(command.name)
|
||||||
|
# Sync to remove commands from Discord
|
||||||
|
await bot.tree.sync(guild=None)
|
||||||
|
except Exception as e:
|
||||||
|
# Log error but don't fail cog unload
|
||||||
|
bot.log.error(f"Failed to cleanup commands: {str(e)}")
|
||||||
|
|||||||
Reference in New Issue
Block a user