0
0
mirror of https://github.com/sp-tarkov/server.git synced 2025-02-13 09:50:43 -05:00
server/project/src/routers/item_events/QuestItemEventRouter.ts

51 lines
1.7 KiB
TypeScript
Raw Normal View History

2023-03-03 15:23:46 +00:00
import { inject, injectable } from "tsyringe";
import { QuestCallbacks } from "@spt-aki/callbacks/QuestCallbacks";
import { HandledRoute, ItemEventRouterDefinition } from "@spt-aki/di/Router";
import { IPmcData } from "@spt-aki/models/eft/common/IPmcData";
import { IItemEventRouterResponse } from "@spt-aki/models/eft/itemEvent/IItemEventRouterResponse";
import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
2023-03-03 15:23:46 +00:00
@injectable()
2023-11-15 20:35:05 -05:00
export class QuestItemEventRouter extends ItemEventRouterDefinition
2023-03-03 15:23:46 +00:00
{
constructor(
@inject("WinstonLogger") protected logger: ILogger,
2023-11-15 20:35:05 -05:00
@inject("QuestCallbacks") protected questCallbacks: QuestCallbacks,
)
2023-03-03 15:23:46 +00:00
{
super();
}
2023-11-15 20:35:05 -05:00
public override getHandledRoutes(): HandledRoute[]
2023-03-03 15:23:46 +00:00
{
return [
new HandledRoute("QuestAccept", false),
new HandledRoute("QuestComplete", false),
new HandledRoute("QuestHandover", false),
2023-11-15 20:35:05 -05:00
new HandledRoute("RepeatableQuestChange", false),
2023-03-03 15:23:46 +00:00
];
}
2023-11-15 20:35:05 -05:00
public override handleItemEvent(
eventAction: string,
pmcData: IPmcData,
body: any,
sessionID: string,
): IItemEventRouterResponse
2023-03-03 15:23:46 +00:00
{
this.logger.debug(`${eventAction} ${body.qid}`);
2023-03-03 15:23:46 +00:00
switch (eventAction)
{
case "QuestAccept":
return this.questCallbacks.acceptQuest(pmcData, body, sessionID);
case "QuestComplete":
2023-11-15 20:35:05 -05:00
return this.questCallbacks.completeQuest(pmcData, body, sessionID);
2023-03-03 15:23:46 +00:00
case "QuestHandover":
2023-11-15 20:35:05 -05:00
return this.questCallbacks.handoverQuest(pmcData, body, sessionID);
2023-03-03 15:23:46 +00:00
case "RepeatableQuestChange":
2023-11-15 20:35:05 -05:00
return this.questCallbacks.changeRepeatableQuest(pmcData, body, sessionID);
2023-03-03 15:23:46 +00:00
}
}
2023-11-15 20:35:05 -05:00
}