From 8babd1837a9be43b456173740708f0ca8780d802 Mon Sep 17 00:00:00 2001 From: PalmDevs Date: Fri, 11 Jul 2025 15:19:27 +0700 Subject: [PATCH] feat(lib/plugins): log plugin errors in native as well --- lib/plugins/src/_internal.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/plugins/src/_internal.ts b/lib/plugins/src/_internal.ts index a0e1151..7061903 100644 --- a/lib/plugins/src/_internal.ts +++ b/lib/plugins/src/_internal.ts @@ -1,4 +1,5 @@ import { TypedEventEmitter } from '@revenge-mod/discord/common/utils' +import { getErrorStack } from '@revenge-mod/utils/errors' import { allSettled, sleepReject } from '@revenge-mod/utils/promises' import { pUnscopedApi as uapi } from './apis' import { PluginFlags as Flag, PluginStatus as Status } from './constants' @@ -81,8 +82,11 @@ function handlePluginError(e: unknown, plugin: InternalPlugin) { plugin.flags |= Flag.Errored const [api, , iflags] = pMetadata.get(plugin.manifest.id)! - const log = (api as InitPluginApi).logger ?? console - log.error('Plugin encountered an error', e) + ;(api as InitPluginApi).logger.error('Plugin encountered an error', e) + nativeLoggingHook( + `\u001b[31mPlugin "${plugin.manifest.id}" encountered an error: ${getErrorStack(e)}\u001b[0m`, + 2, + ) pEmitter.emit('error', plugin, e)