diff --git a/packages/vjudge/src/index.ts b/packages/vjudge/src/index.ts index ca2af0d92..9f5ba81fc 100644 --- a/packages/vjudge/src/index.ts +++ b/packages/vjudge/src/index.ts @@ -184,6 +184,8 @@ declare module 'cordis' { } class VJudgeService extends Service { + static inject = ['model:setting']; // Make sure langs are loaded before any consumer starts + constructor(ctx: Context) { super(ctx, 'vjudge'); } @@ -297,9 +299,13 @@ export async function apply(ctx: Context) { }, ]); }); - ctx.inject(['vjudge', 'model:setting'], async (c) => { + ctx.inject(['vjudge'], async (c) => { for (const [k, v] of Object.entries(providers)) { - if (!SystemModel.get(`vjudge.builtin-${k}-disable`)) c.vjudge.addProvider(k, v); + try { + if (!SystemModel.get(`vjudge.builtin-${k}-disable`)) c.vjudge.addProvider(k, v); + } catch (e) { + logger.error(`Error adding provider ${k}: ${e}`); + } } c.inject(['check'], ({ check }) => { check.addChecker('Vjudge', async (_ctx, log, warn, error) => {