From 9f001b83ff82d11dcdab2a8a45f6a1c01fcfc776 Mon Sep 17 00:00:00 2001 From: Samuel Elliott Date: Wed, 21 Sep 2022 19:42:56 +0100 Subject: [PATCH] Handle errors in Discord activity callbacks --- src/discord/util.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/discord/util.ts b/src/discord/util.ts index 2b4095f..770a5d4 100644 --- a/src/discord/util.ts +++ b/src/discord/util.ts @@ -1,3 +1,4 @@ +import createDebug from 'debug'; import DiscordRPC from 'discord-rpc'; import { Game, PresenceState } from '../api/coral-types.js'; import { defaultTitle, titles } from './titles.js'; @@ -5,6 +6,8 @@ import { product, version } from '../util/product.js'; import { getTitleIdFromEcUrl, hrduration } from '../util/misc.js'; import { DiscordPresence, DiscordPresenceContext, DiscordPresencePlayTime } from './types.js'; +const debug = createDebug('nxapi:discord'); + export function getDiscordPresence( state: PresenceState, game: Game, context?: DiscordPresenceContext ): DiscordPresence { @@ -62,7 +65,11 @@ export function getDiscordPresence( }); } - title.callback?.call(null, activity, game, context); + try { + title.callback?.call(null, activity, game, context); + } catch (err) { + debug('Error in callback for title %s', titleid, err); + } return { id: title.client || defaultTitle.client,