fix: Register command only if plugin is found

This commit is contained in:
Soulter
2024-08-02 22:48:04 +08:00
parent 36a2a7632c
commit c50bcdbdb9
4 changed files with 13 additions and 4 deletions
+2 -1
View File
@@ -64,7 +64,8 @@ class CommandManager():
break
if not plugin:
logger.warning(f"插件 {request.plugin_name} 未找到,无法注册指令 {request.command_name}")
self.register(request.command_name, request.description, request.priority, request.handler, plugin.metadata)
else:
self.register(request.command_name, request.description, request.priority, request.handler, plugin.metadata)
self.plugin_commands_waitlist = []
async def scan_command(self, message_event: AstrMessageEvent, context: Context) -> CommandResult:
+3 -1
View File
@@ -166,8 +166,10 @@ class PluginManager():
try:
# 尝试传入 ctx
obj = getattr(module, cls[0])(context=self.context)
except:
except TypeError:
obj = getattr(module, cls[0])()
except BaseException as e:
raise e
metadata = None
+3 -1
View File
@@ -385,7 +385,9 @@ class ProviderOpenAIOfficial(Provider):
assert isinstance(completion, ChatCompletion)
logger.debug(f"openai completion: {completion.usage}")
if len(completion.choices) == 0:
raise Exception("OpenAI API 返回的 completion 为空。")
choice = completion.choices[0]
usage_tokens = completion.usage.total_tokens
+5 -1
View File
@@ -35,7 +35,11 @@ class AstrBotUpdator(RepoZipUpdator):
py = sys.executable
self.terminate_child_processes()
py = py.replace(" ", "\\ ")
os.execl(py, py, *sys.argv)
try:
os.execl(py, py, *sys.argv)
except Exception as e:
logger.error(f"重启失败({py}, {e}),请尝试手动重启。")
raise e
def check_update(self, url: str, current_version: str) -> ReleaseInfo:
return super().check_update(self.ASTRBOT_RELEASE_API, VERSION)