From 5d23ab416ff6a21834bb904c9af78831f03daffd Mon Sep 17 00:00:00 2001 From: Chomp Date: Fri, 27 Dec 2024 15:03:13 +0000 Subject: [PATCH] Added implementation for `setClothing` Fixed incorrect return type for `getStorage` --- .../src/callbacks/CustomizationCallbacks.ts | 27 +++++++++++++------ .../controllers/CustomizationController.ts | 12 +++++++-- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/project/src/callbacks/CustomizationCallbacks.ts b/project/src/callbacks/CustomizationCallbacks.ts index 6adc94fd..23741387 100644 --- a/project/src/callbacks/CustomizationCallbacks.ts +++ b/project/src/callbacks/CustomizationCallbacks.ts @@ -1,17 +1,18 @@ import { CustomizationController } from "@spt/controllers/CustomizationController"; import type { IEmptyRequestData } from "@spt/models/eft/common/IEmptyRequestData"; import type { IPmcData } from "@spt/models/eft/common/IPmcData"; +import type { ICustomisationStorage } from "@spt/models/eft/common/tables/ICustomisationStorage"; import type { ISuit } from "@spt/models/eft/common/tables/ITrader"; import type { IBuyClothingRequestData } from "@spt/models/eft/customization/IBuyClothingRequestData"; import type { IGetSuitsResponse } from "@spt/models/eft/customization/IGetSuitsResponse"; import type { IWearClothingRequestData } from "@spt/models/eft/customization/IWearClothingRequestData"; import type { ICustomizationSetRequest } from "@spt/models/eft/customization/iCustomizationSetRequest"; +import type { IHideoutCustomisation } from "@spt/models/eft/hideout/IHideoutCustomisation"; import type { IGetBodyResponseData } from "@spt/models/eft/httpResponse/IGetBodyResponseData"; import type { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRouterResponse"; import { SaveServer } from "@spt/servers/SaveServer"; import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil"; import { inject, injectable } from "tsyringe"; -import type { ICustomisationStorage } from "../models/eft/common/tables/ICustomisationStorage"; @injectable() export class CustomizationCallbacks { @@ -59,20 +60,30 @@ export class CustomizationCallbacks { return this.customizationController.buyClothing(pmcData, body, sessionID); } - public getHideoutCustomisation(url: string, info: any, sessionID: string): IGetBodyResponseData { + /** Handle client/hideout/customization/offer/list */ + public getHideoutCustomisation( + url: string, + info: IEmptyRequestData, + sessionID: string, + ): IGetBodyResponseData { return this.httpResponse.getBody(this.customizationController.getHideoutCustomisation(sessionID, info)); } - public getStorage(url: string, info: any, sessionID: string): IGetBodyResponseData { - return this.httpResponse.getBody(this.customizationController.getCustomisationStoage(sessionID, info)); + /** Handle client/customization/storage */ + public getStorage( + url: string, + request: IEmptyRequestData, + sessionID: string, + ): IGetBodyResponseData { + return this.httpResponse.getBody(this.customizationController.getCustomisationStoage(sessionID, request)); } /** Handle CustomizationSet */ - public async setClothing( + public setClothing( pmcData: IPmcData, - info: ICustomizationSetRequest, + request: ICustomizationSetRequest, sessionID: string, - ): Promise> { - return this.httpResponse.getBody(await this.customizationController.setClothing(sessionID, info, pmcData)); + ): IItemEventRouterResponse { + return this.customizationController.setClothing(sessionID, request, pmcData); } } diff --git a/project/src/controllers/CustomizationController.ts b/project/src/controllers/CustomizationController.ts index bf4d1611..c143f527 100644 --- a/project/src/controllers/CustomizationController.ts +++ b/project/src/controllers/CustomizationController.ts @@ -251,7 +251,15 @@ export class CustomizationController { } /** Handle CustomizationSet event */ - public setClothing(sessionId: string, info: ICustomizationSetRequest, pmcData: IPmcData): any { - throw new Error("Method not implemented."); + public setClothing( + sessionId: string, + request: ICustomizationSetRequest, + pmcData: IPmcData, + ): IItemEventRouterResponse { + for (const customisation of request.customizations) { + pmcData.Customization[request.type] = customisation.id; + } + + return this.eventOutputHolder.getOutput(sessionId); } }