Update types for 3.8.2 #26

Merged
chomp merged 3 commits from 3.8.2-DEV into master 2024-05-13 06:22:31 -04:00
504 changed files with 816 additions and 960 deletions
Showing only changes of commit cdf233fe4f - Show all commits

View File

@ -1,6 +1,7 @@
import { DialogueController } from "@spt-aki/controllers/DialogueController"; import { DialogueController } from "@spt-aki/controllers/DialogueController";
import { OnUpdate } from "@spt-aki/di/OnUpdate"; import { OnUpdate } from "@spt-aki/di/OnUpdate";
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { IAcceptFriendRequestData, ICancelFriendRequestData, IDeclineFriendRequestData } from "@spt-aki/models/eft/dialog/IAcceptFriendRequestData"; import { IAcceptFriendRequestData, ICancelFriendRequestData, IDeclineFriendRequestData } from "@spt-aki/models/eft/dialog/IAcceptFriendRequestData";
import { IChatServer } from "@spt-aki/models/eft/dialog/IChatServer"; import { IChatServer } from "@spt-aki/models/eft/dialog/IChatServer";
import { IClearMailMessageRequest } from "@spt-aki/models/eft/dialog/IClearMailMessageRequest"; import { IClearMailMessageRequest } from "@spt-aki/models/eft/dialog/IClearMailMessageRequest";
@ -92,13 +93,9 @@ export declare class DialogueCallbacks implements OnUpdate {
/** Handle client/friend/delete */ /** Handle client/friend/delete */
deleteFriend(url: string, request: IDeleteFriendRequest, sessionID: string): INullResponseData; deleteFriend(url: string, request: IDeleteFriendRequest, sessionID: string): INullResponseData;
/** Handle client/friend/ignore/set */ /** Handle client/friend/ignore/set */
ignoreFriend(url: string, request: { ignoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData;
uid: string;
}, sessionID: string): INullResponseData;
/** Handle client/friend/ignore/remove */ /** Handle client/friend/ignore/remove */
unIgnoreFriend(url: string, request: { unIgnoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData;
uid: string;
}, sessionID: string): INullResponseData;
clearMail(url: string, request: IClearMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>; clearMail(url: string, request: IClearMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>;
removeMail(url: string, request: IRemoveMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>; removeMail(url: string, request: IRemoveMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>;
onUpdate(timeSinceLastRun: number): Promise<boolean>; onUpdate(timeSinceLastRun: number): Promise<boolean>;

View File

@ -1,6 +1,7 @@
import { GameController } from "@spt-aki/controllers/GameController"; import { GameController } from "@spt-aki/controllers/GameController";
import { OnLoad } from "@spt-aki/di/OnLoad"; import { OnLoad } from "@spt-aki/di/OnLoad";
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { ICheckVersionResponse } from "@spt-aki/models/eft/game/ICheckVersionResponse"; import { ICheckVersionResponse } from "@spt-aki/models/eft/game/ICheckVersionResponse";
import { ICurrentGroupResponse } from "@spt-aki/models/eft/game/ICurrentGroupResponse"; import { ICurrentGroupResponse } from "@spt-aki/models/eft/game/ICurrentGroupResponse";
import { IGameConfigResponse } from "@spt-aki/models/eft/game/IGameConfigResponse"; import { IGameConfigResponse } from "@spt-aki/models/eft/game/IGameConfigResponse";
@ -10,7 +11,6 @@ import { IGameLogoutResponseData } from "@spt-aki/models/eft/game/IGameLogoutRes
import { IGameStartResponse } from "@spt-aki/models/eft/game/IGameStartResponse"; import { IGameStartResponse } from "@spt-aki/models/eft/game/IGameStartResponse";
import { IGetRaidTimeRequest } from "@spt-aki/models/eft/game/IGetRaidTimeRequest"; import { IGetRaidTimeRequest } from "@spt-aki/models/eft/game/IGetRaidTimeRequest";
import { IGetRaidTimeResponse } from "@spt-aki/models/eft/game/IGetRaidTimeResponse"; import { IGetRaidTimeResponse } from "@spt-aki/models/eft/game/IGetRaidTimeResponse";
import { IReportNicknameRequestData } from "@spt-aki/models/eft/game/IReportNicknameRequestData";
import { IServerDetails } from "@spt-aki/models/eft/game/IServerDetails"; import { IServerDetails } from "@spt-aki/models/eft/game/IServerDetails";
import { IVersionValidateRequestData } from "@spt-aki/models/eft/game/IVersionValidateRequestData"; import { IVersionValidateRequestData } from "@spt-aki/models/eft/game/IVersionValidateRequestData";
import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData"; import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData";
@ -69,7 +69,7 @@ export declare class GameCallbacks implements OnLoad {
* @returns string * @returns string
*/ */
getVersion(url: string, info: IEmptyRequestData, sessionID: string): string; getVersion(url: string, info: IEmptyRequestData, sessionID: string): string;
reportNickname(url: string, info: IReportNicknameRequestData, sessionID: string): INullResponseData; reportNickname(url: string, info: IUIDRequestData, sessionID: string): INullResponseData;
/** /**
* Handle singleplayer/settings/getRaidTime * Handle singleplayer/settings/getRaidTime
* @returns string * @returns string

View File

@ -1,9 +1,9 @@
import { NotifierController } from "@spt-aki/controllers/NotifierController"; import { NotifierController } from "@spt-aki/controllers/NotifierController";
import { HttpServerHelper } from "@spt-aki/helpers/HttpServerHelper"; import { HttpServerHelper } from "@spt-aki/helpers/HttpServerHelper";
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData"; import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData";
import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier"; import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier";
import { ISelectProfileRequestData } from "@spt-aki/models/eft/notifier/ISelectProfileRequestData";
import { ISelectProfileResponse } from "@spt-aki/models/eft/notifier/ISelectProfileResponse"; import { ISelectProfileResponse } from "@spt-aki/models/eft/notifier/ISelectProfileResponse";
import { HttpResponseUtil } from "@spt-aki/utils/HttpResponseUtil"; import { HttpResponseUtil } from "@spt-aki/utils/HttpResponseUtil";
import { JsonUtil } from "@spt-aki/utils/JsonUtil"; import { JsonUtil } from "@spt-aki/utils/JsonUtil";
@ -29,6 +29,6 @@ export declare class NotifierCallbacks {
* Handle client/game/profile/select * Handle client/game/profile/select
* @returns ISelectProfileResponse * @returns ISelectProfileResponse
*/ */
selectProfile(url: string, info: ISelectProfileRequestData, sessionID: string): IGetBodyResponseData<ISelectProfileResponse>; selectProfile(url: string, info: IUIDRequestData, sessionID: string): IGetBodyResponseData<ISelectProfileResponse>;
notify(url: string, info: any, sessionID: string): string; notify(url: string, info: any, sessionID: string): string;
} }

View File

@ -26,7 +26,7 @@ export declare class BuildController {
saveWeaponBuild(sessionId: string, body: IPresetBuildActionRequestData): void; saveWeaponBuild(sessionId: string, body: IPresetBuildActionRequestData): void;
/** Handle client/builds/equipment/save event */ /** Handle client/builds/equipment/save event */
saveEquipmentBuild(sessionID: string, request: IPresetBuildActionRequestData): void; saveEquipmentBuild(sessionID: string, request: IPresetBuildActionRequestData): void;
/** Handle client/builds/delete*/ /** Handle client/builds/delete */
removeBuild(sessionID: string, request: IRemoveBuildRequestData): void; removeBuild(sessionID: string, request: IRemoveBuildRequestData): void;
protected removePlayerBuild(idToRemove: string, sessionID: string): void; protected removePlayerBuild(idToRemove: string, sessionID: string): void;
/** /**

View File

@ -63,7 +63,7 @@ export declare class RepeatableQuestController {
* @param {string} _info Request from client * @param {string} _info Request from client
* @param {string} sessionID Player's session id * @param {string} sessionID Player's session id
* *
* @returns {array} Array of "repeatableQuestObjects" as descibed above * @returns {array} Array of "repeatableQuestObjects" as described above
*/ */
getClientRepeatableQuests(_info: IEmptyRequestData, sessionID: string): IPmcDataRepeatableQuest[]; getClientRepeatableQuests(_info: IEmptyRequestData, sessionID: string): IPmcDataRepeatableQuest[];
/** /**

View File

@ -10,8 +10,8 @@ import { Inventory } from "@spt-aki/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt-aki/models/eft/common/tables/IItem"; import { Item, Upd } from "@spt-aki/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemDirectRequest"; import { IAddItemDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt-aki/models/eft/inventory/IAddItemRequestData"; import { AddItem } from "@spt-aki/models/eft/inventory/IAddItemRequestData";
import { IAddItemTempObject } from "@spt-aki/models/eft/inventory/IAddItemTempObject";
import { IAddItemsDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemsDirectRequest"; import { IAddItemsDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt-aki/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt-aki/models/eft/inventory/IInventoryMergeRequestData"; import { IInventoryMergeRequestData } from "@spt-aki/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryMoveRequestData"; import { IInventoryMoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryRemoveRequestData"; import { IInventoryRemoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryRemoveRequestData";

View File

@ -922,7 +922,7 @@ export interface IBtrMapConfig {
mapID: string; mapID: string;
pathsConfigurations: IBtrMapConfig[]; pathsConfigurations: IBtrMapConfig[];
} }
export interface IBtrMapConfig { export interface IBtrPathConfig {
id: string; id: string;
enterPoint: string; enterPoint: string;
exitPoint: string; exitPoint: string;

View File

@ -0,0 +1,3 @@
export interface IUIDRequestData {
uid: string;
}

View File

@ -373,7 +373,7 @@ export interface IQuestStatus {
startTime: number; startTime: number;
status: QuestStatus; status: QuestStatus;
statusTimers?: Record<string, number>; statusTimers?: Record<string, number>;
/** Property does not exist in live profile data, but is used by ProfileChanges.questsStatus when sent to client*/ /** Property does not exist in live profile data, but is used by ProfileChanges.questsStatus when sent to client */
completedConditions?: string[]; completedConditions?: string[];
availableAfter?: number; availableAfter?: number;
} }

View File

@ -1,7 +1,7 @@
import { IPmcData } from "@spt-aki/models/eft/common/IPmcData"; import { IPmcData } from "@spt-aki/models/eft/common/IPmcData";
import { Dialogue, IUserBuilds } from "@spt-aki/models/eft/profile/IAkiProfile"; import { Dialogue, IUserBuilds } from "@spt-aki/models/eft/profile/IAkiProfile";
export interface IProfileTemplates { export interface IProfileTemplates {
Standard: IProfileSides; "Standard": IProfileSides;
"Left Behind": IProfileSides; "Left Behind": IProfileSides;
"Prepare To Escape": IProfileSides; "Prepare To Escape": IProfileSides;
"Edge Of Darkness": IProfileSides; "Edge Of Darkness": IProfileSides;

View File

@ -1,3 +0,0 @@
export interface IReportNicknameRequestData {
uid: string;
}

View File

@ -1,14 +1,14 @@
import { Effect } from "@spt-aki/models/eft/health/Effect"; import { Effect } from "@spt-aki/models/eft/health/Effect";
import { BodyPart } from "@spt-aki/models/eft/health/IOffraidHealRequestData"; import { BodyPart } from "@spt-aki/models/eft/health/IOffraidHealRequestData";
import { HideoutAreas } from "@spt-aki/models/enums/HideoutAreas";
import { SkillTypes } from "@spt-aki/models/enums/SkillTypes";
import { Traders } from "@spt-aki/models/enums/Traders";
import { QteActivityType } from "@spt-aki/models/enums/hideout/QteActivityType"; import { QteActivityType } from "@spt-aki/models/enums/hideout/QteActivityType";
import { QteEffectType } from "@spt-aki/models/enums/hideout/QteEffectType"; import { QteEffectType } from "@spt-aki/models/enums/hideout/QteEffectType";
import { QteResultType } from "@spt-aki/models/enums/hideout/QteResultType"; import { QteResultType } from "@spt-aki/models/enums/hideout/QteResultType";
import { QteRewardType } from "@spt-aki/models/enums/hideout/QteRewardType"; import { QteRewardType } from "@spt-aki/models/enums/hideout/QteRewardType";
import { QteType } from "@spt-aki/models/enums/hideout/QteType"; import { QteType } from "@spt-aki/models/enums/hideout/QteType";
import { RequirementType } from "@spt-aki/models/enums/hideout/RequirementType"; import { RequirementType } from "@spt-aki/models/enums/hideout/RequirementType";
import { HideoutAreas } from "@spt-aki/models/enums/HideoutAreas";
import { SkillTypes } from "@spt-aki/models/enums/SkillTypes";
import { Traders } from "@spt-aki/models/enums/Traders";
export interface IQteData { export interface IQteData {
id: string; id: string;
type: QteActivityType; type: QteActivityType;

View File

@ -1,3 +0,0 @@
export interface ISelectProfileRequestData {
uid: string;
}

View File

@ -34,7 +34,7 @@ export declare enum SkillTypes {
NIGHT_OPS = "NightOps", NIGHT_OPS = "NightOps",
SILENT_OPS = "SilentOps", SILENT_OPS = "SilentOps",
LOCKPICKING = "Lockpicking", LOCKPICKING = "Lockpicking",
/** Also called Weapon Maintenance*/ /** Also called Weapon Maintenance */
WEAPON_TREATMENT = "WeaponTreatment", WEAPON_TREATMENT = "WeaponTreatment",
MAG_DRILLS = "MagDrills", MAG_DRILLS = "MagDrills",
FREE_TRADING = "Freetrading", FREE_TRADING = "Freetrading",

View File

@ -1,7 +1,7 @@
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData"; import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData";
import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier"; import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier";
import { ISelectProfileRequestData } from "@spt-aki/models/eft/notifier/ISelectProfileRequestData";
export interface INotifierCallbacks { export interface INotifierCallbacks {
/** /**
* If we don't have anything to send, it's ok to not send anything back * If we don't have anything to send, it's ok to not send anything back
@ -12,6 +12,6 @@ export interface INotifierCallbacks {
sendNotification(sessionID: string, req: any, resp: any, data: any): void; sendNotification(sessionID: string, req: any, resp: any, data: any): void;
getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData<any[]>; getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData<any[]>;
createNotifierChannel(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<INotifierChannel>; createNotifierChannel(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<INotifierChannel>;
selectProfile(url: string, info: ISelectProfileRequestData, sessionID: string): IGetBodyResponseData<any>; selectProfile(url: string, info: IUIDRequestData, sessionID: string): IGetBodyResponseData<any>;
notify(url: string, info: any, sessionID: string): string; notify(url: string, info: any, sessionID: string): string;
} }

View File

@ -175,7 +175,7 @@ export interface IRandomisedResourceDetails {
meds: IRandomisedResourceValues; meds: IRandomisedResourceValues;
} }
export interface IRandomisedResourceValues { export interface IRandomisedResourceValues {
/** Minimum percent of item to randomized between min and max resource*/ /** Minimum percent of item to randomized between min and max resource */
resourcePercent: number; resourcePercent: number;
/** Chance for randomization to not occur */ /** Chance for randomization to not occur */
chanceMaxResourcePercent: number; chanceMaxResourcePercent: number;

View File

@ -51,7 +51,7 @@ export interface IRelease {
export interface IGameFixes { export interface IGameFixes {
/** Shotguns use a different value than normal guns causing huge pellet dispersion */ /** Shotguns use a different value than normal guns causing huge pellet dispersion */
fixShotgunDispersion: boolean; fixShotgunDispersion: boolean;
/** Remove items added by mods when the mod no longer exists - can fix dead profiles stuck at game load*/ /** Remove items added by mods when the mod no longer exists - can fix dead profiles stuck at game load */
removeModItemsFromProfile: boolean; removeModItemsFromProfile: boolean;
/** Fix issues that cause the game to not start due to inventory item issues */ /** Fix issues that cause the game to not start due to inventory item issues */
fixProfileBreakingInventoryItemIssues: boolean; fixProfileBreakingInventoryItemIssues: boolean;

View File

@ -21,17 +21,17 @@ export interface ILocationConfig extends IBaseConfig {
fitLootIntoContainerAttempts: number; fitLootIntoContainerAttempts: number;
/** Add all possible zones to each maps `OpenZones` property */ /** Add all possible zones to each maps `OpenZones` property */
addOpenZonesToAllMaps: boolean; addOpenZonesToAllMaps: boolean;
/** Allow addition of custom bot waves designed by SPT to be added to maps - defined in configs/location.json.customWaves*/ /** Allow addition of custom bot waves designed by SPT to be added to maps - defined in configs/location.json.customWaves */
addCustomBotWavesToMaps: boolean; addCustomBotWavesToMaps: boolean;
/** Should the limits defined inside botTypeLimits to appled to locations on game start */ /** Should the limits defined inside botTypeLimits to appled to locations on game start */
enableBotTypeLimits: boolean; enableBotTypeLimits: boolean;
/** Add limits to a locations base.MinMaxBots array if enableBotTypeLimits is true*/ /** Add limits to a locations base.MinMaxBots array if enableBotTypeLimits is true */
botTypeLimits: Record<string, IBotTypeLimit[]>; botTypeLimits: Record<string, IBotTypeLimit[]>;
/** container randomisation settings */ /** container randomisation settings */
containerRandomisationSettings: IContainerRandomistionSettings; containerRandomisationSettings: IContainerRandomistionSettings;
/** How full must a random loose magazine be %*/ /** How full must a random loose magazine be % */
minFillLooseMagazinePercent: number; minFillLooseMagazinePercent: number;
/** How full must a random static magazine be %*/ /** How full must a random static magazine be % */
minFillStaticMagazinePercent: number; minFillStaticMagazinePercent: number;
allowDuplicateItemsInStaticContainers: boolean; allowDuplicateItemsInStaticContainers: boolean;
/** Chance loose magazines have ammo in them TODO - rename to dynamicMagazineLootHasAmmoChancePercent */ /** Chance loose magazines have ammo in them TODO - rename to dynamicMagazineLootHasAmmoChancePercent */
@ -40,11 +40,11 @@ export interface ILocationConfig extends IBaseConfig {
staticMagazineLootHasAmmoChancePercent: number; staticMagazineLootHasAmmoChancePercent: number;
/** Key: map, value: loose loot ids to ignore */ /** Key: map, value: loose loot ids to ignore */
looseLootBlacklist: Record<string, string[]>; looseLootBlacklist: Record<string, string[]>;
/** Key: map, value: settings to control how long scav raids are*/ /** Key: map, value: settings to control how long scav raids are */
scavRaidTimeSettings: IScavRaidTimeSettings; scavRaidTimeSettings: IScavRaidTimeSettings;
/** Settings to adjust mods for lootable equipment in raid */ /** Settings to adjust mods for lootable equipment in raid */
equipmentLootSettings: IEquipmentLootSettings; equipmentLootSettings: IEquipmentLootSettings;
/** Sets the max Patrol Value of the Boxzone on the map Ground Zero*/ /** Sets the max Patrol Value of the Boxzone on the map Ground Zero */
sandboxMaxPatrolvalue: number; sandboxMaxPatrolvalue: number;
} }
export interface IEquipmentLootSettings { export interface IEquipmentLootSettings {

View File

@ -8,7 +8,7 @@ export interface IRagfairConfig extends IBaseConfig {
runIntervalValues: IRunIntervalValues; runIntervalValues: IRunIntervalValues;
/** Player listing settings */ /** Player listing settings */
sell: Sell; sell: Sell;
/** Trader ids + should their assorts be listed on flea*/ /** Trader ids + should their assorts be listed on flea */
traders: Record<string, boolean>; traders: Record<string, boolean>;
dynamic: Dynamic; dynamic: Dynamic;
} }
@ -19,7 +19,7 @@ export interface Sell {
chance: Chance; chance: Chance;
/** Settings to control how long it takes for a player offer to sell */ /** Settings to control how long it takes for a player offer to sell */
time: MinMax; time: MinMax;
/**Seconds from clicking remove to remove offer from market */ /** Seconds from clicking remove to remove offer from market */
expireSeconds: number; expireSeconds: number;
} }
export interface Chance { export interface Chance {

View File

@ -31,7 +31,7 @@ export interface FenceConfig {
/** Key: item tpl */ /** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>; itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>; itemTypeLimits: Record<string, number>;
/** Prevent duplicate offers of items of specific categories by parentId*/ /** Prevent duplicate offers of items of specific categories by parentId */
preventDuplicateOffersOfCategory: string[]; preventDuplicateOffersOfCategory: string[];
regenerateAssortsOnRefresh: boolean; regenerateAssortsOnRefresh: boolean;
/** Max rouble price before item is not listed on flea */ /** Max rouble price before item is not listed on flea */

View File

@ -6,8 +6,8 @@ import { IHttpConfig } from "@spt-aki/models/spt/config/IHttpConfig";
import { ILogger } from "@spt-aki/models/spt/utils/ILogger"; import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
import { ConfigServer } from "@spt-aki/servers/ConfigServer"; import { ConfigServer } from "@spt-aki/servers/ConfigServer";
import { DatabaseServer } from "@spt-aki/servers/DatabaseServer"; import { DatabaseServer } from "@spt-aki/servers/DatabaseServer";
import { WebSocketServer } from "@spt-aki/servers/WebSocketServer";
import { IHttpListener } from "@spt-aki/servers/http/IHttpListener"; import { IHttpListener } from "@spt-aki/servers/http/IHttpListener";
import { WebSocketServer } from "@spt-aki/servers/WebSocketServer";
import { LocalisationService } from "@spt-aki/services/LocalisationService"; import { LocalisationService } from "@spt-aki/services/LocalisationService";
export declare class HttpServer { export declare class HttpServer {
protected logger: ILogger; protected logger: ILogger;

View File

@ -1,6 +1,7 @@
import { DialogueController } from "@spt-aki/controllers/DialogueController"; import { DialogueController } from "@spt-aki/controllers/DialogueController";
import { OnUpdate } from "@spt-aki/di/OnUpdate"; import { OnUpdate } from "@spt-aki/di/OnUpdate";
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { IAcceptFriendRequestData, ICancelFriendRequestData, IDeclineFriendRequestData } from "@spt-aki/models/eft/dialog/IAcceptFriendRequestData"; import { IAcceptFriendRequestData, ICancelFriendRequestData, IDeclineFriendRequestData } from "@spt-aki/models/eft/dialog/IAcceptFriendRequestData";
import { IChatServer } from "@spt-aki/models/eft/dialog/IChatServer"; import { IChatServer } from "@spt-aki/models/eft/dialog/IChatServer";
import { IClearMailMessageRequest } from "@spt-aki/models/eft/dialog/IClearMailMessageRequest"; import { IClearMailMessageRequest } from "@spt-aki/models/eft/dialog/IClearMailMessageRequest";
@ -92,13 +93,9 @@ export declare class DialogueCallbacks implements OnUpdate {
/** Handle client/friend/delete */ /** Handle client/friend/delete */
deleteFriend(url: string, request: IDeleteFriendRequest, sessionID: string): INullResponseData; deleteFriend(url: string, request: IDeleteFriendRequest, sessionID: string): INullResponseData;
/** Handle client/friend/ignore/set */ /** Handle client/friend/ignore/set */
ignoreFriend(url: string, request: { ignoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData;
uid: string;
}, sessionID: string): INullResponseData;
/** Handle client/friend/ignore/remove */ /** Handle client/friend/ignore/remove */
unIgnoreFriend(url: string, request: { unIgnoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData;
uid: string;
}, sessionID: string): INullResponseData;
clearMail(url: string, request: IClearMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>; clearMail(url: string, request: IClearMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>;
removeMail(url: string, request: IRemoveMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>; removeMail(url: string, request: IRemoveMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>;
onUpdate(timeSinceLastRun: number): Promise<boolean>; onUpdate(timeSinceLastRun: number): Promise<boolean>;

View File

@ -1,6 +1,7 @@
import { GameController } from "@spt-aki/controllers/GameController"; import { GameController } from "@spt-aki/controllers/GameController";
import { OnLoad } from "@spt-aki/di/OnLoad"; import { OnLoad } from "@spt-aki/di/OnLoad";
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { ICheckVersionResponse } from "@spt-aki/models/eft/game/ICheckVersionResponse"; import { ICheckVersionResponse } from "@spt-aki/models/eft/game/ICheckVersionResponse";
import { ICurrentGroupResponse } from "@spt-aki/models/eft/game/ICurrentGroupResponse"; import { ICurrentGroupResponse } from "@spt-aki/models/eft/game/ICurrentGroupResponse";
import { IGameConfigResponse } from "@spt-aki/models/eft/game/IGameConfigResponse"; import { IGameConfigResponse } from "@spt-aki/models/eft/game/IGameConfigResponse";
@ -10,7 +11,6 @@ import { IGameLogoutResponseData } from "@spt-aki/models/eft/game/IGameLogoutRes
import { IGameStartResponse } from "@spt-aki/models/eft/game/IGameStartResponse"; import { IGameStartResponse } from "@spt-aki/models/eft/game/IGameStartResponse";
import { IGetRaidTimeRequest } from "@spt-aki/models/eft/game/IGetRaidTimeRequest"; import { IGetRaidTimeRequest } from "@spt-aki/models/eft/game/IGetRaidTimeRequest";
import { IGetRaidTimeResponse } from "@spt-aki/models/eft/game/IGetRaidTimeResponse"; import { IGetRaidTimeResponse } from "@spt-aki/models/eft/game/IGetRaidTimeResponse";
import { IReportNicknameRequestData } from "@spt-aki/models/eft/game/IReportNicknameRequestData";
import { IServerDetails } from "@spt-aki/models/eft/game/IServerDetails"; import { IServerDetails } from "@spt-aki/models/eft/game/IServerDetails";
import { IVersionValidateRequestData } from "@spt-aki/models/eft/game/IVersionValidateRequestData"; import { IVersionValidateRequestData } from "@spt-aki/models/eft/game/IVersionValidateRequestData";
import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData"; import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData";
@ -69,7 +69,7 @@ export declare class GameCallbacks implements OnLoad {
* @returns string * @returns string
*/ */
getVersion(url: string, info: IEmptyRequestData, sessionID: string): string; getVersion(url: string, info: IEmptyRequestData, sessionID: string): string;
reportNickname(url: string, info: IReportNicknameRequestData, sessionID: string): INullResponseData; reportNickname(url: string, info: IUIDRequestData, sessionID: string): INullResponseData;
/** /**
* Handle singleplayer/settings/getRaidTime * Handle singleplayer/settings/getRaidTime
* @returns string * @returns string

View File

@ -1,9 +1,9 @@
import { NotifierController } from "@spt-aki/controllers/NotifierController"; import { NotifierController } from "@spt-aki/controllers/NotifierController";
import { HttpServerHelper } from "@spt-aki/helpers/HttpServerHelper"; import { HttpServerHelper } from "@spt-aki/helpers/HttpServerHelper";
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData"; import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData";
import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier"; import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier";
import { ISelectProfileRequestData } from "@spt-aki/models/eft/notifier/ISelectProfileRequestData";
import { ISelectProfileResponse } from "@spt-aki/models/eft/notifier/ISelectProfileResponse"; import { ISelectProfileResponse } from "@spt-aki/models/eft/notifier/ISelectProfileResponse";
import { HttpResponseUtil } from "@spt-aki/utils/HttpResponseUtil"; import { HttpResponseUtil } from "@spt-aki/utils/HttpResponseUtil";
import { JsonUtil } from "@spt-aki/utils/JsonUtil"; import { JsonUtil } from "@spt-aki/utils/JsonUtil";
@ -29,6 +29,6 @@ export declare class NotifierCallbacks {
* Handle client/game/profile/select * Handle client/game/profile/select
* @returns ISelectProfileResponse * @returns ISelectProfileResponse
*/ */
selectProfile(url: string, info: ISelectProfileRequestData, sessionID: string): IGetBodyResponseData<ISelectProfileResponse>; selectProfile(url: string, info: IUIDRequestData, sessionID: string): IGetBodyResponseData<ISelectProfileResponse>;
notify(url: string, info: any, sessionID: string): string; notify(url: string, info: any, sessionID: string): string;
} }

View File

@ -26,7 +26,7 @@ export declare class BuildController {
saveWeaponBuild(sessionId: string, body: IPresetBuildActionRequestData): void; saveWeaponBuild(sessionId: string, body: IPresetBuildActionRequestData): void;
/** Handle client/builds/equipment/save event */ /** Handle client/builds/equipment/save event */
saveEquipmentBuild(sessionID: string, request: IPresetBuildActionRequestData): void; saveEquipmentBuild(sessionID: string, request: IPresetBuildActionRequestData): void;
/** Handle client/builds/delete*/ /** Handle client/builds/delete */
removeBuild(sessionID: string, request: IRemoveBuildRequestData): void; removeBuild(sessionID: string, request: IRemoveBuildRequestData): void;
protected removePlayerBuild(idToRemove: string, sessionID: string): void; protected removePlayerBuild(idToRemove: string, sessionID: string): void;
/** /**

View File

@ -63,7 +63,7 @@ export declare class RepeatableQuestController {
* @param {string} _info Request from client * @param {string} _info Request from client
* @param {string} sessionID Player's session id * @param {string} sessionID Player's session id
* *
* @returns {array} Array of "repeatableQuestObjects" as descibed above * @returns {array} Array of "repeatableQuestObjects" as described above
*/ */
getClientRepeatableQuests(_info: IEmptyRequestData, sessionID: string): IPmcDataRepeatableQuest[]; getClientRepeatableQuests(_info: IEmptyRequestData, sessionID: string): IPmcDataRepeatableQuest[];
/** /**

View File

@ -10,8 +10,8 @@ import { Inventory } from "@spt-aki/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt-aki/models/eft/common/tables/IItem"; import { Item, Upd } from "@spt-aki/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemDirectRequest"; import { IAddItemDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt-aki/models/eft/inventory/IAddItemRequestData"; import { AddItem } from "@spt-aki/models/eft/inventory/IAddItemRequestData";
import { IAddItemTempObject } from "@spt-aki/models/eft/inventory/IAddItemTempObject";
import { IAddItemsDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemsDirectRequest"; import { IAddItemsDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt-aki/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt-aki/models/eft/inventory/IInventoryMergeRequestData"; import { IInventoryMergeRequestData } from "@spt-aki/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryMoveRequestData"; import { IInventoryMoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryRemoveRequestData"; import { IInventoryRemoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryRemoveRequestData";

View File

@ -922,7 +922,7 @@ export interface IBtrMapConfig {
mapID: string; mapID: string;
pathsConfigurations: IBtrMapConfig[]; pathsConfigurations: IBtrMapConfig[];
} }
export interface IBtrMapConfig { export interface IBtrPathConfig {
id: string; id: string;
enterPoint: string; enterPoint: string;
exitPoint: string; exitPoint: string;

View File

@ -0,0 +1,3 @@
export interface IUIDRequestData {
uid: string;
}

View File

@ -373,7 +373,7 @@ export interface IQuestStatus {
startTime: number; startTime: number;
status: QuestStatus; status: QuestStatus;
statusTimers?: Record<string, number>; statusTimers?: Record<string, number>;
/** Property does not exist in live profile data, but is used by ProfileChanges.questsStatus when sent to client*/ /** Property does not exist in live profile data, but is used by ProfileChanges.questsStatus when sent to client */
completedConditions?: string[]; completedConditions?: string[];
availableAfter?: number; availableAfter?: number;
} }

View File

@ -1,7 +1,7 @@
import { IPmcData } from "@spt-aki/models/eft/common/IPmcData"; import { IPmcData } from "@spt-aki/models/eft/common/IPmcData";
import { Dialogue, IUserBuilds } from "@spt-aki/models/eft/profile/IAkiProfile"; import { Dialogue, IUserBuilds } from "@spt-aki/models/eft/profile/IAkiProfile";
export interface IProfileTemplates { export interface IProfileTemplates {
Standard: IProfileSides; "Standard": IProfileSides;
"Left Behind": IProfileSides; "Left Behind": IProfileSides;
"Prepare To Escape": IProfileSides; "Prepare To Escape": IProfileSides;
"Edge Of Darkness": IProfileSides; "Edge Of Darkness": IProfileSides;

View File

@ -1,3 +0,0 @@
export interface IReportNicknameRequestData {
uid: string;
}

View File

@ -1,14 +1,14 @@
import { Effect } from "@spt-aki/models/eft/health/Effect"; import { Effect } from "@spt-aki/models/eft/health/Effect";
import { BodyPart } from "@spt-aki/models/eft/health/IOffraidHealRequestData"; import { BodyPart } from "@spt-aki/models/eft/health/IOffraidHealRequestData";
import { HideoutAreas } from "@spt-aki/models/enums/HideoutAreas";
import { SkillTypes } from "@spt-aki/models/enums/SkillTypes";
import { Traders } from "@spt-aki/models/enums/Traders";
import { QteActivityType } from "@spt-aki/models/enums/hideout/QteActivityType"; import { QteActivityType } from "@spt-aki/models/enums/hideout/QteActivityType";
import { QteEffectType } from "@spt-aki/models/enums/hideout/QteEffectType"; import { QteEffectType } from "@spt-aki/models/enums/hideout/QteEffectType";
import { QteResultType } from "@spt-aki/models/enums/hideout/QteResultType"; import { QteResultType } from "@spt-aki/models/enums/hideout/QteResultType";
import { QteRewardType } from "@spt-aki/models/enums/hideout/QteRewardType"; import { QteRewardType } from "@spt-aki/models/enums/hideout/QteRewardType";
import { QteType } from "@spt-aki/models/enums/hideout/QteType"; import { QteType } from "@spt-aki/models/enums/hideout/QteType";
import { RequirementType } from "@spt-aki/models/enums/hideout/RequirementType"; import { RequirementType } from "@spt-aki/models/enums/hideout/RequirementType";
import { HideoutAreas } from "@spt-aki/models/enums/HideoutAreas";
import { SkillTypes } from "@spt-aki/models/enums/SkillTypes";
import { Traders } from "@spt-aki/models/enums/Traders";
export interface IQteData { export interface IQteData {
id: string; id: string;
type: QteActivityType; type: QteActivityType;

View File

@ -1,3 +0,0 @@
export interface ISelectProfileRequestData {
uid: string;
}

View File

@ -34,7 +34,7 @@ export declare enum SkillTypes {
NIGHT_OPS = "NightOps", NIGHT_OPS = "NightOps",
SILENT_OPS = "SilentOps", SILENT_OPS = "SilentOps",
LOCKPICKING = "Lockpicking", LOCKPICKING = "Lockpicking",
/** Also called Weapon Maintenance*/ /** Also called Weapon Maintenance */
WEAPON_TREATMENT = "WeaponTreatment", WEAPON_TREATMENT = "WeaponTreatment",
MAG_DRILLS = "MagDrills", MAG_DRILLS = "MagDrills",
FREE_TRADING = "Freetrading", FREE_TRADING = "Freetrading",

View File

@ -1,7 +1,7 @@
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData"; import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData";
import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier"; import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier";
import { ISelectProfileRequestData } from "@spt-aki/models/eft/notifier/ISelectProfileRequestData";
export interface INotifierCallbacks { export interface INotifierCallbacks {
/** /**
* If we don't have anything to send, it's ok to not send anything back * If we don't have anything to send, it's ok to not send anything back
@ -12,6 +12,6 @@ export interface INotifierCallbacks {
sendNotification(sessionID: string, req: any, resp: any, data: any): void; sendNotification(sessionID: string, req: any, resp: any, data: any): void;
getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData<any[]>; getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData<any[]>;
createNotifierChannel(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<INotifierChannel>; createNotifierChannel(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<INotifierChannel>;
selectProfile(url: string, info: ISelectProfileRequestData, sessionID: string): IGetBodyResponseData<any>; selectProfile(url: string, info: IUIDRequestData, sessionID: string): IGetBodyResponseData<any>;
notify(url: string, info: any, sessionID: string): string; notify(url: string, info: any, sessionID: string): string;
} }

View File

@ -175,7 +175,7 @@ export interface IRandomisedResourceDetails {
meds: IRandomisedResourceValues; meds: IRandomisedResourceValues;
} }
export interface IRandomisedResourceValues { export interface IRandomisedResourceValues {
/** Minimum percent of item to randomized between min and max resource*/ /** Minimum percent of item to randomized between min and max resource */
resourcePercent: number; resourcePercent: number;
/** Chance for randomization to not occur */ /** Chance for randomization to not occur */
chanceMaxResourcePercent: number; chanceMaxResourcePercent: number;

View File

@ -51,7 +51,7 @@ export interface IRelease {
export interface IGameFixes { export interface IGameFixes {
/** Shotguns use a different value than normal guns causing huge pellet dispersion */ /** Shotguns use a different value than normal guns causing huge pellet dispersion */
fixShotgunDispersion: boolean; fixShotgunDispersion: boolean;
/** Remove items added by mods when the mod no longer exists - can fix dead profiles stuck at game load*/ /** Remove items added by mods when the mod no longer exists - can fix dead profiles stuck at game load */
removeModItemsFromProfile: boolean; removeModItemsFromProfile: boolean;
/** Fix issues that cause the game to not start due to inventory item issues */ /** Fix issues that cause the game to not start due to inventory item issues */
fixProfileBreakingInventoryItemIssues: boolean; fixProfileBreakingInventoryItemIssues: boolean;

View File

@ -21,17 +21,17 @@ export interface ILocationConfig extends IBaseConfig {
fitLootIntoContainerAttempts: number; fitLootIntoContainerAttempts: number;
/** Add all possible zones to each maps `OpenZones` property */ /** Add all possible zones to each maps `OpenZones` property */
addOpenZonesToAllMaps: boolean; addOpenZonesToAllMaps: boolean;
/** Allow addition of custom bot waves designed by SPT to be added to maps - defined in configs/location.json.customWaves*/ /** Allow addition of custom bot waves designed by SPT to be added to maps - defined in configs/location.json.customWaves */
addCustomBotWavesToMaps: boolean; addCustomBotWavesToMaps: boolean;
/** Should the limits defined inside botTypeLimits to appled to locations on game start */ /** Should the limits defined inside botTypeLimits to appled to locations on game start */
enableBotTypeLimits: boolean; enableBotTypeLimits: boolean;
/** Add limits to a locations base.MinMaxBots array if enableBotTypeLimits is true*/ /** Add limits to a locations base.MinMaxBots array if enableBotTypeLimits is true */
botTypeLimits: Record<string, IBotTypeLimit[]>; botTypeLimits: Record<string, IBotTypeLimit[]>;
/** container randomisation settings */ /** container randomisation settings */
containerRandomisationSettings: IContainerRandomistionSettings; containerRandomisationSettings: IContainerRandomistionSettings;
/** How full must a random loose magazine be %*/ /** How full must a random loose magazine be % */
minFillLooseMagazinePercent: number; minFillLooseMagazinePercent: number;
/** How full must a random static magazine be %*/ /** How full must a random static magazine be % */
minFillStaticMagazinePercent: number; minFillStaticMagazinePercent: number;
allowDuplicateItemsInStaticContainers: boolean; allowDuplicateItemsInStaticContainers: boolean;
/** Chance loose magazines have ammo in them TODO - rename to dynamicMagazineLootHasAmmoChancePercent */ /** Chance loose magazines have ammo in them TODO - rename to dynamicMagazineLootHasAmmoChancePercent */
@ -40,11 +40,11 @@ export interface ILocationConfig extends IBaseConfig {
staticMagazineLootHasAmmoChancePercent: number; staticMagazineLootHasAmmoChancePercent: number;
/** Key: map, value: loose loot ids to ignore */ /** Key: map, value: loose loot ids to ignore */
looseLootBlacklist: Record<string, string[]>; looseLootBlacklist: Record<string, string[]>;
/** Key: map, value: settings to control how long scav raids are*/ /** Key: map, value: settings to control how long scav raids are */
scavRaidTimeSettings: IScavRaidTimeSettings; scavRaidTimeSettings: IScavRaidTimeSettings;
/** Settings to adjust mods for lootable equipment in raid */ /** Settings to adjust mods for lootable equipment in raid */
equipmentLootSettings: IEquipmentLootSettings; equipmentLootSettings: IEquipmentLootSettings;
/** Sets the max Patrol Value of the Boxzone on the map Ground Zero*/ /** Sets the max Patrol Value of the Boxzone on the map Ground Zero */
sandboxMaxPatrolvalue: number; sandboxMaxPatrolvalue: number;
} }
export interface IEquipmentLootSettings { export interface IEquipmentLootSettings {

View File

@ -8,7 +8,7 @@ export interface IRagfairConfig extends IBaseConfig {
runIntervalValues: IRunIntervalValues; runIntervalValues: IRunIntervalValues;
/** Player listing settings */ /** Player listing settings */
sell: Sell; sell: Sell;
/** Trader ids + should their assorts be listed on flea*/ /** Trader ids + should their assorts be listed on flea */
traders: Record<string, boolean>; traders: Record<string, boolean>;
dynamic: Dynamic; dynamic: Dynamic;
} }
@ -19,7 +19,7 @@ export interface Sell {
chance: Chance; chance: Chance;
/** Settings to control how long it takes for a player offer to sell */ /** Settings to control how long it takes for a player offer to sell */
time: MinMax; time: MinMax;
/**Seconds from clicking remove to remove offer from market */ /** Seconds from clicking remove to remove offer from market */
expireSeconds: number; expireSeconds: number;
} }
export interface Chance { export interface Chance {

View File

@ -31,7 +31,7 @@ export interface FenceConfig {
/** Key: item tpl */ /** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>; itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>; itemTypeLimits: Record<string, number>;
/** Prevent duplicate offers of items of specific categories by parentId*/ /** Prevent duplicate offers of items of specific categories by parentId */
preventDuplicateOffersOfCategory: string[]; preventDuplicateOffersOfCategory: string[];
regenerateAssortsOnRefresh: boolean; regenerateAssortsOnRefresh: boolean;
/** Max rouble price before item is not listed on flea */ /** Max rouble price before item is not listed on flea */

View File

@ -6,8 +6,8 @@ import { IHttpConfig } from "@spt-aki/models/spt/config/IHttpConfig";
import { ILogger } from "@spt-aki/models/spt/utils/ILogger"; import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
import { ConfigServer } from "@spt-aki/servers/ConfigServer"; import { ConfigServer } from "@spt-aki/servers/ConfigServer";
import { DatabaseServer } from "@spt-aki/servers/DatabaseServer"; import { DatabaseServer } from "@spt-aki/servers/DatabaseServer";
import { WebSocketServer } from "@spt-aki/servers/WebSocketServer";
import { IHttpListener } from "@spt-aki/servers/http/IHttpListener"; import { IHttpListener } from "@spt-aki/servers/http/IHttpListener";
import { WebSocketServer } from "@spt-aki/servers/WebSocketServer";
import { LocalisationService } from "@spt-aki/services/LocalisationService"; import { LocalisationService } from "@spt-aki/services/LocalisationService";
export declare class HttpServer { export declare class HttpServer {
protected logger: ILogger; protected logger: ILogger;

View File

@ -1,6 +1,7 @@
import { DialogueController } from "@spt-aki/controllers/DialogueController"; import { DialogueController } from "@spt-aki/controllers/DialogueController";
import { OnUpdate } from "@spt-aki/di/OnUpdate"; import { OnUpdate } from "@spt-aki/di/OnUpdate";
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { IAcceptFriendRequestData, ICancelFriendRequestData, IDeclineFriendRequestData } from "@spt-aki/models/eft/dialog/IAcceptFriendRequestData"; import { IAcceptFriendRequestData, ICancelFriendRequestData, IDeclineFriendRequestData } from "@spt-aki/models/eft/dialog/IAcceptFriendRequestData";
import { IChatServer } from "@spt-aki/models/eft/dialog/IChatServer"; import { IChatServer } from "@spt-aki/models/eft/dialog/IChatServer";
import { IClearMailMessageRequest } from "@spt-aki/models/eft/dialog/IClearMailMessageRequest"; import { IClearMailMessageRequest } from "@spt-aki/models/eft/dialog/IClearMailMessageRequest";
@ -92,13 +93,9 @@ export declare class DialogueCallbacks implements OnUpdate {
/** Handle client/friend/delete */ /** Handle client/friend/delete */
deleteFriend(url: string, request: IDeleteFriendRequest, sessionID: string): INullResponseData; deleteFriend(url: string, request: IDeleteFriendRequest, sessionID: string): INullResponseData;
/** Handle client/friend/ignore/set */ /** Handle client/friend/ignore/set */
ignoreFriend(url: string, request: { ignoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData;
uid: string;
}, sessionID: string): INullResponseData;
/** Handle client/friend/ignore/remove */ /** Handle client/friend/ignore/remove */
unIgnoreFriend(url: string, request: { unIgnoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData;
uid: string;
}, sessionID: string): INullResponseData;
clearMail(url: string, request: IClearMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>; clearMail(url: string, request: IClearMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>;
removeMail(url: string, request: IRemoveMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>; removeMail(url: string, request: IRemoveMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>;
onUpdate(timeSinceLastRun: number): Promise<boolean>; onUpdate(timeSinceLastRun: number): Promise<boolean>;

View File

@ -1,6 +1,7 @@
import { GameController } from "@spt-aki/controllers/GameController"; import { GameController } from "@spt-aki/controllers/GameController";
import { OnLoad } from "@spt-aki/di/OnLoad"; import { OnLoad } from "@spt-aki/di/OnLoad";
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { ICheckVersionResponse } from "@spt-aki/models/eft/game/ICheckVersionResponse"; import { ICheckVersionResponse } from "@spt-aki/models/eft/game/ICheckVersionResponse";
import { ICurrentGroupResponse } from "@spt-aki/models/eft/game/ICurrentGroupResponse"; import { ICurrentGroupResponse } from "@spt-aki/models/eft/game/ICurrentGroupResponse";
import { IGameConfigResponse } from "@spt-aki/models/eft/game/IGameConfigResponse"; import { IGameConfigResponse } from "@spt-aki/models/eft/game/IGameConfigResponse";
@ -10,7 +11,6 @@ import { IGameLogoutResponseData } from "@spt-aki/models/eft/game/IGameLogoutRes
import { IGameStartResponse } from "@spt-aki/models/eft/game/IGameStartResponse"; import { IGameStartResponse } from "@spt-aki/models/eft/game/IGameStartResponse";
import { IGetRaidTimeRequest } from "@spt-aki/models/eft/game/IGetRaidTimeRequest"; import { IGetRaidTimeRequest } from "@spt-aki/models/eft/game/IGetRaidTimeRequest";
import { IGetRaidTimeResponse } from "@spt-aki/models/eft/game/IGetRaidTimeResponse"; import { IGetRaidTimeResponse } from "@spt-aki/models/eft/game/IGetRaidTimeResponse";
import { IReportNicknameRequestData } from "@spt-aki/models/eft/game/IReportNicknameRequestData";
import { IServerDetails } from "@spt-aki/models/eft/game/IServerDetails"; import { IServerDetails } from "@spt-aki/models/eft/game/IServerDetails";
import { IVersionValidateRequestData } from "@spt-aki/models/eft/game/IVersionValidateRequestData"; import { IVersionValidateRequestData } from "@spt-aki/models/eft/game/IVersionValidateRequestData";
import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData"; import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData";
@ -69,7 +69,7 @@ export declare class GameCallbacks implements OnLoad {
* @returns string * @returns string
*/ */
getVersion(url: string, info: IEmptyRequestData, sessionID: string): string; getVersion(url: string, info: IEmptyRequestData, sessionID: string): string;
reportNickname(url: string, info: IReportNicknameRequestData, sessionID: string): INullResponseData; reportNickname(url: string, info: IUIDRequestData, sessionID: string): INullResponseData;
/** /**
* Handle singleplayer/settings/getRaidTime * Handle singleplayer/settings/getRaidTime
* @returns string * @returns string

View File

@ -1,9 +1,9 @@
import { NotifierController } from "@spt-aki/controllers/NotifierController"; import { NotifierController } from "@spt-aki/controllers/NotifierController";
import { HttpServerHelper } from "@spt-aki/helpers/HttpServerHelper"; import { HttpServerHelper } from "@spt-aki/helpers/HttpServerHelper";
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData"; import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData";
import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier"; import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier";
import { ISelectProfileRequestData } from "@spt-aki/models/eft/notifier/ISelectProfileRequestData";
import { ISelectProfileResponse } from "@spt-aki/models/eft/notifier/ISelectProfileResponse"; import { ISelectProfileResponse } from "@spt-aki/models/eft/notifier/ISelectProfileResponse";
import { HttpResponseUtil } from "@spt-aki/utils/HttpResponseUtil"; import { HttpResponseUtil } from "@spt-aki/utils/HttpResponseUtil";
import { JsonUtil } from "@spt-aki/utils/JsonUtil"; import { JsonUtil } from "@spt-aki/utils/JsonUtil";
@ -29,6 +29,6 @@ export declare class NotifierCallbacks {
* Handle client/game/profile/select * Handle client/game/profile/select
* @returns ISelectProfileResponse * @returns ISelectProfileResponse
*/ */
selectProfile(url: string, info: ISelectProfileRequestData, sessionID: string): IGetBodyResponseData<ISelectProfileResponse>; selectProfile(url: string, info: IUIDRequestData, sessionID: string): IGetBodyResponseData<ISelectProfileResponse>;
notify(url: string, info: any, sessionID: string): string; notify(url: string, info: any, sessionID: string): string;
} }

View File

@ -26,7 +26,7 @@ export declare class BuildController {
saveWeaponBuild(sessionId: string, body: IPresetBuildActionRequestData): void; saveWeaponBuild(sessionId: string, body: IPresetBuildActionRequestData): void;
/** Handle client/builds/equipment/save event */ /** Handle client/builds/equipment/save event */
saveEquipmentBuild(sessionID: string, request: IPresetBuildActionRequestData): void; saveEquipmentBuild(sessionID: string, request: IPresetBuildActionRequestData): void;
/** Handle client/builds/delete*/ /** Handle client/builds/delete */
removeBuild(sessionID: string, request: IRemoveBuildRequestData): void; removeBuild(sessionID: string, request: IRemoveBuildRequestData): void;
protected removePlayerBuild(idToRemove: string, sessionID: string): void; protected removePlayerBuild(idToRemove: string, sessionID: string): void;
/** /**

View File

@ -63,7 +63,7 @@ export declare class RepeatableQuestController {
* @param {string} _info Request from client * @param {string} _info Request from client
* @param {string} sessionID Player's session id * @param {string} sessionID Player's session id
* *
* @returns {array} Array of "repeatableQuestObjects" as descibed above * @returns {array} Array of "repeatableQuestObjects" as described above
*/ */
getClientRepeatableQuests(_info: IEmptyRequestData, sessionID: string): IPmcDataRepeatableQuest[]; getClientRepeatableQuests(_info: IEmptyRequestData, sessionID: string): IPmcDataRepeatableQuest[];
/** /**

View File

@ -10,8 +10,8 @@ import { Inventory } from "@spt-aki/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt-aki/models/eft/common/tables/IItem"; import { Item, Upd } from "@spt-aki/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemDirectRequest"; import { IAddItemDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt-aki/models/eft/inventory/IAddItemRequestData"; import { AddItem } from "@spt-aki/models/eft/inventory/IAddItemRequestData";
import { IAddItemTempObject } from "@spt-aki/models/eft/inventory/IAddItemTempObject";
import { IAddItemsDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemsDirectRequest"; import { IAddItemsDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt-aki/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt-aki/models/eft/inventory/IInventoryMergeRequestData"; import { IInventoryMergeRequestData } from "@spt-aki/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryMoveRequestData"; import { IInventoryMoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryRemoveRequestData"; import { IInventoryRemoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryRemoveRequestData";

View File

@ -922,7 +922,7 @@ export interface IBtrMapConfig {
mapID: string; mapID: string;
pathsConfigurations: IBtrMapConfig[]; pathsConfigurations: IBtrMapConfig[];
} }
export interface IBtrMapConfig { export interface IBtrPathConfig {
id: string; id: string;
enterPoint: string; enterPoint: string;
exitPoint: string; exitPoint: string;

View File

@ -0,0 +1,3 @@
export interface IUIDRequestData {
uid: string;
}

View File

@ -373,7 +373,7 @@ export interface IQuestStatus {
startTime: number; startTime: number;
status: QuestStatus; status: QuestStatus;
statusTimers?: Record<string, number>; statusTimers?: Record<string, number>;
/** Property does not exist in live profile data, but is used by ProfileChanges.questsStatus when sent to client*/ /** Property does not exist in live profile data, but is used by ProfileChanges.questsStatus when sent to client */
completedConditions?: string[]; completedConditions?: string[];
availableAfter?: number; availableAfter?: number;
} }

View File

@ -1,7 +1,7 @@
import { IPmcData } from "@spt-aki/models/eft/common/IPmcData"; import { IPmcData } from "@spt-aki/models/eft/common/IPmcData";
import { Dialogue, IUserBuilds } from "@spt-aki/models/eft/profile/IAkiProfile"; import { Dialogue, IUserBuilds } from "@spt-aki/models/eft/profile/IAkiProfile";
export interface IProfileTemplates { export interface IProfileTemplates {
Standard: IProfileSides; "Standard": IProfileSides;
"Left Behind": IProfileSides; "Left Behind": IProfileSides;
"Prepare To Escape": IProfileSides; "Prepare To Escape": IProfileSides;
"Edge Of Darkness": IProfileSides; "Edge Of Darkness": IProfileSides;

View File

@ -1,3 +0,0 @@
export interface IReportNicknameRequestData {
uid: string;
}

View File

@ -1,14 +1,14 @@
import { Effect } from "@spt-aki/models/eft/health/Effect"; import { Effect } from "@spt-aki/models/eft/health/Effect";
import { BodyPart } from "@spt-aki/models/eft/health/IOffraidHealRequestData"; import { BodyPart } from "@spt-aki/models/eft/health/IOffraidHealRequestData";
import { HideoutAreas } from "@spt-aki/models/enums/HideoutAreas";
import { SkillTypes } from "@spt-aki/models/enums/SkillTypes";
import { Traders } from "@spt-aki/models/enums/Traders";
import { QteActivityType } from "@spt-aki/models/enums/hideout/QteActivityType"; import { QteActivityType } from "@spt-aki/models/enums/hideout/QteActivityType";
import { QteEffectType } from "@spt-aki/models/enums/hideout/QteEffectType"; import { QteEffectType } from "@spt-aki/models/enums/hideout/QteEffectType";
import { QteResultType } from "@spt-aki/models/enums/hideout/QteResultType"; import { QteResultType } from "@spt-aki/models/enums/hideout/QteResultType";
import { QteRewardType } from "@spt-aki/models/enums/hideout/QteRewardType"; import { QteRewardType } from "@spt-aki/models/enums/hideout/QteRewardType";
import { QteType } from "@spt-aki/models/enums/hideout/QteType"; import { QteType } from "@spt-aki/models/enums/hideout/QteType";
import { RequirementType } from "@spt-aki/models/enums/hideout/RequirementType"; import { RequirementType } from "@spt-aki/models/enums/hideout/RequirementType";
import { HideoutAreas } from "@spt-aki/models/enums/HideoutAreas";
import { SkillTypes } from "@spt-aki/models/enums/SkillTypes";
import { Traders } from "@spt-aki/models/enums/Traders";
export interface IQteData { export interface IQteData {
id: string; id: string;
type: QteActivityType; type: QteActivityType;

View File

@ -1,3 +0,0 @@
export interface ISelectProfileRequestData {
uid: string;
}

View File

@ -34,7 +34,7 @@ export declare enum SkillTypes {
NIGHT_OPS = "NightOps", NIGHT_OPS = "NightOps",
SILENT_OPS = "SilentOps", SILENT_OPS = "SilentOps",
LOCKPICKING = "Lockpicking", LOCKPICKING = "Lockpicking",
/** Also called Weapon Maintenance*/ /** Also called Weapon Maintenance */
WEAPON_TREATMENT = "WeaponTreatment", WEAPON_TREATMENT = "WeaponTreatment",
MAG_DRILLS = "MagDrills", MAG_DRILLS = "MagDrills",
FREE_TRADING = "Freetrading", FREE_TRADING = "Freetrading",

View File

@ -1,7 +1,7 @@
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData"; import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData";
import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier"; import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier";
import { ISelectProfileRequestData } from "@spt-aki/models/eft/notifier/ISelectProfileRequestData";
export interface INotifierCallbacks { export interface INotifierCallbacks {
/** /**
* If we don't have anything to send, it's ok to not send anything back * If we don't have anything to send, it's ok to not send anything back
@ -12,6 +12,6 @@ export interface INotifierCallbacks {
sendNotification(sessionID: string, req: any, resp: any, data: any): void; sendNotification(sessionID: string, req: any, resp: any, data: any): void;
getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData<any[]>; getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData<any[]>;
createNotifierChannel(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<INotifierChannel>; createNotifierChannel(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<INotifierChannel>;
selectProfile(url: string, info: ISelectProfileRequestData, sessionID: string): IGetBodyResponseData<any>; selectProfile(url: string, info: IUIDRequestData, sessionID: string): IGetBodyResponseData<any>;
notify(url: string, info: any, sessionID: string): string; notify(url: string, info: any, sessionID: string): string;
} }

View File

@ -175,7 +175,7 @@ export interface IRandomisedResourceDetails {
meds: IRandomisedResourceValues; meds: IRandomisedResourceValues;
} }
export interface IRandomisedResourceValues { export interface IRandomisedResourceValues {
/** Minimum percent of item to randomized between min and max resource*/ /** Minimum percent of item to randomized between min and max resource */
resourcePercent: number; resourcePercent: number;
/** Chance for randomization to not occur */ /** Chance for randomization to not occur */
chanceMaxResourcePercent: number; chanceMaxResourcePercent: number;

View File

@ -51,7 +51,7 @@ export interface IRelease {
export interface IGameFixes { export interface IGameFixes {
/** Shotguns use a different value than normal guns causing huge pellet dispersion */ /** Shotguns use a different value than normal guns causing huge pellet dispersion */
fixShotgunDispersion: boolean; fixShotgunDispersion: boolean;
/** Remove items added by mods when the mod no longer exists - can fix dead profiles stuck at game load*/ /** Remove items added by mods when the mod no longer exists - can fix dead profiles stuck at game load */
removeModItemsFromProfile: boolean; removeModItemsFromProfile: boolean;
/** Fix issues that cause the game to not start due to inventory item issues */ /** Fix issues that cause the game to not start due to inventory item issues */
fixProfileBreakingInventoryItemIssues: boolean; fixProfileBreakingInventoryItemIssues: boolean;

View File

@ -21,17 +21,17 @@ export interface ILocationConfig extends IBaseConfig {
fitLootIntoContainerAttempts: number; fitLootIntoContainerAttempts: number;
/** Add all possible zones to each maps `OpenZones` property */ /** Add all possible zones to each maps `OpenZones` property */
addOpenZonesToAllMaps: boolean; addOpenZonesToAllMaps: boolean;
/** Allow addition of custom bot waves designed by SPT to be added to maps - defined in configs/location.json.customWaves*/ /** Allow addition of custom bot waves designed by SPT to be added to maps - defined in configs/location.json.customWaves */
addCustomBotWavesToMaps: boolean; addCustomBotWavesToMaps: boolean;
/** Should the limits defined inside botTypeLimits to appled to locations on game start */ /** Should the limits defined inside botTypeLimits to appled to locations on game start */
enableBotTypeLimits: boolean; enableBotTypeLimits: boolean;
/** Add limits to a locations base.MinMaxBots array if enableBotTypeLimits is true*/ /** Add limits to a locations base.MinMaxBots array if enableBotTypeLimits is true */
botTypeLimits: Record<string, IBotTypeLimit[]>; botTypeLimits: Record<string, IBotTypeLimit[]>;
/** container randomisation settings */ /** container randomisation settings */
containerRandomisationSettings: IContainerRandomistionSettings; containerRandomisationSettings: IContainerRandomistionSettings;
/** How full must a random loose magazine be %*/ /** How full must a random loose magazine be % */
minFillLooseMagazinePercent: number; minFillLooseMagazinePercent: number;
/** How full must a random static magazine be %*/ /** How full must a random static magazine be % */
minFillStaticMagazinePercent: number; minFillStaticMagazinePercent: number;
allowDuplicateItemsInStaticContainers: boolean; allowDuplicateItemsInStaticContainers: boolean;
/** Chance loose magazines have ammo in them TODO - rename to dynamicMagazineLootHasAmmoChancePercent */ /** Chance loose magazines have ammo in them TODO - rename to dynamicMagazineLootHasAmmoChancePercent */
@ -40,11 +40,11 @@ export interface ILocationConfig extends IBaseConfig {
staticMagazineLootHasAmmoChancePercent: number; staticMagazineLootHasAmmoChancePercent: number;
/** Key: map, value: loose loot ids to ignore */ /** Key: map, value: loose loot ids to ignore */
looseLootBlacklist: Record<string, string[]>; looseLootBlacklist: Record<string, string[]>;
/** Key: map, value: settings to control how long scav raids are*/ /** Key: map, value: settings to control how long scav raids are */
scavRaidTimeSettings: IScavRaidTimeSettings; scavRaidTimeSettings: IScavRaidTimeSettings;
/** Settings to adjust mods for lootable equipment in raid */ /** Settings to adjust mods for lootable equipment in raid */
equipmentLootSettings: IEquipmentLootSettings; equipmentLootSettings: IEquipmentLootSettings;
/** Sets the max Patrol Value of the Boxzone on the map Ground Zero*/ /** Sets the max Patrol Value of the Boxzone on the map Ground Zero */
sandboxMaxPatrolvalue: number; sandboxMaxPatrolvalue: number;
} }
export interface IEquipmentLootSettings { export interface IEquipmentLootSettings {

View File

@ -8,7 +8,7 @@ export interface IRagfairConfig extends IBaseConfig {
runIntervalValues: IRunIntervalValues; runIntervalValues: IRunIntervalValues;
/** Player listing settings */ /** Player listing settings */
sell: Sell; sell: Sell;
/** Trader ids + should their assorts be listed on flea*/ /** Trader ids + should their assorts be listed on flea */
traders: Record<string, boolean>; traders: Record<string, boolean>;
dynamic: Dynamic; dynamic: Dynamic;
} }
@ -19,7 +19,7 @@ export interface Sell {
chance: Chance; chance: Chance;
/** Settings to control how long it takes for a player offer to sell */ /** Settings to control how long it takes for a player offer to sell */
time: MinMax; time: MinMax;
/**Seconds from clicking remove to remove offer from market */ /** Seconds from clicking remove to remove offer from market */
expireSeconds: number; expireSeconds: number;
} }
export interface Chance { export interface Chance {

View File

@ -31,7 +31,7 @@ export interface FenceConfig {
/** Key: item tpl */ /** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>; itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>; itemTypeLimits: Record<string, number>;
/** Prevent duplicate offers of items of specific categories by parentId*/ /** Prevent duplicate offers of items of specific categories by parentId */
preventDuplicateOffersOfCategory: string[]; preventDuplicateOffersOfCategory: string[];
regenerateAssortsOnRefresh: boolean; regenerateAssortsOnRefresh: boolean;
/** Max rouble price before item is not listed on flea */ /** Max rouble price before item is not listed on flea */

View File

@ -6,8 +6,8 @@ import { IHttpConfig } from "@spt-aki/models/spt/config/IHttpConfig";
import { ILogger } from "@spt-aki/models/spt/utils/ILogger"; import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
import { ConfigServer } from "@spt-aki/servers/ConfigServer"; import { ConfigServer } from "@spt-aki/servers/ConfigServer";
import { DatabaseServer } from "@spt-aki/servers/DatabaseServer"; import { DatabaseServer } from "@spt-aki/servers/DatabaseServer";
import { WebSocketServer } from "@spt-aki/servers/WebSocketServer";
import { IHttpListener } from "@spt-aki/servers/http/IHttpListener"; import { IHttpListener } from "@spt-aki/servers/http/IHttpListener";
import { WebSocketServer } from "@spt-aki/servers/WebSocketServer";
import { LocalisationService } from "@spt-aki/services/LocalisationService"; import { LocalisationService } from "@spt-aki/services/LocalisationService";
export declare class HttpServer { export declare class HttpServer {
protected logger: ILogger; protected logger: ILogger;

View File

@ -1,6 +1,7 @@
import { DialogueController } from "@spt-aki/controllers/DialogueController"; import { DialogueController } from "@spt-aki/controllers/DialogueController";
import { OnUpdate } from "@spt-aki/di/OnUpdate"; import { OnUpdate } from "@spt-aki/di/OnUpdate";
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { IAcceptFriendRequestData, ICancelFriendRequestData, IDeclineFriendRequestData } from "@spt-aki/models/eft/dialog/IAcceptFriendRequestData"; import { IAcceptFriendRequestData, ICancelFriendRequestData, IDeclineFriendRequestData } from "@spt-aki/models/eft/dialog/IAcceptFriendRequestData";
import { IChatServer } from "@spt-aki/models/eft/dialog/IChatServer"; import { IChatServer } from "@spt-aki/models/eft/dialog/IChatServer";
import { IClearMailMessageRequest } from "@spt-aki/models/eft/dialog/IClearMailMessageRequest"; import { IClearMailMessageRequest } from "@spt-aki/models/eft/dialog/IClearMailMessageRequest";
@ -92,13 +93,9 @@ export declare class DialogueCallbacks implements OnUpdate {
/** Handle client/friend/delete */ /** Handle client/friend/delete */
deleteFriend(url: string, request: IDeleteFriendRequest, sessionID: string): INullResponseData; deleteFriend(url: string, request: IDeleteFriendRequest, sessionID: string): INullResponseData;
/** Handle client/friend/ignore/set */ /** Handle client/friend/ignore/set */
ignoreFriend(url: string, request: { ignoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData;
uid: string;
}, sessionID: string): INullResponseData;
/** Handle client/friend/ignore/remove */ /** Handle client/friend/ignore/remove */
unIgnoreFriend(url: string, request: { unIgnoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData;
uid: string;
}, sessionID: string): INullResponseData;
clearMail(url: string, request: IClearMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>; clearMail(url: string, request: IClearMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>;
removeMail(url: string, request: IRemoveMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>; removeMail(url: string, request: IRemoveMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>;
onUpdate(timeSinceLastRun: number): Promise<boolean>; onUpdate(timeSinceLastRun: number): Promise<boolean>;

View File

@ -1,6 +1,7 @@
import { GameController } from "@spt-aki/controllers/GameController"; import { GameController } from "@spt-aki/controllers/GameController";
import { OnLoad } from "@spt-aki/di/OnLoad"; import { OnLoad } from "@spt-aki/di/OnLoad";
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { ICheckVersionResponse } from "@spt-aki/models/eft/game/ICheckVersionResponse"; import { ICheckVersionResponse } from "@spt-aki/models/eft/game/ICheckVersionResponse";
import { ICurrentGroupResponse } from "@spt-aki/models/eft/game/ICurrentGroupResponse"; import { ICurrentGroupResponse } from "@spt-aki/models/eft/game/ICurrentGroupResponse";
import { IGameConfigResponse } from "@spt-aki/models/eft/game/IGameConfigResponse"; import { IGameConfigResponse } from "@spt-aki/models/eft/game/IGameConfigResponse";
@ -10,7 +11,6 @@ import { IGameLogoutResponseData } from "@spt-aki/models/eft/game/IGameLogoutRes
import { IGameStartResponse } from "@spt-aki/models/eft/game/IGameStartResponse"; import { IGameStartResponse } from "@spt-aki/models/eft/game/IGameStartResponse";
import { IGetRaidTimeRequest } from "@spt-aki/models/eft/game/IGetRaidTimeRequest"; import { IGetRaidTimeRequest } from "@spt-aki/models/eft/game/IGetRaidTimeRequest";
import { IGetRaidTimeResponse } from "@spt-aki/models/eft/game/IGetRaidTimeResponse"; import { IGetRaidTimeResponse } from "@spt-aki/models/eft/game/IGetRaidTimeResponse";
import { IReportNicknameRequestData } from "@spt-aki/models/eft/game/IReportNicknameRequestData";
import { IServerDetails } from "@spt-aki/models/eft/game/IServerDetails"; import { IServerDetails } from "@spt-aki/models/eft/game/IServerDetails";
import { IVersionValidateRequestData } from "@spt-aki/models/eft/game/IVersionValidateRequestData"; import { IVersionValidateRequestData } from "@spt-aki/models/eft/game/IVersionValidateRequestData";
import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData"; import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData";
@ -69,7 +69,7 @@ export declare class GameCallbacks implements OnLoad {
* @returns string * @returns string
*/ */
getVersion(url: string, info: IEmptyRequestData, sessionID: string): string; getVersion(url: string, info: IEmptyRequestData, sessionID: string): string;
reportNickname(url: string, info: IReportNicknameRequestData, sessionID: string): INullResponseData; reportNickname(url: string, info: IUIDRequestData, sessionID: string): INullResponseData;
/** /**
* Handle singleplayer/settings/getRaidTime * Handle singleplayer/settings/getRaidTime
* @returns string * @returns string

View File

@ -1,9 +1,9 @@
import { NotifierController } from "@spt-aki/controllers/NotifierController"; import { NotifierController } from "@spt-aki/controllers/NotifierController";
import { HttpServerHelper } from "@spt-aki/helpers/HttpServerHelper"; import { HttpServerHelper } from "@spt-aki/helpers/HttpServerHelper";
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData"; import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData";
import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier"; import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier";
import { ISelectProfileRequestData } from "@spt-aki/models/eft/notifier/ISelectProfileRequestData";
import { ISelectProfileResponse } from "@spt-aki/models/eft/notifier/ISelectProfileResponse"; import { ISelectProfileResponse } from "@spt-aki/models/eft/notifier/ISelectProfileResponse";
import { HttpResponseUtil } from "@spt-aki/utils/HttpResponseUtil"; import { HttpResponseUtil } from "@spt-aki/utils/HttpResponseUtil";
import { JsonUtil } from "@spt-aki/utils/JsonUtil"; import { JsonUtil } from "@spt-aki/utils/JsonUtil";
@ -29,6 +29,6 @@ export declare class NotifierCallbacks {
* Handle client/game/profile/select * Handle client/game/profile/select
* @returns ISelectProfileResponse * @returns ISelectProfileResponse
*/ */
selectProfile(url: string, info: ISelectProfileRequestData, sessionID: string): IGetBodyResponseData<ISelectProfileResponse>; selectProfile(url: string, info: IUIDRequestData, sessionID: string): IGetBodyResponseData<ISelectProfileResponse>;
notify(url: string, info: any, sessionID: string): string; notify(url: string, info: any, sessionID: string): string;
} }

View File

@ -26,7 +26,7 @@ export declare class BuildController {
saveWeaponBuild(sessionId: string, body: IPresetBuildActionRequestData): void; saveWeaponBuild(sessionId: string, body: IPresetBuildActionRequestData): void;
/** Handle client/builds/equipment/save event */ /** Handle client/builds/equipment/save event */
saveEquipmentBuild(sessionID: string, request: IPresetBuildActionRequestData): void; saveEquipmentBuild(sessionID: string, request: IPresetBuildActionRequestData): void;
/** Handle client/builds/delete*/ /** Handle client/builds/delete */
removeBuild(sessionID: string, request: IRemoveBuildRequestData): void; removeBuild(sessionID: string, request: IRemoveBuildRequestData): void;
protected removePlayerBuild(idToRemove: string, sessionID: string): void; protected removePlayerBuild(idToRemove: string, sessionID: string): void;
/** /**

View File

@ -63,7 +63,7 @@ export declare class RepeatableQuestController {
* @param {string} _info Request from client * @param {string} _info Request from client
* @param {string} sessionID Player's session id * @param {string} sessionID Player's session id
* *
* @returns {array} Array of "repeatableQuestObjects" as descibed above * @returns {array} Array of "repeatableQuestObjects" as described above
*/ */
getClientRepeatableQuests(_info: IEmptyRequestData, sessionID: string): IPmcDataRepeatableQuest[]; getClientRepeatableQuests(_info: IEmptyRequestData, sessionID: string): IPmcDataRepeatableQuest[];
/** /**

View File

@ -10,8 +10,8 @@ import { Inventory } from "@spt-aki/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt-aki/models/eft/common/tables/IItem"; import { Item, Upd } from "@spt-aki/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemDirectRequest"; import { IAddItemDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt-aki/models/eft/inventory/IAddItemRequestData"; import { AddItem } from "@spt-aki/models/eft/inventory/IAddItemRequestData";
import { IAddItemTempObject } from "@spt-aki/models/eft/inventory/IAddItemTempObject";
import { IAddItemsDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemsDirectRequest"; import { IAddItemsDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt-aki/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt-aki/models/eft/inventory/IInventoryMergeRequestData"; import { IInventoryMergeRequestData } from "@spt-aki/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryMoveRequestData"; import { IInventoryMoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryRemoveRequestData"; import { IInventoryRemoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryRemoveRequestData";

View File

@ -922,7 +922,7 @@ export interface IBtrMapConfig {
mapID: string; mapID: string;
pathsConfigurations: IBtrMapConfig[]; pathsConfigurations: IBtrMapConfig[];
} }
export interface IBtrMapConfig { export interface IBtrPathConfig {
id: string; id: string;
enterPoint: string; enterPoint: string;
exitPoint: string; exitPoint: string;

View File

@ -0,0 +1,3 @@
export interface IUIDRequestData {
uid: string;
}

View File

@ -373,7 +373,7 @@ export interface IQuestStatus {
startTime: number; startTime: number;
status: QuestStatus; status: QuestStatus;
statusTimers?: Record<string, number>; statusTimers?: Record<string, number>;
/** Property does not exist in live profile data, but is used by ProfileChanges.questsStatus when sent to client*/ /** Property does not exist in live profile data, but is used by ProfileChanges.questsStatus when sent to client */
completedConditions?: string[]; completedConditions?: string[];
availableAfter?: number; availableAfter?: number;
} }

View File

@ -1,7 +1,7 @@
import { IPmcData } from "@spt-aki/models/eft/common/IPmcData"; import { IPmcData } from "@spt-aki/models/eft/common/IPmcData";
import { Dialogue, IUserBuilds } from "@spt-aki/models/eft/profile/IAkiProfile"; import { Dialogue, IUserBuilds } from "@spt-aki/models/eft/profile/IAkiProfile";
export interface IProfileTemplates { export interface IProfileTemplates {
Standard: IProfileSides; "Standard": IProfileSides;
"Left Behind": IProfileSides; "Left Behind": IProfileSides;
"Prepare To Escape": IProfileSides; "Prepare To Escape": IProfileSides;
"Edge Of Darkness": IProfileSides; "Edge Of Darkness": IProfileSides;

View File

@ -1,3 +0,0 @@
export interface IReportNicknameRequestData {
uid: string;
}

View File

@ -1,14 +1,14 @@
import { Effect } from "@spt-aki/models/eft/health/Effect"; import { Effect } from "@spt-aki/models/eft/health/Effect";
import { BodyPart } from "@spt-aki/models/eft/health/IOffraidHealRequestData"; import { BodyPart } from "@spt-aki/models/eft/health/IOffraidHealRequestData";
import { HideoutAreas } from "@spt-aki/models/enums/HideoutAreas";
import { SkillTypes } from "@spt-aki/models/enums/SkillTypes";
import { Traders } from "@spt-aki/models/enums/Traders";
import { QteActivityType } from "@spt-aki/models/enums/hideout/QteActivityType"; import { QteActivityType } from "@spt-aki/models/enums/hideout/QteActivityType";
import { QteEffectType } from "@spt-aki/models/enums/hideout/QteEffectType"; import { QteEffectType } from "@spt-aki/models/enums/hideout/QteEffectType";
import { QteResultType } from "@spt-aki/models/enums/hideout/QteResultType"; import { QteResultType } from "@spt-aki/models/enums/hideout/QteResultType";
import { QteRewardType } from "@spt-aki/models/enums/hideout/QteRewardType"; import { QteRewardType } from "@spt-aki/models/enums/hideout/QteRewardType";
import { QteType } from "@spt-aki/models/enums/hideout/QteType"; import { QteType } from "@spt-aki/models/enums/hideout/QteType";
import { RequirementType } from "@spt-aki/models/enums/hideout/RequirementType"; import { RequirementType } from "@spt-aki/models/enums/hideout/RequirementType";
import { HideoutAreas } from "@spt-aki/models/enums/HideoutAreas";
import { SkillTypes } from "@spt-aki/models/enums/SkillTypes";
import { Traders } from "@spt-aki/models/enums/Traders";
export interface IQteData { export interface IQteData {
id: string; id: string;
type: QteActivityType; type: QteActivityType;

View File

@ -1,3 +0,0 @@
export interface ISelectProfileRequestData {
uid: string;
}

View File

@ -34,7 +34,7 @@ export declare enum SkillTypes {
NIGHT_OPS = "NightOps", NIGHT_OPS = "NightOps",
SILENT_OPS = "SilentOps", SILENT_OPS = "SilentOps",
LOCKPICKING = "Lockpicking", LOCKPICKING = "Lockpicking",
/** Also called Weapon Maintenance*/ /** Also called Weapon Maintenance */
WEAPON_TREATMENT = "WeaponTreatment", WEAPON_TREATMENT = "WeaponTreatment",
MAG_DRILLS = "MagDrills", MAG_DRILLS = "MagDrills",
FREE_TRADING = "Freetrading", FREE_TRADING = "Freetrading",

View File

@ -1,7 +1,7 @@
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData"; import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData";
import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier"; import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier";
import { ISelectProfileRequestData } from "@spt-aki/models/eft/notifier/ISelectProfileRequestData";
export interface INotifierCallbacks { export interface INotifierCallbacks {
/** /**
* If we don't have anything to send, it's ok to not send anything back * If we don't have anything to send, it's ok to not send anything back
@ -12,6 +12,6 @@ export interface INotifierCallbacks {
sendNotification(sessionID: string, req: any, resp: any, data: any): void; sendNotification(sessionID: string, req: any, resp: any, data: any): void;
getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData<any[]>; getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData<any[]>;
createNotifierChannel(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<INotifierChannel>; createNotifierChannel(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<INotifierChannel>;
selectProfile(url: string, info: ISelectProfileRequestData, sessionID: string): IGetBodyResponseData<any>; selectProfile(url: string, info: IUIDRequestData, sessionID: string): IGetBodyResponseData<any>;
notify(url: string, info: any, sessionID: string): string; notify(url: string, info: any, sessionID: string): string;
} }

View File

@ -175,7 +175,7 @@ export interface IRandomisedResourceDetails {
meds: IRandomisedResourceValues; meds: IRandomisedResourceValues;
} }
export interface IRandomisedResourceValues { export interface IRandomisedResourceValues {
/** Minimum percent of item to randomized between min and max resource*/ /** Minimum percent of item to randomized between min and max resource */
resourcePercent: number; resourcePercent: number;
/** Chance for randomization to not occur */ /** Chance for randomization to not occur */
chanceMaxResourcePercent: number; chanceMaxResourcePercent: number;

View File

@ -51,7 +51,7 @@ export interface IRelease {
export interface IGameFixes { export interface IGameFixes {
/** Shotguns use a different value than normal guns causing huge pellet dispersion */ /** Shotguns use a different value than normal guns causing huge pellet dispersion */
fixShotgunDispersion: boolean; fixShotgunDispersion: boolean;
/** Remove items added by mods when the mod no longer exists - can fix dead profiles stuck at game load*/ /** Remove items added by mods when the mod no longer exists - can fix dead profiles stuck at game load */
removeModItemsFromProfile: boolean; removeModItemsFromProfile: boolean;
/** Fix issues that cause the game to not start due to inventory item issues */ /** Fix issues that cause the game to not start due to inventory item issues */
fixProfileBreakingInventoryItemIssues: boolean; fixProfileBreakingInventoryItemIssues: boolean;

View File

@ -21,17 +21,17 @@ export interface ILocationConfig extends IBaseConfig {
fitLootIntoContainerAttempts: number; fitLootIntoContainerAttempts: number;
/** Add all possible zones to each maps `OpenZones` property */ /** Add all possible zones to each maps `OpenZones` property */
addOpenZonesToAllMaps: boolean; addOpenZonesToAllMaps: boolean;
/** Allow addition of custom bot waves designed by SPT to be added to maps - defined in configs/location.json.customWaves*/ /** Allow addition of custom bot waves designed by SPT to be added to maps - defined in configs/location.json.customWaves */
addCustomBotWavesToMaps: boolean; addCustomBotWavesToMaps: boolean;
/** Should the limits defined inside botTypeLimits to appled to locations on game start */ /** Should the limits defined inside botTypeLimits to appled to locations on game start */
enableBotTypeLimits: boolean; enableBotTypeLimits: boolean;
/** Add limits to a locations base.MinMaxBots array if enableBotTypeLimits is true*/ /** Add limits to a locations base.MinMaxBots array if enableBotTypeLimits is true */
botTypeLimits: Record<string, IBotTypeLimit[]>; botTypeLimits: Record<string, IBotTypeLimit[]>;
/** container randomisation settings */ /** container randomisation settings */
containerRandomisationSettings: IContainerRandomistionSettings; containerRandomisationSettings: IContainerRandomistionSettings;
/** How full must a random loose magazine be %*/ /** How full must a random loose magazine be % */
minFillLooseMagazinePercent: number; minFillLooseMagazinePercent: number;
/** How full must a random static magazine be %*/ /** How full must a random static magazine be % */
minFillStaticMagazinePercent: number; minFillStaticMagazinePercent: number;
allowDuplicateItemsInStaticContainers: boolean; allowDuplicateItemsInStaticContainers: boolean;
/** Chance loose magazines have ammo in them TODO - rename to dynamicMagazineLootHasAmmoChancePercent */ /** Chance loose magazines have ammo in them TODO - rename to dynamicMagazineLootHasAmmoChancePercent */
@ -40,11 +40,11 @@ export interface ILocationConfig extends IBaseConfig {
staticMagazineLootHasAmmoChancePercent: number; staticMagazineLootHasAmmoChancePercent: number;
/** Key: map, value: loose loot ids to ignore */ /** Key: map, value: loose loot ids to ignore */
looseLootBlacklist: Record<string, string[]>; looseLootBlacklist: Record<string, string[]>;
/** Key: map, value: settings to control how long scav raids are*/ /** Key: map, value: settings to control how long scav raids are */
scavRaidTimeSettings: IScavRaidTimeSettings; scavRaidTimeSettings: IScavRaidTimeSettings;
/** Settings to adjust mods for lootable equipment in raid */ /** Settings to adjust mods for lootable equipment in raid */
equipmentLootSettings: IEquipmentLootSettings; equipmentLootSettings: IEquipmentLootSettings;
/** Sets the max Patrol Value of the Boxzone on the map Ground Zero*/ /** Sets the max Patrol Value of the Boxzone on the map Ground Zero */
sandboxMaxPatrolvalue: number; sandboxMaxPatrolvalue: number;
} }
export interface IEquipmentLootSettings { export interface IEquipmentLootSettings {

View File

@ -8,7 +8,7 @@ export interface IRagfairConfig extends IBaseConfig {
runIntervalValues: IRunIntervalValues; runIntervalValues: IRunIntervalValues;
/** Player listing settings */ /** Player listing settings */
sell: Sell; sell: Sell;
/** Trader ids + should their assorts be listed on flea*/ /** Trader ids + should their assorts be listed on flea */
traders: Record<string, boolean>; traders: Record<string, boolean>;
dynamic: Dynamic; dynamic: Dynamic;
} }
@ -19,7 +19,7 @@ export interface Sell {
chance: Chance; chance: Chance;
/** Settings to control how long it takes for a player offer to sell */ /** Settings to control how long it takes for a player offer to sell */
time: MinMax; time: MinMax;
/**Seconds from clicking remove to remove offer from market */ /** Seconds from clicking remove to remove offer from market */
expireSeconds: number; expireSeconds: number;
} }
export interface Chance { export interface Chance {

View File

@ -31,7 +31,7 @@ export interface FenceConfig {
/** Key: item tpl */ /** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>; itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>; itemTypeLimits: Record<string, number>;
/** Prevent duplicate offers of items of specific categories by parentId*/ /** Prevent duplicate offers of items of specific categories by parentId */
preventDuplicateOffersOfCategory: string[]; preventDuplicateOffersOfCategory: string[];
regenerateAssortsOnRefresh: boolean; regenerateAssortsOnRefresh: boolean;
/** Max rouble price before item is not listed on flea */ /** Max rouble price before item is not listed on flea */

View File

@ -6,8 +6,8 @@ import { IHttpConfig } from "@spt-aki/models/spt/config/IHttpConfig";
import { ILogger } from "@spt-aki/models/spt/utils/ILogger"; import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
import { ConfigServer } from "@spt-aki/servers/ConfigServer"; import { ConfigServer } from "@spt-aki/servers/ConfigServer";
import { DatabaseServer } from "@spt-aki/servers/DatabaseServer"; import { DatabaseServer } from "@spt-aki/servers/DatabaseServer";
import { WebSocketServer } from "@spt-aki/servers/WebSocketServer";
import { IHttpListener } from "@spt-aki/servers/http/IHttpListener"; import { IHttpListener } from "@spt-aki/servers/http/IHttpListener";
import { WebSocketServer } from "@spt-aki/servers/WebSocketServer";
import { LocalisationService } from "@spt-aki/services/LocalisationService"; import { LocalisationService } from "@spt-aki/services/LocalisationService";
export declare class HttpServer { export declare class HttpServer {
protected logger: ILogger; protected logger: ILogger;

View File

@ -1,6 +1,7 @@
import { DialogueController } from "@spt-aki/controllers/DialogueController"; import { DialogueController } from "@spt-aki/controllers/DialogueController";
import { OnUpdate } from "@spt-aki/di/OnUpdate"; import { OnUpdate } from "@spt-aki/di/OnUpdate";
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { IAcceptFriendRequestData, ICancelFriendRequestData, IDeclineFriendRequestData } from "@spt-aki/models/eft/dialog/IAcceptFriendRequestData"; import { IAcceptFriendRequestData, ICancelFriendRequestData, IDeclineFriendRequestData } from "@spt-aki/models/eft/dialog/IAcceptFriendRequestData";
import { IChatServer } from "@spt-aki/models/eft/dialog/IChatServer"; import { IChatServer } from "@spt-aki/models/eft/dialog/IChatServer";
import { IClearMailMessageRequest } from "@spt-aki/models/eft/dialog/IClearMailMessageRequest"; import { IClearMailMessageRequest } from "@spt-aki/models/eft/dialog/IClearMailMessageRequest";
@ -92,13 +93,9 @@ export declare class DialogueCallbacks implements OnUpdate {
/** Handle client/friend/delete */ /** Handle client/friend/delete */
deleteFriend(url: string, request: IDeleteFriendRequest, sessionID: string): INullResponseData; deleteFriend(url: string, request: IDeleteFriendRequest, sessionID: string): INullResponseData;
/** Handle client/friend/ignore/set */ /** Handle client/friend/ignore/set */
ignoreFriend(url: string, request: { ignoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData;
uid: string;
}, sessionID: string): INullResponseData;
/** Handle client/friend/ignore/remove */ /** Handle client/friend/ignore/remove */
unIgnoreFriend(url: string, request: { unIgnoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData;
uid: string;
}, sessionID: string): INullResponseData;
clearMail(url: string, request: IClearMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>; clearMail(url: string, request: IClearMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>;
removeMail(url: string, request: IRemoveMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>; removeMail(url: string, request: IRemoveMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>;
onUpdate(timeSinceLastRun: number): Promise<boolean>; onUpdate(timeSinceLastRun: number): Promise<boolean>;

View File

@ -1,6 +1,7 @@
import { GameController } from "@spt-aki/controllers/GameController"; import { GameController } from "@spt-aki/controllers/GameController";
import { OnLoad } from "@spt-aki/di/OnLoad"; import { OnLoad } from "@spt-aki/di/OnLoad";
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { ICheckVersionResponse } from "@spt-aki/models/eft/game/ICheckVersionResponse"; import { ICheckVersionResponse } from "@spt-aki/models/eft/game/ICheckVersionResponse";
import { ICurrentGroupResponse } from "@spt-aki/models/eft/game/ICurrentGroupResponse"; import { ICurrentGroupResponse } from "@spt-aki/models/eft/game/ICurrentGroupResponse";
import { IGameConfigResponse } from "@spt-aki/models/eft/game/IGameConfigResponse"; import { IGameConfigResponse } from "@spt-aki/models/eft/game/IGameConfigResponse";
@ -10,7 +11,6 @@ import { IGameLogoutResponseData } from "@spt-aki/models/eft/game/IGameLogoutRes
import { IGameStartResponse } from "@spt-aki/models/eft/game/IGameStartResponse"; import { IGameStartResponse } from "@spt-aki/models/eft/game/IGameStartResponse";
import { IGetRaidTimeRequest } from "@spt-aki/models/eft/game/IGetRaidTimeRequest"; import { IGetRaidTimeRequest } from "@spt-aki/models/eft/game/IGetRaidTimeRequest";
import { IGetRaidTimeResponse } from "@spt-aki/models/eft/game/IGetRaidTimeResponse"; import { IGetRaidTimeResponse } from "@spt-aki/models/eft/game/IGetRaidTimeResponse";
import { IReportNicknameRequestData } from "@spt-aki/models/eft/game/IReportNicknameRequestData";
import { IServerDetails } from "@spt-aki/models/eft/game/IServerDetails"; import { IServerDetails } from "@spt-aki/models/eft/game/IServerDetails";
import { IVersionValidateRequestData } from "@spt-aki/models/eft/game/IVersionValidateRequestData"; import { IVersionValidateRequestData } from "@spt-aki/models/eft/game/IVersionValidateRequestData";
import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData"; import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData";
@ -69,7 +69,7 @@ export declare class GameCallbacks implements OnLoad {
* @returns string * @returns string
*/ */
getVersion(url: string, info: IEmptyRequestData, sessionID: string): string; getVersion(url: string, info: IEmptyRequestData, sessionID: string): string;
reportNickname(url: string, info: IReportNicknameRequestData, sessionID: string): INullResponseData; reportNickname(url: string, info: IUIDRequestData, sessionID: string): INullResponseData;
/** /**
* Handle singleplayer/settings/getRaidTime * Handle singleplayer/settings/getRaidTime
* @returns string * @returns string

View File

@ -1,9 +1,9 @@
import { NotifierController } from "@spt-aki/controllers/NotifierController"; import { NotifierController } from "@spt-aki/controllers/NotifierController";
import { HttpServerHelper } from "@spt-aki/helpers/HttpServerHelper"; import { HttpServerHelper } from "@spt-aki/helpers/HttpServerHelper";
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData"; import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData";
import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier"; import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier";
import { ISelectProfileRequestData } from "@spt-aki/models/eft/notifier/ISelectProfileRequestData";
import { ISelectProfileResponse } from "@spt-aki/models/eft/notifier/ISelectProfileResponse"; import { ISelectProfileResponse } from "@spt-aki/models/eft/notifier/ISelectProfileResponse";
import { HttpResponseUtil } from "@spt-aki/utils/HttpResponseUtil"; import { HttpResponseUtil } from "@spt-aki/utils/HttpResponseUtil";
import { JsonUtil } from "@spt-aki/utils/JsonUtil"; import { JsonUtil } from "@spt-aki/utils/JsonUtil";
@ -29,6 +29,6 @@ export declare class NotifierCallbacks {
* Handle client/game/profile/select * Handle client/game/profile/select
* @returns ISelectProfileResponse * @returns ISelectProfileResponse
*/ */
selectProfile(url: string, info: ISelectProfileRequestData, sessionID: string): IGetBodyResponseData<ISelectProfileResponse>; selectProfile(url: string, info: IUIDRequestData, sessionID: string): IGetBodyResponseData<ISelectProfileResponse>;
notify(url: string, info: any, sessionID: string): string; notify(url: string, info: any, sessionID: string): string;
} }

View File

@ -26,7 +26,7 @@ export declare class BuildController {
saveWeaponBuild(sessionId: string, body: IPresetBuildActionRequestData): void; saveWeaponBuild(sessionId: string, body: IPresetBuildActionRequestData): void;
/** Handle client/builds/equipment/save event */ /** Handle client/builds/equipment/save event */
saveEquipmentBuild(sessionID: string, request: IPresetBuildActionRequestData): void; saveEquipmentBuild(sessionID: string, request: IPresetBuildActionRequestData): void;
/** Handle client/builds/delete*/ /** Handle client/builds/delete */
removeBuild(sessionID: string, request: IRemoveBuildRequestData): void; removeBuild(sessionID: string, request: IRemoveBuildRequestData): void;
protected removePlayerBuild(idToRemove: string, sessionID: string): void; protected removePlayerBuild(idToRemove: string, sessionID: string): void;
/** /**

View File

@ -63,7 +63,7 @@ export declare class RepeatableQuestController {
* @param {string} _info Request from client * @param {string} _info Request from client
* @param {string} sessionID Player's session id * @param {string} sessionID Player's session id
* *
* @returns {array} Array of "repeatableQuestObjects" as descibed above * @returns {array} Array of "repeatableQuestObjects" as described above
*/ */
getClientRepeatableQuests(_info: IEmptyRequestData, sessionID: string): IPmcDataRepeatableQuest[]; getClientRepeatableQuests(_info: IEmptyRequestData, sessionID: string): IPmcDataRepeatableQuest[];
/** /**

View File

@ -10,8 +10,8 @@ import { Inventory } from "@spt-aki/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt-aki/models/eft/common/tables/IItem"; import { Item, Upd } from "@spt-aki/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemDirectRequest"; import { IAddItemDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt-aki/models/eft/inventory/IAddItemRequestData"; import { AddItem } from "@spt-aki/models/eft/inventory/IAddItemRequestData";
import { IAddItemTempObject } from "@spt-aki/models/eft/inventory/IAddItemTempObject";
import { IAddItemsDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemsDirectRequest"; import { IAddItemsDirectRequest } from "@spt-aki/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt-aki/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt-aki/models/eft/inventory/IInventoryMergeRequestData"; import { IInventoryMergeRequestData } from "@spt-aki/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryMoveRequestData"; import { IInventoryMoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryRemoveRequestData"; import { IInventoryRemoveRequestData } from "@spt-aki/models/eft/inventory/IInventoryRemoveRequestData";

View File

@ -922,7 +922,7 @@ export interface IBtrMapConfig {
mapID: string; mapID: string;
pathsConfigurations: IBtrMapConfig[]; pathsConfigurations: IBtrMapConfig[];
} }
export interface IBtrMapConfig { export interface IBtrPathConfig {
id: string; id: string;
enterPoint: string; enterPoint: string;
exitPoint: string; exitPoint: string;

View File

@ -0,0 +1,3 @@
export interface IUIDRequestData {
uid: string;
}

View File

@ -373,7 +373,7 @@ export interface IQuestStatus {
startTime: number; startTime: number;
status: QuestStatus; status: QuestStatus;
statusTimers?: Record<string, number>; statusTimers?: Record<string, number>;
/** Property does not exist in live profile data, but is used by ProfileChanges.questsStatus when sent to client*/ /** Property does not exist in live profile data, but is used by ProfileChanges.questsStatus when sent to client */
completedConditions?: string[]; completedConditions?: string[];
availableAfter?: number; availableAfter?: number;
} }

View File

@ -1,7 +1,7 @@
import { IPmcData } from "@spt-aki/models/eft/common/IPmcData"; import { IPmcData } from "@spt-aki/models/eft/common/IPmcData";
import { Dialogue, IUserBuilds } from "@spt-aki/models/eft/profile/IAkiProfile"; import { Dialogue, IUserBuilds } from "@spt-aki/models/eft/profile/IAkiProfile";
export interface IProfileTemplates { export interface IProfileTemplates {
Standard: IProfileSides; "Standard": IProfileSides;
"Left Behind": IProfileSides; "Left Behind": IProfileSides;
"Prepare To Escape": IProfileSides; "Prepare To Escape": IProfileSides;
"Edge Of Darkness": IProfileSides; "Edge Of Darkness": IProfileSides;

View File

@ -1,3 +0,0 @@
export interface IReportNicknameRequestData {
uid: string;
}

View File

@ -1,14 +1,14 @@
import { Effect } from "@spt-aki/models/eft/health/Effect"; import { Effect } from "@spt-aki/models/eft/health/Effect";
import { BodyPart } from "@spt-aki/models/eft/health/IOffraidHealRequestData"; import { BodyPart } from "@spt-aki/models/eft/health/IOffraidHealRequestData";
import { HideoutAreas } from "@spt-aki/models/enums/HideoutAreas";
import { SkillTypes } from "@spt-aki/models/enums/SkillTypes";
import { Traders } from "@spt-aki/models/enums/Traders";
import { QteActivityType } from "@spt-aki/models/enums/hideout/QteActivityType"; import { QteActivityType } from "@spt-aki/models/enums/hideout/QteActivityType";
import { QteEffectType } from "@spt-aki/models/enums/hideout/QteEffectType"; import { QteEffectType } from "@spt-aki/models/enums/hideout/QteEffectType";
import { QteResultType } from "@spt-aki/models/enums/hideout/QteResultType"; import { QteResultType } from "@spt-aki/models/enums/hideout/QteResultType";
import { QteRewardType } from "@spt-aki/models/enums/hideout/QteRewardType"; import { QteRewardType } from "@spt-aki/models/enums/hideout/QteRewardType";
import { QteType } from "@spt-aki/models/enums/hideout/QteType"; import { QteType } from "@spt-aki/models/enums/hideout/QteType";
import { RequirementType } from "@spt-aki/models/enums/hideout/RequirementType"; import { RequirementType } from "@spt-aki/models/enums/hideout/RequirementType";
import { HideoutAreas } from "@spt-aki/models/enums/HideoutAreas";
import { SkillTypes } from "@spt-aki/models/enums/SkillTypes";
import { Traders } from "@spt-aki/models/enums/Traders";
export interface IQteData { export interface IQteData {
id: string; id: string;
type: QteActivityType; type: QteActivityType;

View File

@ -1,3 +0,0 @@
export interface ISelectProfileRequestData {
uid: string;
}

View File

@ -34,7 +34,7 @@ export declare enum SkillTypes {
NIGHT_OPS = "NightOps", NIGHT_OPS = "NightOps",
SILENT_OPS = "SilentOps", SILENT_OPS = "SilentOps",
LOCKPICKING = "Lockpicking", LOCKPICKING = "Lockpicking",
/** Also called Weapon Maintenance*/ /** Also called Weapon Maintenance */
WEAPON_TREATMENT = "WeaponTreatment", WEAPON_TREATMENT = "WeaponTreatment",
MAG_DRILLS = "MagDrills", MAG_DRILLS = "MagDrills",
FREE_TRADING = "Freetrading", FREE_TRADING = "Freetrading",

View File

@ -1,7 +1,7 @@
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { IUIDRequestData } from "@spt-aki/models/eft/common/request/IUIDRequestData";
import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData"; import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData";
import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier"; import { INotifierChannel } from "@spt-aki/models/eft/notifier/INotifier";
import { ISelectProfileRequestData } from "@spt-aki/models/eft/notifier/ISelectProfileRequestData";
export interface INotifierCallbacks { export interface INotifierCallbacks {
/** /**
* If we don't have anything to send, it's ok to not send anything back * If we don't have anything to send, it's ok to not send anything back
@ -12,6 +12,6 @@ export interface INotifierCallbacks {
sendNotification(sessionID: string, req: any, resp: any, data: any): void; sendNotification(sessionID: string, req: any, resp: any, data: any): void;
getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData<any[]>; getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData<any[]>;
createNotifierChannel(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<INotifierChannel>; createNotifierChannel(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<INotifierChannel>;
selectProfile(url: string, info: ISelectProfileRequestData, sessionID: string): IGetBodyResponseData<any>; selectProfile(url: string, info: IUIDRequestData, sessionID: string): IGetBodyResponseData<any>;
notify(url: string, info: any, sessionID: string): string; notify(url: string, info: any, sessionID: string): string;
} }

View File

@ -175,7 +175,7 @@ export interface IRandomisedResourceDetails {
meds: IRandomisedResourceValues; meds: IRandomisedResourceValues;
} }
export interface IRandomisedResourceValues { export interface IRandomisedResourceValues {
/** Minimum percent of item to randomized between min and max resource*/ /** Minimum percent of item to randomized between min and max resource */
resourcePercent: number; resourcePercent: number;
/** Chance for randomization to not occur */ /** Chance for randomization to not occur */
chanceMaxResourcePercent: number; chanceMaxResourcePercent: number;

Some files were not shown because too many files have changed in this diff Show More