From 08c41883763ca9acf424499926eed590e6ee6f18 Mon Sep 17 00:00:00 2001 From: sgtlaggy <8661717+sgtlaggy@users.noreply.github.com> Date: Tue, 7 Jan 2025 22:28:59 -0800 Subject: [PATCH] use SPT config setting to blacklist instead of delete profiles --- src/Fika.ts | 21 +++++++ src/di/Container.ts | 3 - .../controllers/LauncherController.ts | 62 ------------------- 3 files changed, 21 insertions(+), 65 deletions(-) delete mode 100644 src/overrides/controllers/LauncherController.ts diff --git a/src/Fika.ts b/src/Fika.ts index 9b48f507..da103956 100644 --- a/src/Fika.ts +++ b/src/Fika.ts @@ -14,6 +14,9 @@ import { FikaPlayerRelationsCacheService } from "./services/cache/FikaPlayerRela import { FikaDedicatedProfileService } from "./services/dedicated/FikaDedicatedProfileService"; import { FikaConfig } from "./utils/FikaConfig"; import { FikaServerTools } from "./utils/FikaServerTools"; +import { ConfigServer } from "@spt/servers/ConfigServer"; +import { ConfigTypes } from "@spt/models/enums/ConfigTypes"; +import { ICoreConfig } from "@spt/models/spt/config/ICoreConfig"; @injectable() export class Fika { @@ -24,6 +27,7 @@ export class Fika { constructor( @inject("DatabaseServer") protected databaseServer: DatabaseServer, + @inject("ConfigServer") protected configServer: ConfigServer, @inject("Overrider") protected overrider: Overrider, @inject("FikaServerTools") protected fikaServerTools: FikaServerTools, @inject("FikaConfig") protected fikaConfig: FikaConfig, @@ -52,6 +56,7 @@ export class Fika { } this.addFikaClientLocales(); + this.blacklistSpecialProfiles(); this.fikaPlayerRelationCacheServce.postInit(); if (this.backgroundConfig.enable) { @@ -75,4 +80,20 @@ export class Fika { } } } + + private async blacklistSpecialProfiles() { + const coreConfig: ICoreConfig = this.configServer.getConfig(ConfigTypes.CORE); + const profileBlacklist = coreConfig.features.createNewProfileTypesBlacklist; + + if (!this.fikaConfig.getConfig().server.showDevProfile) { + // biome-ignore lint/performance/noDelete: Only ran once. + profileBlacklist.push("SPT Developer"); + } + + if (!this.fikaConfig.getConfig().server.showNonStandardProfile) { + for (const id of ["Tournament", "SPT Easy start", "SPT Zero to hero"]) { + profileBlacklist.push(id); + } + } + } } diff --git a/src/di/Container.ts b/src/di/Container.ts index ecda774b..43fd5cdd 100644 --- a/src/di/Container.ts +++ b/src/di/Container.ts @@ -10,7 +10,6 @@ import { DialogueControllerOverride } from "../overrides/controllers/DialogueCon import { ProfileControllerOverride } from "../overrides/controllers/ProfileController"; // import { LocalesOverride } from "../overrides/other/Locales"; import { HttpRouterOverride } from "../overrides/routers/HttpRouter"; -import { LauncherControllerOverride } from "../overrides/controllers/LauncherController"; import { MatchControllerOverride } from "../overrides/controllers/MatchController"; import { FikaMatchService } from "../services/FikaMatchService"; @@ -86,7 +85,6 @@ export class Container { container.registerType("Overrides", "HttpRouterOverride"); // container.registerType("Overrides", "LocalesOverride"); container.registerType("Overrides", "AchievementControllerOverride"); - container.registerType("Overrides", "LauncherControllerOverride"); container.registerType("Overrides", "LocationLifecycleServiceOverride"); container.registerType("Overrides", "MatchControllerOverride"); @@ -117,7 +115,6 @@ export class Container { // container.register("LocalesOverride", LocalesOverride, { lifecycle: Lifecycle.Singleton }); container.register("Overrider", Overrider, { lifecycle: Lifecycle.Singleton }); container.register("AchievementControllerOverride", AchievementControllerOverride, { lifecycle: Lifecycle.Singleton }); - container.register("LauncherControllerOverride", LauncherControllerOverride, { lifecycle: Lifecycle.Singleton }); container.register("LocationLifecycleServiceOverride", LocationLifecycleServiceOverride, { lifecycle: Lifecycle.Singleton }); container.register("MatchControllerOverride", MatchControllerOverride, { lifecycle: Lifecycle.Singleton }); } diff --git a/src/overrides/controllers/LauncherController.ts b/src/overrides/controllers/LauncherController.ts deleted file mode 100644 index 230c949a..00000000 --- a/src/overrides/controllers/LauncherController.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { DependencyContainer, inject, injectable } from "tsyringe"; - -import { LauncherController } from "@spt/controllers/LauncherController"; -import { HttpServerHelper } from "@spt/helpers/HttpServerHelper"; -import { DatabaseService } from "@spt/services/DatabaseService"; -import { ConfigServer } from "@spt/servers/ConfigServer"; -import { ConfigTypes } from "@spt/models/enums/ConfigTypes"; -import { IConnectResponse } from "@spt/models/eft/profile/IConnectResponse"; - -import { FikaConfig } from "../../utils/FikaConfig"; -import { Override } from "../../di/Override"; -import { ICoreConfig } from "@spt/models/spt/config/ICoreConfig"; - -@injectable() -export class LauncherControllerOverride extends Override { - protected coreConfig: ICoreConfig; - - constructor( - @inject("LauncherController") protected launcherController: LauncherController, - @inject("HttpServerHelper") protected httpServerHelper: HttpServerHelper, - @inject("DatabaseService") protected databaseService: DatabaseService, - @inject("ConfigServer") protected configServer: ConfigServer, - @inject("FikaConfig") protected fikaConfig: FikaConfig, - ) { - super(); - - this.coreConfig = this.configServer.getConfig(ConfigTypes.CORE); - } - - public execute(container: DependencyContainer): void { - container.afterResolution( - "LauncherController", - (_t, result: LauncherController) => { - result.connect = (): IConnectResponse => { - let editions = this.databaseService.getProfiles(); - - if (!this.fikaConfig.getConfig().server.showDevProfile) { - // biome-ignore lint/performance/noDelete: Only ran once. - delete editions["SPT Developer"]; - } - - if (!this.fikaConfig.getConfig().server.showNonStandardProfile) { - for (const id of ["Tournament", "SPT Easy start", "SPT Zero to hero"]) { - delete editions[id]; - } - } - - // Stop TS from throwing a tantrum over protected methods - const launchController = this.launcherController as any; - - return { - backendUrl: this.httpServerHelper.getBackendUrl(), - name: this.coreConfig.serverName, - editions: Object.keys(editions), - profileDescriptions: launchController.getProfileDescriptions(), - }; - }; - }, - { frequency: "Always" }, - ); - } -}