diff --git a/common/src/lib/schemas.ts b/common/src/lib/schemas.ts index def4242ae..69331d9e5 100644 --- a/common/src/lib/schemas.ts +++ b/common/src/lib/schemas.ts @@ -997,6 +997,10 @@ const PRE_SCHEMAS = { ), forceStaticImport: "boolean", }), + "kshook-sv6c-settings": prSchemaFnWrap({ + userID: p.isPositiveNonZeroInteger, + forceStaticImport: "boolean", + }), users: prSchemaFnWrap({ username: p.regex(/^[a-zA-Z_-][a-zA-Z0-9_-]{2,20}$/u), usernameLowercase: (self, parent) => self === (parent.username as string).toLowerCase(), diff --git a/common/src/types.ts b/common/src/types.ts index 881d4546e..e4a324757 100644 --- a/common/src/types.ts +++ b/common/src/types.ts @@ -1308,6 +1308,7 @@ export type IRImportTypes = | "ir/direct-manual" | "ir/fervidex-static" | "ir/fervidex" + | "ir/kshook-sv6c-static" | "ir/kshook-sv6c" | "ir/lr2hook" | "ir/usc"; @@ -1552,6 +1553,11 @@ export interface FervidexSettingsDocument { forceStaticImport: boolean; } +export interface KsHookSettingsDocument { + userID: integer; + forceStaticImport: boolean; +} + export interface OrphanChart { idString: I; chartDoc: ChartDocument; diff --git a/server/src/external/mongo/db.ts b/server/src/external/mongo/db.ts index 7aabac361..66939ca63 100644 --- a/server/src/external/mongo/db.ts +++ b/server/src/external/mongo/db.ts @@ -171,6 +171,7 @@ const db = { ), "fer-settings": monkDB.get("fer-settings"), + "kshook-sv6c-settings": monkDB.get("kshook-sv6c-settings"), "orphan-chart-queue": monkDB.get("orphan-chart-queue"), "password-reset-codes": monkDB.get<{ code: string; diff --git a/server/src/external/mongo/indexes.ts b/server/src/external/mongo/indexes.ts index 0dfb9c6f1..c91efede5 100644 --- a/server/src/external/mongo/indexes.ts +++ b/server/src/external/mongo/indexes.ts @@ -90,6 +90,7 @@ const staticIndexes: Partial>> = { "user-settings": [index({ userID: 1 }, UNIQUE)], "user-private-information": [index({ userID: 1 }, UNIQUE), index({ email: 1 }, UNIQUE)], "fer-settings": [index({ userID: 1 }, UNIQUE)], + "kshook-sv6c-settings": [index({ userID: 1 }, UNIQUE)], counters: [index({ counterName: 1 }, UNIQUE)], "class-achievements": [index({ game: 1, playtype: 1, timeAchieved: 1 })], "api-clients": [index({ clientID: 1 }, UNIQUE)],