mirror of
https://github.com/sp-tarkov/server.git
synced 2025-02-12 21:30:43 -05:00
Expanded new endpoints
This commit is contained in:
parent
5190f6ac60
commit
4ff4f63879
@ -5,6 +5,7 @@ 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 { IGetBodyResponseData } from "@spt/models/eft/httpResponse/IGetBodyResponseData";
|
||||
import type { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRouterResponse";
|
||||
import { SaveServer } from "@spt/servers/SaveServer";
|
||||
@ -67,7 +68,11 @@ export class CustomizationCallbacks {
|
||||
}
|
||||
|
||||
/** Handle CustomizationSet */
|
||||
public setClothing(pmcData: IPmcData, info: any, sessionID: string): IItemEventRouterResponse {
|
||||
public setClothing(
|
||||
pmcData: IPmcData,
|
||||
info: ICustomizationSetRequest,
|
||||
sessionID: string,
|
||||
): IGetBodyResponseData<any> {
|
||||
return this.httpResponse.getBody(this.customizationController.setClothing(sessionID, info));
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import type { IHandleQTEEventRequestData } from "@spt/models/eft/hideout/IHandle
|
||||
import type { IHideoutCancelProductionRequestData } from "@spt/models/eft/hideout/IHideoutCancelProductionRequestData";
|
||||
import type { IHideoutCircleOfCultistProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutCircleOfCultistProductionStartRequestData";
|
||||
import type { IHideoutContinuousProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutContinuousProductionStartRequestData";
|
||||
import type { IHideoutCustomizationApplyRequestData } from "@spt/models/eft/hideout/IHideoutCustomizationApplyRequestData";
|
||||
import type { IHideoutDeleteProductionRequestData } from "@spt/models/eft/hideout/IHideoutDeleteProductionRequestData";
|
||||
import type { IHideoutImproveAreaRequestData } from "@spt/models/eft/hideout/IHideoutImproveAreaRequestData";
|
||||
import type { IHideoutPutItemInRequestData } from "@spt/models/eft/hideout/IHideoutPutItemInRequestData";
|
||||
@ -215,7 +216,7 @@ export class HideoutCallbacks implements OnUpdate {
|
||||
*/
|
||||
public hideoutCustomizationApplyCommand(
|
||||
pmcData: IPmcData,
|
||||
request: any,
|
||||
request: IHideoutCustomizationApplyRequestData,
|
||||
sessionId: string,
|
||||
): IItemEventRouterResponse {
|
||||
return this.hideoutController.hideoutCustomizationApply(sessionId, pmcData, request);
|
||||
|
@ -1,11 +1,14 @@
|
||||
import { ProfileHelper } from "@spt/helpers/ProfileHelper";
|
||||
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,
|
||||
IPaymentItemForClothing,
|
||||
} from "@spt/models/eft/customization/IBuyClothingRequestData";
|
||||
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 { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRouterResponse";
|
||||
import type { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { EventOutputHolder } from "@spt/routers/EventOutputHolder";
|
||||
@ -13,8 +16,6 @@ import { SaveServer } from "@spt/servers/SaveServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
import { inject, injectable } from "tsyringe";
|
||||
import type { ICustomisationStorage } from "../models/eft/common/tables/ICustomisationStorage";
|
||||
import type { IHideoutCustomisation } from "../models/eft/hideout/IHideoutCustomisation";
|
||||
|
||||
@injectable()
|
||||
export class CustomizationController {
|
||||
@ -249,7 +250,8 @@ export class CustomizationController {
|
||||
return this.databaseService.getTemplates().customisationStoage;
|
||||
}
|
||||
|
||||
public setClothing(sessionId: string, info: any): any {
|
||||
/** Handle CustomizationSet event */
|
||||
public setClothing(sessionId: string, info: ICustomizationSetRequest, pmcData: IPmcData): any {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,8 @@ import type { IHideoutArea, IStage } from "@spt/models/eft/hideout/IHideoutArea"
|
||||
import type { IHideoutCancelProductionRequestData } from "@spt/models/eft/hideout/IHideoutCancelProductionRequestData";
|
||||
import type { IHideoutCircleOfCultistProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutCircleOfCultistProductionStartRequestData";
|
||||
import type { IHideoutContinuousProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutContinuousProductionStartRequestData";
|
||||
import type { IHideoutCustomisationGlobal } from "@spt/models/eft/hideout/IHideoutCustomisation";
|
||||
import type { IHideoutCustomizationApplyRequestData } from "@spt/models/eft/hideout/IHideoutCustomizationApplyRequestData";
|
||||
import type { IHideoutDeleteProductionRequestData } from "@spt/models/eft/hideout/IHideoutDeleteProductionRequestData";
|
||||
import type { IHideoutImproveAreaRequestData } from "@spt/models/eft/hideout/IHideoutImproveAreaRequestData";
|
||||
import type { IHideoutProduction } from "@spt/models/eft/hideout/IHideoutProduction";
|
||||
@ -1403,8 +1405,43 @@ export class HideoutController {
|
||||
* @param pmcData Player profile
|
||||
* @param request Client request data
|
||||
*/
|
||||
public hideoutCustomizationApply(sessionId: string, pmcData: IPmcData, request: any): IItemEventRouterResponse {
|
||||
throw new Error("Method not implemented.");
|
||||
public hideoutCustomizationApply(
|
||||
sessionId: string,
|
||||
pmcData: IPmcData,
|
||||
request: IHideoutCustomizationApplyRequestData,
|
||||
): IItemEventRouterResponse {
|
||||
const output = this.eventOutputHolder.getOutput(sessionId);
|
||||
|
||||
const itemDetails = this.databaseService
|
||||
.getHideout()
|
||||
.customisation.globals.find((cust) => cust.id === request.offerId);
|
||||
if (!itemDetails) {
|
||||
this.logger.error(`Unable to find customisation: ${request.offerId} in db, cannot apply to hideout`);
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
pmcData.Hideout.Customization[this.getHideoutCustomisationType(itemDetails.type)];
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
protected getHideoutCustomisationType(type: string): string {
|
||||
switch (type) {
|
||||
case "wall":
|
||||
return "Wall";
|
||||
case "floor":
|
||||
return "Floor";
|
||||
case "light":
|
||||
return "Light";
|
||||
case "ceiling":
|
||||
return "Ceiling";
|
||||
case "shootingRangeMark":
|
||||
return "ShootingRangeMark";
|
||||
default:
|
||||
this.logger.warning(`Unknown ${type}, unable to map`);
|
||||
return type;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -0,0 +1,10 @@
|
||||
export interface ICustomizationSetRequest {
|
||||
Action: "CustomizationSet";
|
||||
customizations: CustomizationSetOption[];
|
||||
}
|
||||
|
||||
export interface CustomizationSetOption {
|
||||
id: string;
|
||||
type: string;
|
||||
source: string;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
export interface IHideoutCustomizationApplyRequestData {
|
||||
Action: "HideoutCustomizationApply";
|
||||
/** Id of the newly picked item to apply to hideout */
|
||||
offerId: string;
|
||||
timestamp: number;
|
||||
}
|
@ -13,7 +13,11 @@ export class CustomizationItemEventRouter extends ItemEventRouterDefinition {
|
||||
}
|
||||
|
||||
public override getHandledRoutes(): HandledRoute[] {
|
||||
return [new HandledRoute("CustomizationWear", false), new HandledRoute("CustomizationBuy", false)];
|
||||
return [
|
||||
new HandledRoute("CustomizationWear", false),
|
||||
new HandledRoute("CustomizationBuy", false),
|
||||
new HandledRoute("CustomizationSet", false),
|
||||
];
|
||||
}
|
||||
|
||||
public override async handleItemEvent(
|
||||
|
Loading…
x
Reference in New Issue
Block a user