Merge pull request #26 from united-pooh/fix/fix-star-on-error-fallback

fix(runtime): avoid instantiating Star in on_error fallback
This commit is contained in:
whatevertogo
2026-03-19 02:13:49 +08:00
committed by GitHub
2 changed files with 7 additions and 2 deletions

View File

@@ -838,7 +838,7 @@ class HandlerDispatcher:
if inspect.isawaitable(result):
await result
return
await Star().on_error(exc, event, ctx)
await Star.default_on_error(exc, event, ctx)
__all__ = ["CapabilityDispatcher", "HandlerDispatcher"]

View File

@@ -102,7 +102,9 @@ class Star(PluginKVStoreMixin):
options=options,
)
async def on_error(self, error: Exception, event, ctx) -> None:
@staticmethod
async def default_on_error(error: Exception, event, ctx) -> None:
del ctx
if isinstance(error, AstrBotError):
lines: list[str] = []
if error.retryable:
@@ -122,6 +124,9 @@ class Star(PluginKVStoreMixin):
await event.reply("出了点问题,请联系插件作者")
logger.error("handler 执行失败\n{}", traceback.format_exc())
async def on_error(self, error: Exception, event, ctx) -> None:
await Star.default_on_error(error, event, ctx)
@classmethod
def __astrbot_is_new_star__(cls) -> bool:
return True