2023-06-11 15:10:34 +10:00
|
|
|
import { PlayerScavGenerator } from "../generators/PlayerScavGenerator";
|
|
|
|
import { DialogueHelper } from "../helpers/DialogueHelper";
|
|
|
|
import { ItemHelper } from "../helpers/ItemHelper";
|
|
|
|
import { ProfileHelper } from "../helpers/ProfileHelper";
|
|
|
|
import { QuestHelper } from "../helpers/QuestHelper";
|
|
|
|
import { TraderHelper } from "../helpers/TraderHelper";
|
|
|
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
|
|
|
import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse";
|
|
|
|
import { IMiniProfile } from "../models/eft/launcher/IMiniProfile";
|
|
|
|
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
|
|
|
import { IProfileChangeNicknameRequestData } from "../models/eft/profile/IProfileChangeNicknameRequestData";
|
|
|
|
import { IProfileChangeVoiceRequestData } from "../models/eft/profile/IProfileChangeVoiceRequestData";
|
|
|
|
import { IProfileCreateRequestData } from "../models/eft/profile/IProfileCreateRequestData";
|
|
|
|
import { ISearchFriendRequestData } from "../models/eft/profile/ISearchFriendRequestData";
|
|
|
|
import { ISearchFriendResponse } from "../models/eft/profile/ISearchFriendResponse";
|
|
|
|
import { IValidateNicknameRequestData } from "../models/eft/profile/IValidateNicknameRequestData";
|
2023-10-09 20:21:00 +11:00
|
|
|
import { ILogger } from "../models/spt/utils/ILogger";
|
2023-06-11 15:10:34 +10:00
|
|
|
import { EventOutputHolder } from "../routers/EventOutputHolder";
|
|
|
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
|
|
|
import { SaveServer } from "../servers/SaveServer";
|
2023-10-09 20:21:00 +11:00
|
|
|
import { LocalisationService } from "../services/LocalisationService";
|
|
|
|
import { MailSendService } from "../services/MailSendService";
|
2023-06-11 15:10:34 +10:00
|
|
|
import { ProfileFixerService } from "../services/ProfileFixerService";
|
|
|
|
import { HashUtil } from "../utils/HashUtil";
|
|
|
|
import { TimeUtil } from "../utils/TimeUtil";
|
|
|
|
export declare class ProfileController {
|
2023-10-09 20:21:00 +11:00
|
|
|
protected logger: ILogger;
|
2023-06-11 15:10:34 +10:00
|
|
|
protected hashUtil: HashUtil;
|
|
|
|
protected timeUtil: TimeUtil;
|
|
|
|
protected saveServer: SaveServer;
|
|
|
|
protected databaseServer: DatabaseServer;
|
|
|
|
protected itemHelper: ItemHelper;
|
|
|
|
protected profileFixerService: ProfileFixerService;
|
2023-10-09 20:21:00 +11:00
|
|
|
protected localisationService: LocalisationService;
|
|
|
|
protected mailSendService: MailSendService;
|
2023-06-11 15:10:34 +10:00
|
|
|
protected playerScavGenerator: PlayerScavGenerator;
|
|
|
|
protected eventOutputHolder: EventOutputHolder;
|
|
|
|
protected traderHelper: TraderHelper;
|
|
|
|
protected dialogueHelper: DialogueHelper;
|
|
|
|
protected questHelper: QuestHelper;
|
|
|
|
protected profileHelper: ProfileHelper;
|
2023-10-09 20:21:00 +11:00
|
|
|
constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, itemHelper: ItemHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, mailSendService: MailSendService, playerScavGenerator: PlayerScavGenerator, eventOutputHolder: EventOutputHolder, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, questHelper: QuestHelper, profileHelper: ProfileHelper);
|
|
|
|
/**
|
|
|
|
* Handle /launcher/profiles
|
|
|
|
*/
|
2023-06-11 15:10:34 +10:00
|
|
|
getMiniProfiles(): IMiniProfile[];
|
2023-10-09 20:21:00 +11:00
|
|
|
/**
|
|
|
|
* Handle launcher/profile/info
|
|
|
|
*/
|
2023-06-11 15:10:34 +10:00
|
|
|
getMiniProfile(sessionID: string): any;
|
2023-10-09 20:21:00 +11:00
|
|
|
/**
|
|
|
|
* Handle client/game/profile/list
|
|
|
|
*/
|
2023-06-11 15:10:34 +10:00
|
|
|
getCompleteProfile(sessionID: string): IPmcData[];
|
2023-10-09 20:21:00 +11:00
|
|
|
/**
|
|
|
|
* Handle client/game/profile/create
|
|
|
|
*/
|
2023-06-11 15:10:34 +10:00
|
|
|
createProfile(info: IProfileCreateRequestData, sessionID: string): void;
|
2023-10-09 20:21:00 +11:00
|
|
|
/**
|
|
|
|
* Delete a profile
|
|
|
|
* @param sessionID Id of profile to delete
|
|
|
|
*/
|
|
|
|
protected deleteProfileBySessionId(sessionID: string): void;
|
|
|
|
/**
|
|
|
|
* Iterate over all quests in player profile, inspect rewards for the quests current state (accepted/completed)
|
|
|
|
* and send rewards to them in mail
|
|
|
|
* @param profileDetails Player profile
|
|
|
|
* @param sessionID Session id
|
|
|
|
* @param response Event router response
|
|
|
|
*/
|
2023-06-11 15:10:34 +10:00
|
|
|
protected givePlayerStartingQuestRewards(profileDetails: IAkiProfile, sessionID: string, response: IItemEventRouterResponse): void;
|
2023-10-09 20:21:00 +11:00
|
|
|
/**
|
|
|
|
* For each trader reset their state to what a level 1 player would see
|
|
|
|
* @param sessionID Session id of profile to reset
|
|
|
|
*/
|
|
|
|
protected resetAllTradersInProfile(sessionID: string): void;
|
2023-06-11 15:10:34 +10:00
|
|
|
/**
|
|
|
|
* Generate a player scav object
|
2023-10-09 20:21:00 +11:00
|
|
|
* PMC profile MUST exist first before pscav can be generated
|
2023-06-11 15:10:34 +10:00
|
|
|
* @param sessionID
|
|
|
|
* @returns IPmcData object
|
|
|
|
*/
|
|
|
|
generatePlayerScav(sessionID: string): IPmcData;
|
2023-10-09 20:21:00 +11:00
|
|
|
/**
|
|
|
|
* Handle client/game/profile/nickname/validate
|
|
|
|
*/
|
2023-06-11 15:10:34 +10:00
|
|
|
validateNickname(info: IValidateNicknameRequestData, sessionID: string): string;
|
2023-10-09 20:21:00 +11:00
|
|
|
/**
|
|
|
|
* Handle client/game/profile/nickname/change event
|
|
|
|
* Client allows player to adjust their profile name
|
|
|
|
*/
|
2023-06-11 15:10:34 +10:00
|
|
|
changeNickname(info: IProfileChangeNicknameRequestData, sessionID: string): string;
|
2023-10-09 20:21:00 +11:00
|
|
|
/**
|
|
|
|
* Handle client/game/profile/voice/change event
|
|
|
|
*/
|
2023-06-11 15:10:34 +10:00
|
|
|
changeVoice(info: IProfileChangeVoiceRequestData, sessionID: string): void;
|
2023-10-09 20:21:00 +11:00
|
|
|
/**
|
|
|
|
* Handle client/game/profile/search
|
|
|
|
*/
|
2023-06-11 15:10:34 +10:00
|
|
|
getFriends(info: ISearchFriendRequestData, sessionID: string): ISearchFriendResponse[];
|
|
|
|
}
|