fix: Register command only if plugin is found
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user