mirror of
https://github.com/sp-tarkov/server.git
synced 2025-02-13 09:50: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 { IBuyClothingRequestData } from "@spt/models/eft/customization/IBuyClothingRequestData";
|
||||||
import type { IGetSuitsResponse } from "@spt/models/eft/customization/IGetSuitsResponse";
|
import type { IGetSuitsResponse } from "@spt/models/eft/customization/IGetSuitsResponse";
|
||||||
import type { IWearClothingRequestData } from "@spt/models/eft/customization/IWearClothingRequestData";
|
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 { IGetBodyResponseData } from "@spt/models/eft/httpResponse/IGetBodyResponseData";
|
||||||
import type { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRouterResponse";
|
import type { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRouterResponse";
|
||||||
import { SaveServer } from "@spt/servers/SaveServer";
|
import { SaveServer } from "@spt/servers/SaveServer";
|
||||||
@ -67,7 +68,11 @@ export class CustomizationCallbacks {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Handle CustomizationSet */
|
/** 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));
|
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 { IHideoutCancelProductionRequestData } from "@spt/models/eft/hideout/IHideoutCancelProductionRequestData";
|
||||||
import type { IHideoutCircleOfCultistProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutCircleOfCultistProductionStartRequestData";
|
import type { IHideoutCircleOfCultistProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutCircleOfCultistProductionStartRequestData";
|
||||||
import type { IHideoutContinuousProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutContinuousProductionStartRequestData";
|
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 { IHideoutDeleteProductionRequestData } from "@spt/models/eft/hideout/IHideoutDeleteProductionRequestData";
|
||||||
import type { IHideoutImproveAreaRequestData } from "@spt/models/eft/hideout/IHideoutImproveAreaRequestData";
|
import type { IHideoutImproveAreaRequestData } from "@spt/models/eft/hideout/IHideoutImproveAreaRequestData";
|
||||||
import type { IHideoutPutItemInRequestData } from "@spt/models/eft/hideout/IHideoutPutItemInRequestData";
|
import type { IHideoutPutItemInRequestData } from "@spt/models/eft/hideout/IHideoutPutItemInRequestData";
|
||||||
@ -215,7 +216,7 @@ export class HideoutCallbacks implements OnUpdate {
|
|||||||
*/
|
*/
|
||||||
public hideoutCustomizationApplyCommand(
|
public hideoutCustomizationApplyCommand(
|
||||||
pmcData: IPmcData,
|
pmcData: IPmcData,
|
||||||
request: any,
|
request: IHideoutCustomizationApplyRequestData,
|
||||||
sessionId: string,
|
sessionId: string,
|
||||||
): IItemEventRouterResponse {
|
): IItemEventRouterResponse {
|
||||||
return this.hideoutController.hideoutCustomizationApply(sessionId, pmcData, request);
|
return this.hideoutController.hideoutCustomizationApply(sessionId, pmcData, request);
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
import { ProfileHelper } from "@spt/helpers/ProfileHelper";
|
import { ProfileHelper } from "@spt/helpers/ProfileHelper";
|
||||||
import type { IPmcData } from "@spt/models/eft/common/IPmcData";
|
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 { ISuit } from "@spt/models/eft/common/tables/ITrader";
|
||||||
import type {
|
import type {
|
||||||
IBuyClothingRequestData,
|
IBuyClothingRequestData,
|
||||||
IPaymentItemForClothing,
|
IPaymentItemForClothing,
|
||||||
} from "@spt/models/eft/customization/IBuyClothingRequestData";
|
} from "@spt/models/eft/customization/IBuyClothingRequestData";
|
||||||
import type { IWearClothingRequestData } from "@spt/models/eft/customization/IWearClothingRequestData";
|
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 { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRouterResponse";
|
||||||
import type { ILogger } from "@spt/models/spt/utils/ILogger";
|
import type { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
import { EventOutputHolder } from "@spt/routers/EventOutputHolder";
|
import { EventOutputHolder } from "@spt/routers/EventOutputHolder";
|
||||||
@ -13,8 +16,6 @@ import { SaveServer } from "@spt/servers/SaveServer";
|
|||||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||||
import { inject, injectable } from "tsyringe";
|
import { inject, injectable } from "tsyringe";
|
||||||
import type { ICustomisationStorage } from "../models/eft/common/tables/ICustomisationStorage";
|
|
||||||
import type { IHideoutCustomisation } from "../models/eft/hideout/IHideoutCustomisation";
|
|
||||||
|
|
||||||
@injectable()
|
@injectable()
|
||||||
export class CustomizationController {
|
export class CustomizationController {
|
||||||
@ -249,7 +250,8 @@ export class CustomizationController {
|
|||||||
return this.databaseService.getTemplates().customisationStoage;
|
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.");
|
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 { IHideoutCancelProductionRequestData } from "@spt/models/eft/hideout/IHideoutCancelProductionRequestData";
|
||||||
import type { IHideoutCircleOfCultistProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutCircleOfCultistProductionStartRequestData";
|
import type { IHideoutCircleOfCultistProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutCircleOfCultistProductionStartRequestData";
|
||||||
import type { IHideoutContinuousProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutContinuousProductionStartRequestData";
|
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 { IHideoutDeleteProductionRequestData } from "@spt/models/eft/hideout/IHideoutDeleteProductionRequestData";
|
||||||
import type { IHideoutImproveAreaRequestData } from "@spt/models/eft/hideout/IHideoutImproveAreaRequestData";
|
import type { IHideoutImproveAreaRequestData } from "@spt/models/eft/hideout/IHideoutImproveAreaRequestData";
|
||||||
import type { IHideoutProduction } from "@spt/models/eft/hideout/IHideoutProduction";
|
import type { IHideoutProduction } from "@spt/models/eft/hideout/IHideoutProduction";
|
||||||
@ -1403,8 +1405,43 @@ export class HideoutController {
|
|||||||
* @param pmcData Player profile
|
* @param pmcData Player profile
|
||||||
* @param request Client request data
|
* @param request Client request data
|
||||||
*/
|
*/
|
||||||
public hideoutCustomizationApply(sessionId: string, pmcData: IPmcData, request: any): IItemEventRouterResponse {
|
public hideoutCustomizationApply(
|
||||||
throw new Error("Method not implemented.");
|
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[] {
|
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(
|
public override async handleItemEvent(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user