From 44579329afdff9fd9d6d0e08b80a53d90ec9270a Mon Sep 17 00:00:00 2001 From: Zevaryx Date: Tue, 3 May 2022 16:01:05 -0600 Subject: [PATCH] Handle extensions not being loaded on reload (needs more debugging) --- jarvis/utils/updates.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/jarvis/utils/updates.py b/jarvis/utils/updates.py index 7e896f1..c7ee5a8 100644 --- a/jarvis/utils/updates.py +++ b/jarvis/utils/updates.py @@ -9,6 +9,7 @@ from types import FunctionType, ModuleType from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional import git +from naff.client.errors import ExtensionNotFound from naff.client.utils.misc_utils import find, find_all from naff.models.naff.application_commands import SlashCommand from naff.models.naff.cog import Cog @@ -160,7 +161,10 @@ async def update(bot: "Client") -> Optional[UpdateResult]: bot.load_cog(module) loaded.append(module) elif len(current_commands[module]) != len(commands): - bot.reload_cog(module) + try: + bot.reload_cog(module) + except ExtensionNotFound: + bot.load_cog(module) reloaded.append(module) else: for command in commands: @@ -182,15 +186,24 @@ async def update(bot: "Client") -> Optional[UpdateResult]: # Check if number arguments have changed if len(old_args) != len(new_args): - bot.reload_cog(module) + try: + bot.reload_cog(module) + except ExtensionNotFound: + bot.load_cog(module) reloaded.append(module) elif any(x not in old_arg_names for x in new_arg_names) or any( x not in new_arg_names for x in old_arg_names ): - bot.reload_cog(module) + try: + bot.reload_cog(module) + except ExtensionNotFound: + bot.load_cog(module) reloaded.append(module) elif any(new_args[idx].type != x.type for idx, x in enumerate(old_args)): - bot.reload_cog(module) + try: + bot.reload_cog(module) + except ExtensionNotFound: + bot.load_cog(module) reloaded.append(module) return UpdateResult(