From 3aa2cbee096d9331fd833252c982a5737f3269d9 Mon Sep 17 00:00:00 2001 From: Chomp Date: Sat, 2 Jul 2022 16:55:17 +0100 Subject: [PATCH] Add new example --- TypeScript/14AfterDBLoadHook/.eslintignore | 9 + TypeScript/14AfterDBLoadHook/.eslintrc.json | 75 ++ TypeScript/14AfterDBLoadHook/README.md | 64 + .../14AfterDBLoadHook/mod.code-workspace | 12 + TypeScript/14AfterDBLoadHook/package.json | 25 + TypeScript/14AfterDBLoadHook/src/mod.js | 37 + TypeScript/14AfterDBLoadHook/src/mod.ts | 52 + TypeScript/14AfterDBLoadHook/tsconfig.json | 25 + .../14AfterDBLoadHook/types/Program.d.ts | 4 + TypeScript/14AfterDBLoadHook/types/TYPES.d.ts | 3 + .../types/callbacks/BotCallbacks.d.ts | 15 + .../types/callbacks/BundleCallbacks.d.ts | 18 + .../callbacks/CustomizationCallbacks.d.ts | 23 + .../types/callbacks/DataCallbacks.d.ts | 32 + .../types/callbacks/DialogueCallbacks.d.ts | 45 + .../types/callbacks/GameCallbacks.d.ts | 24 + .../types/callbacks/HandbookCallbacks.d.ts | 8 + .../types/callbacks/HealthCallbacks.d.ts | 20 + .../types/callbacks/HideoutCallbacks.d.ts | 33 + .../types/callbacks/HttpCallbacks.d.ts | 9 + .../types/callbacks/InraidCallbacks.d.ts | 23 + .../types/callbacks/InsuranceCallbacks.d.ts | 24 + .../types/callbacks/InventoryCallbacks.d.ts | 39 + .../types/callbacks/ItemEventCallbacks.d.ts | 11 + .../types/callbacks/LauncherCallbacks.d.ts | 28 + .../types/callbacks/LocationCallbacks.d.ts | 14 + .../types/callbacks/MatchCallbacks.d.ts | 35 + .../types/callbacks/ModCallbacks.d.ts | 22 + .../types/callbacks/NoteCallbacks.d.ts | 11 + .../types/callbacks/NotifierCallbacks.d.ts | 24 + .../types/callbacks/PresetBuildCallbacks.d.ts | 15 + .../types/callbacks/PresetCallbacks.d.ts | 8 + .../types/callbacks/ProfileCallbacks.d.ts | 30 + .../types/callbacks/QuestCallbacks.d.ts | 26 + .../types/callbacks/RagfairCallbacks.d.ts | 39 + .../types/callbacks/RepairCallbacks.d.ts | 11 + .../types/callbacks/SaveCallbacks.d.ts | 9 + .../types/callbacks/TradeCallbacks.d.ts | 11 + .../types/callbacks/TraderCallbacks.d.ts | 18 + .../types/callbacks/WeatherCallbacks.d.ts | 10 + .../types/callbacks/WishlistCallbacks.d.ts | 10 + .../types/controllers/BotController.d.ts | 35 + .../controllers/CustomizationController.d.ts | 22 + .../types/controllers/DialogueController.d.ts | 25 + .../types/controllers/GameController.d.ts | 37 + .../types/controllers/HandbookController.d.ts | 8 + .../types/controllers/HealthController.d.ts | 25 + .../types/controllers/HideoutController.d.ts | 68 + .../types/controllers/InraidController.d.ts | 31 + .../controllers/InsuranceController.d.ts | 38 + .../controllers/InventoryController.d.ts | 107 ++ .../types/controllers/LauncherController.d.ts | 28 + .../types/controllers/LocationController.d.ts | 18 + .../types/controllers/MatchController.d.ts | 30 + .../types/controllers/NoteController.d.ts | 12 + .../types/controllers/NotifierController.d.ts | 22 + .../controllers/PresetBuildController.d.ts | 18 + .../types/controllers/PresetController.d.ts | 8 + .../types/controllers/ProfileController.d.ts | 34 + .../types/controllers/QuestController.d.ts | 76 ++ .../types/controllers/RagfairController.d.ts | 70 + .../types/controllers/RepairController.d.ts | 42 + .../RepeatableQuestController.d.ts | 219 +++ .../types/controllers/TradeController.d.ts | 21 + .../types/controllers/TraderController.d.ts | 26 + .../types/controllers/WeatherController.d.ts | 11 + .../types/controllers/WishlistController.d.ts | 10 + .../14AfterDBLoadHook/types/di/Container.d.ts | 14 + .../14AfterDBLoadHook/types/di/OnLoad.d.ts | 4 + .../types/di/OnLoadOnUpdate.d.ts | 7 + .../14AfterDBLoadHook/types/di/OnUpdate.d.ts | 4 + .../14AfterDBLoadHook/types/di/Router.d.ts | 40 + .../types/di/Serializer.d.ts | 5 + .../types/generators/BotGenerator.d.ts | 46 + .../generators/BotInventoryGenerator.d.ts | 24 + .../types/generators/BotLootGenerator.d.ts | 29 + .../types/generators/BotWeaponGenerator.d.ts | 88 ++ .../types/generators/LocationGenerator.d.ts | 46 + .../types/generators/PMCLootGenerator.d.ts | 15 + .../generators/RagfairAssortGenerator.d.ts | 25 + .../generators/RagfairOfferGenerator.d.ts | 60 + .../types/generators/WeatherGenerator.d.ts | 33 + .../types/helpers/AssortHelper.d.ts | 36 + .../types/helpers/BotGeneratorHelper.d.ts | 125 ++ .../types/helpers/BotHelper.d.ts | 44 + .../types/helpers/ContainerHelper.d.ts | 12 + .../types/helpers/DialogueHelper.d.ts | 21 + .../types/helpers/DurabilityLimitsHelper.d.ts | 26 + .../types/helpers/ExtendedProfileHelper.d.ts | 22 + .../types/helpers/GameEventHelper.d.ts | 9 + .../types/helpers/GameHelper.d.ts | 11 + .../types/helpers/HandbookHelper.d.ts | 33 + .../types/helpers/HealthHelper.d.ts | 27 + .../types/helpers/HideoutHelper.d.ts | 68 + .../types/helpers/HttpServerHelper.d.ts | 23 + .../types/helpers/InRaidHelper.d.ts | 33 + .../types/helpers/InventoryHelper.d.ts | 85 ++ .../types/helpers/ItemHelper.d.ts | 152 +++ .../types/helpers/NotificationSendHelper.d.ts | 12 + .../types/helpers/NotifierHelper.d.ts | 17 + .../types/helpers/PaymentHelper.d.ts | 14 + .../types/helpers/PresetHelper.d.ts | 14 + .../types/helpers/ProbabilityHelper.d.ts | 14 + .../types/helpers/ProfileHelper.d.ts | 33 + .../types/helpers/QuestConditionHelper.d.ts | 7 + .../types/helpers/QuestHelper.d.ts | 88 ++ .../types/helpers/RagfairHelper.d.ts | 43 + .../types/helpers/RagfairOfferHelper.d.ts | 54 + .../types/helpers/RagfairSellHelper.d.ts | 16 + .../types/helpers/RagfairServerHelper.d.ts | 48 + .../types/helpers/RagfairSortHelper.d.ts | 14 + .../types/helpers/RagfairTaxHelper.d.ts | 16 + .../types/helpers/RepairHelper.d.ts | 21 + .../types/helpers/SecureContainerHelper.d.ts | 13 + .../types/helpers/TradeHelper.d.ts | 44 + .../types/helpers/TraderAssortHelper.d.ts | 42 + .../types/helpers/TraderHelper.d.ts | 96 ++ .../types/helpers/UtilityHelper.d.ts | 3 + .../types/helpers/WeightedRandomHelper.d.ts | 28 + .../types/ide/BleedingEdgeEntry.d.ts | 1 + .../14AfterDBLoadHook/types/ide/Compiler.d.ts | 1 + .../types/ide/DebugEntry.d.ts | 1 + .../types/ide/ReleaseEntry.d.ts | 1 + .../types/ide/TestEntry.d.ts | 1 + .../types/loaders/AfterDbModLoader.d.ts | 11 + .../types/loaders/BundleLoader.d.ts | 22 + .../types/loaders/DelayedModLoader.d.ts | 21 + .../types/loaders/InitialModLoader.d.ts | 64 + .../eft/bot/IGenerateBotsRequestData.d.ts | 8 + .../models/eft/common/IEmptyRequestData.d.ts | 2 + .../types/models/eft/common/IGlobals.d.ts | 1176 +++++++++++++++++ .../types/models/eft/common/ILocation.d.ts | 6 + .../models/eft/common/ILocationBase.d.ts | 198 +++ .../ILocationsSourceDestinationBase.d.ts | 9 + .../types/models/eft/common/ILooseLoot.d.ts | 45 + .../models/eft/common/IMetricsTableData.d.ts | 7 + .../types/models/eft/common/IPmcData.d.ts | 341 +++++ .../request/IBaseInteractionRequestData.d.ts | 9 + .../models/eft/common/tables/IBotBase.d.ts | 101 ++ .../models/eft/common/tables/IBotCore.d.ts | 133 ++ .../models/eft/common/tables/IBotType.d.ts | 176 +++ .../eft/common/tables/ICustomizationItem.d.ts | 33 + .../eft/common/tables/IHandbookBase.d.ts | 16 + .../types/models/eft/common/tables/IItem.d.ts | 108 ++ .../eft/common/tables/ILocationsBase.d.ts | 10 + .../models/eft/common/tables/ILootBase.d.ts | 64 + .../models/eft/common/tables/IMatch.d.ts | 10 + .../models/eft/common/tables/IQuest.d.ts | 110 ++ .../eft/common/tables/IRepeatableQuests.d.ts | 219 +++ .../eft/common/tables/ITemplateItem.d.ts | 451 +++++++ .../models/eft/common/tables/ITrader.d.ts | 90 ++ .../IBuyClothingRequestData.d.ts | 10 + .../IWearClothingRequestData.d.ts | 4 + .../models/eft/dialog/IFriendRequestData.d.ts | 3 + .../dialog/IGetAllAttachmentsRequestData.d.ts | 3 + .../dialog/IGetAllAttachmentsResponse.d.ts | 6 + .../dialog/IGetChatServerListRequestData.d.ts | 3 + .../dialog/IGetFriendListDataResponse.d.ts | 16 + .../dialog/IGetMailDialogInfoRequestData.d.ts | 3 + .../dialog/IGetMailDialogListRequestData.d.ts | 4 + .../dialog/IGetMailDialogViewRequestData.d.ts | 7 + .../IGetMailDialogViewResponseData.d.ts | 7 + .../eft/dialog/IPinDialogRequestData.d.ts | 3 + .../eft/dialog/IRemoveDialogRequestData.d.ts | 3 + .../eft/dialog/ISendMessageRequest.d.ts | 7 + .../eft/dialog/ISetDialogReadRequestData.d.ts | 3 + .../models/eft/game/IGameConfigResponse.d.ts | 19 + .../eft/game/IGameEmptyCrcRequestData.d.ts | 3 + .../eft/game/IVersionValidateRequestData.d.ts | 11 + .../health/IHealthTreatmentRequestData.d.ts | 29 + .../eft/health/IOffraidEatRequestData.d.ts | 7 + .../eft/health/IOffraidHealRequestData.d.ts | 18 + .../eft/health/ISyncHealthRequestData.d.ts | 21 + .../HideoutUpgradeCompleteRequestData.d.ts | 5 + .../models/eft/hideout/IHideoutArea.d.ts | 40 + ...utContinousProductionStartRequestData.d.ts | 5 + .../eft/hideout/IHideoutProduction.d.ts | 20 + .../hideout/IHideoutPutItemInRequestData.d.ts | 10 + .../models/eft/hideout/IHideoutScavCase.d.ts | 21 + .../IHideoutScavCaseStartRequestData.d.ts | 15 + .../eft/hideout/IHideoutSettingsBase.d.ts | 6 + ...deoutSingleProductionStartRequestData.d.ts | 10 + .../IHideoutTakeItemOutRequestData.d.ts | 6 + .../IHideoutTakeProductionRequestData.d.ts | 5 + .../IHideoutToggleAreaRequestData.d.ts | 6 + .../IHideoutUpgradeCompleteRequestData.d.ts | 5 + .../hideout/IHideoutUpgradeRequestData.d.ts | 10 + .../httpResponse/IGetBodyResponseData.d.ts | 5 + .../eft/httpResponse/INullResponseData.d.ts | 5 + .../inRaid/IRegisterPlayerRequestData.d.ts | 5 + .../eft/inRaid/ISaveProgressRequestData.d.ts | 8 + .../IGetInsuranceCostRequestData.d.ts | 4 + .../eft/insurance/IInsureRequestData.d.ts | 6 + .../eft/inventory/IAddItemRequestData.d.ts | 4 + .../inventory/IInventoryAddRequestData.d.ts | 6 + .../IInventoryBaseActionRequestData.d.ts | 27 + .../inventory/IInventoryBindRequestData.d.ts | 6 + .../IInventoryCreateMarkerRequestData.d.ts | 12 + .../IInventoryDeleteMarkerRequestData.d.ts | 7 + .../IInventoryEditMarkerRequestData.d.ts | 14 + .../IInventoryExamineRequestData.d.ts | 10 + .../inventory/IInventoryFoldRequestData.d.ts | 6 + .../inventory/IInventoryMergeRequestData.d.ts | 6 + .../inventory/IInventoryMoveRequestData.d.ts | 6 + ...IInventoryReadEncyclopediaRequestData.d.ts | 5 + .../IInventoryRemoveRequestData.d.ts | 5 + .../inventory/IInventorySortRequestData.d.ts | 20 + .../inventory/IInventorySplitRequestData.d.ts | 7 + .../inventory/IInventorySwapRequestData.d.ts | 11 + .../inventory/IInventoryTagRequestData.d.ts | 7 + .../IInventoryToggleRequestData.d.ts | 6 + .../IInventoryTransferRequestData.d.ts | 7 + .../IEmptyItemEventRouterResponse.d.ts | 4 + .../eft/itemEvent/IItemEventRouterBase.d.ts | 67 + .../itemEvent/IItemEventRouterRequest.d.ts | 21 + .../itemEvent/IItemEventRouterResponse.d.ts | 3 + .../eft/launcher/IChangeRequestData.d.ts | 4 + .../launcher/IGetMiniProfileRequestData.d.ts | 4 + .../eft/launcher/ILoginRequestData.d.ts | 4 + .../models/eft/launcher/IMiniProfile.d.ts | 14 + .../models/eft/launcher/IRegisterData.d.ts | 4 + .../eft/launcher/IRemoveProfileData.d.ts | 2 + .../eft/location/IGetLocationRequestData.d.ts | 5 + .../eft/match/IEndOfflineRaidRequestData.d.ts | 6 + .../eft/match/IGetProfileRequestData.d.ts | 3 + .../match/IStartOffineRaidRequestData.d.ts | 27 + .../models/eft/notes/INoteActionData.d.ts | 10 + .../types/models/eft/notifier/INotifier.d.ts | 14 + .../notifier/ISelectProfileRequestData.d.ts | 3 + ...IPlayerIncrementSkillLevelRequestData.d.ts | 21 + .../IPresetBuildActionRequestData.d.ts | 25 + .../types/models/eft/profile/IAkiProfile.d.ts | 167 +++ .../IProfileChangeNicknameRequestData.d.ts | 3 + .../IProfileChangeVoiceRequestData.d.ts | 3 + .../profile/IProfileCreateRequestData.d.ts | 6 + .../eft/profile/ISearchFriendRequestData.d.ts | 3 + .../eft/profile/ISearchFriendResponse.d.ts | 9 + .../profile/IValidateNicknameRequestData.d.ts | 3 + .../eft/quests/IAcceptQuestRequestData.d.ts | 5 + .../eft/quests/ICompleteQuestRequestData.d.ts | 5 + .../eft/quests/IHandoverQuestRequestData.d.ts | 10 + .../eft/quests/IListQuestsRequestData.d.ts | 3 + .../quests/IRepeatableQuestChangeRequest.d.ts | 4 + .../eft/ragfair/IAddOfferRequestData.d.ts | 13 + .../eft/ragfair/IExtendOfferRequestData.d.ts | 4 + .../eft/ragfair/IGetItemPriceResult.d.ts | 5 + .../ragfair/IGetMarketPriceRequestData.d.ts | 3 + .../models/eft/ragfair/IGetOffersResult.d.ts | 7 + .../models/eft/ragfair/IRagfairOffer.d.ts | 42 + .../eft/ragfair/IRemoveOfferRequestData.d.ts | 4 + .../eft/ragfair/ISearchRequestData.d.ts | 32 + .../repair/IBaseRepairActionDataRequest.d.ts | 3 + .../eft/repair/IRepairActionDataRequest.d.ts | 10 + .../ITraderRepairActionDataRequest.d.ts | 10 + .../trade/IProcessBaseTradeRequestData.d.ts | 5 + .../trade/IProcessBuyTradeRequestData.d.ts | 14 + .../IProcessRagfairTradeRequestData.d.ts | 13 + .../trade/IProcessSellTradeRequestData.d.ts | 12 + .../models/eft/weather/IWeatherData.d.ts | 20 + .../eft/wishlist/IWishlistActionData.d.ts | 4 + .../types/models/enums/BaseClasses.d.ts | 84 ++ .../types/models/enums/ConfigTypes.d.ts | 19 + .../types/models/enums/ELocationName.d.ts | 11 + .../types/models/enums/EquipmentSlots.d.ts | 16 + .../types/models/enums/HideoutAreas.d.ts | 25 + .../types/models/enums/MemberCategory.d.ts | 13 + .../types/models/enums/MessageType.d.ts | 16 + .../types/models/enums/Money.d.ts | 5 + .../types/models/enums/QuestStatus.d.ts | 10 + .../types/models/enums/Traders.d.ts | 10 + .../models/external/IAfterDBLoadMod.d.ts | 4 + .../types/models/external/mod.d.ts | 5 + .../types/models/external/tsyringe.d.ts | 2 + .../types/models/spt/bindings/Route.d.ts | 3 + .../models/spt/callbacks/IBotCallbacks.d.ts | 10 + .../spt/callbacks/IBundleCallbacks.d.ts | 5 + .../callbacks/ICustomizationCallbacks.d.ts | 12 + .../models/spt/callbacks/IDataCallbacks.d.ts | 26 + .../spt/callbacks/IDialogueCallbacks.d.ts | 34 + .../models/spt/callbacks/IGameCallbacks.d.ts | 16 + .../spt/callbacks/IHandbookCallbacks.d.ts | 3 + .../spt/callbacks/IHealthCallbacks.d.ts | 13 + .../spt/callbacks/IHideoutCallbacks.d.ts | 23 + .../models/spt/callbacks/IHttpCallbacks.d.ts | 5 + .../spt/callbacks/IInraidCallbacks.d.ts | 14 + .../spt/callbacks/IInsuranceCallbacks.d.ts | 10 + .../spt/callbacks/IInventoryCallbacks.d.ts | 36 + .../spt/callbacks/IItemEventCallbacks.d.ts | 6 + .../spt/callbacks/ILauncherCallbacks.d.ts | 20 + .../spt/callbacks/ILocationCallbacks.d.ts | 8 + .../models/spt/callbacks/IMatchCallbacks.d.ts | 25 + .../models/spt/callbacks/IModCallbacks.d.ts | 6 + .../models/spt/callbacks/INoteCallbacks.d.ts | 8 + .../spt/callbacks/INotifierCallbacks.d.ts | 17 + .../spt/callbacks/IPresetBuildCallbacks.d.ts | 10 + .../spt/callbacks/IPresetCallbacks.d.ts | 3 + .../spt/callbacks/IProfileCallbacks.d.ts | 21 + .../models/spt/callbacks/IQuestCallbacks.d.ts | 19 + .../spt/callbacks/IRagfairCallbacks.d.ts | 21 + .../spt/callbacks/IRepairCallbacks.d.ts | 8 + .../models/spt/callbacks/ISaveCallbacks.d.ts | 4 + .../models/spt/callbacks/ITradeCallbacks.d.ts | 8 + .../spt/callbacks/ITraderCallbacks.d.ts | 11 + .../spt/callbacks/IWeatherCallbacks.d.ts | 5 + .../spt/callbacks/IWishlistCallbacks.d.ts | 7 + .../models/spt/config/IAirdropConfig.d.ts | 20 + .../types/models/spt/config/IBaseConfig.d.ts | 3 + .../types/models/spt/config/IBotConfig.d.ts | 114 ++ .../types/models/spt/config/ICoreConfig.d.ts | 7 + .../models/spt/config/IHealthConfig.d.ts | 14 + .../models/spt/config/IHideoutConfig.d.ts | 27 + .../types/models/spt/config/IHttpConfig.d.ts | 6 + .../models/spt/config/IInRaidConfig.d.ts | 21 + .../models/spt/config/IInsuranceConfig.d.ts | 7 + .../models/spt/config/IInventoryConfig.d.ts | 5 + .../models/spt/config/ILocaleConfig.d.ts | 5 + .../models/spt/config/ILocationConfig.d.ts | 24 + .../types/models/spt/config/IMatchConfig.d.ts | 5 + .../types/models/spt/config/IQuestConfig.d.ts | 77 ++ .../models/spt/config/IRagfairConfig.d.ts | 59 + .../models/spt/config/IRepairConfig.d.ts | 5 + .../models/spt/config/ITraderConfig.d.ts | 15 + .../models/spt/config/IWeatherConfig.d.ts | 21 + .../spt/controllers/IBotController.d.ts | 13 + .../models/spt/generators/IBotGenerator.d.ts | 10 + .../spt/generators/ILocationGenerator.d.ts | 6 + .../spt/generators/IPMCLootGenerator.d.ts | 4 + .../generators/IRagfairAssortGenerator.d.ts | 4 + .../generators/IRagfairOfferGenerator.d.ts | 6 + .../spt/logging/LogBackgroundColor.d.ts | 11 + .../models/spt/logging/LogTextColor.d.ts | 11 + .../types/models/spt/logging/SptLogger.d.ts | 7 + .../types/models/spt/mod/IMod.d.ts | 10 + .../types/models/spt/mod/IModLoader.d.ts | 7 + .../models/spt/mod/IPackageJsonData.d.ts | 12 + .../spt/ragfair/IRagfairServerPrices.d.ts | 4 + .../models/spt/server/IDatabaseTables.d.ts | 52 + .../types/models/spt/server/IHttpServer.d.ts | 12 + .../types/models/spt/server/ILocaleBase.d.ts | 61 + .../types/models/spt/server/ILocations.d.ts | 26 + .../types/models/spt/server/IServerBase.d.ts | 4 + .../models/spt/server/ISettingsBase.d.ts | 43 + .../models/spt/services/CustomPreset.d.ts | 5 + .../spt/services/CustomTraderAssortData.d.ts | 6 + .../types/models/spt/utils/IAsyncQueue.d.ts | 4 + .../types/models/spt/utils/ICommand.d.ts | 4 + .../types/models/spt/utils/ILogger.d.ts | 13 + .../models/spt/utils/IUuidGenerator.d.ts | 3 + .../types/routers/HttpRouter.d.ts | 16 + .../types/routers/ImageRouter.d.ts | 13 + .../types/routers/ItemEventRouter.d.ts | 17 + .../routers/dynamic/BotDynamicRouter.d.ts | 6 + .../routers/dynamic/BundleDynamicRouter.d.ts | 6 + .../dynamic/CustomizationDynamicRouter.d.ts | 6 + .../routers/dynamic/DataDynamicRouter.d.ts | 6 + .../routers/dynamic/HttpDynamicRouter.d.ts | 6 + .../routers/dynamic/InraidDynamicRouter.d.ts | 7 + .../dynamic/LocationDynamicRouter.d.ts | 7 + .../dynamic/NotifierDynamicRouter.d.ts | 6 + .../routers/dynamic/TraderDynamicRouter.d.ts | 6 + .../CustomizationItemEventRouter.d.ts | 10 + .../item_events/HealthItemEventRouter.d.ts | 10 + .../item_events/HideoutItemEventRouter.d.ts | 10 + .../item_events/InsuranceItemEventRouter.d.ts | 10 + .../item_events/InventoryItemEventRouter.d.ts | 10 + .../item_events/NoteItemEventRouter.d.ts | 10 + .../PresetBuildItemEventRouter.d.ts | 10 + .../item_events/QuestItemEventRouter.d.ts | 12 + .../item_events/RagfairItemEventRouter.d.ts | 10 + .../item_events/RepairItemEventRouter.d.ts | 10 + .../item_events/TradeItemEventRouter.d.ts | 10 + .../item_events/WishlistItemEventRouter.d.ts | 10 + .../save_load/HealthSaveLoadRouter.d.ts | 7 + .../save_load/InraidSaveLoadRouter.d.ts | 7 + .../save_load/InsuranceSaveLoadRouter.d.ts | 7 + .../save_load/ProfileSaveLoadRouter.d.ts | 7 + .../routers/serializers/BundleSerializer.d.ts | 11 + .../routers/serializers/ImageSerializer.d.ts | 9 + .../routers/serializers/NotifySerializer.d.ts | 11 + .../types/routers/static/BotStaticRouter.d.ts | 6 + .../routers/static/BundleStaticRouter.d.ts | 6 + .../static/CustomizationStaticRouter.d.ts | 6 + .../routers/static/DataStaticRouter.d.ts | 6 + .../routers/static/DialogStaticRouter.d.ts | 6 + .../routers/static/GameStaticRouter.d.ts | 6 + .../routers/static/HealthStaticRouter.d.ts | 6 + .../routers/static/InraidStaticRouter.d.ts | 6 + .../routers/static/InsuranceStaticRouter.d.ts | 6 + .../routers/static/ItemEventStaticRouter.d.ts | 6 + .../routers/static/LauncherStaticRouter.d.ts | 6 + .../routers/static/LocationStaticRouter.d.ts | 6 + .../routers/static/MatchStaticRouter.d.ts | 6 + .../routers/static/NotifierStaticRouter.d.ts | 6 + .../routers/static/PresetStaticRouter.d.ts | 6 + .../routers/static/ProfileStaticRouter.d.ts | 6 + .../routers/static/QuestStaticRouter.d.ts | 6 + .../routers/static/RagfairStaticRouter.d.ts | 6 + .../routers/static/TraderStaticRouter.d.ts | 6 + .../routers/static/WeatherStaticRouter.d.ts | 6 + .../types/servers/ConfigServer.d.ts | 14 + .../types/servers/DatabaseServer.d.ts | 6 + .../types/servers/HttpServer.d.ts | 49 + .../types/servers/RagfairServer.d.ts | 31 + .../types/servers/SaveServer.d.ts | 28 + .../services/CustomHandbookItemService.d.ts | 13 + .../types/services/CustomItemService.d.ts | 11 + .../types/services/CustomPresetService.d.ts | 19 + .../services/CustomTraderAssortService.d.ts | 14 + .../types/services/FenceService.d.ts | 39 + .../types/services/HashCacheService.d.ts | 19 + .../types/services/InsuranceService.d.ts | 42 + .../types/services/LocaleService.d.ts | 14 + .../types/services/MatchLocationService.d.ts | 8 + .../types/services/ModCompilerService.d.ts | 20 + .../types/services/NotificationService.d.ts | 21 + .../types/services/PaymentService.d.ts | 49 + .../types/services/PlayerService.d.ts | 22 + .../services/RagfairCategoriesService.d.ts | 10 + .../services/RagfairLinkedItemService.d.ts | 10 + .../types/services/RagfairOfferService.d.ts | 66 + .../types/services/RagfairPriceService.d.ts | 32 + .../services/RagfairRequiredItemsService.d.ts | 12 + .../types/services/TraderAssortService.d.ts | 6 + .../mod/dynamicRouter/DynamicRouterMod.d.ts | 6 + .../DynamicRouterModService.d.ts | 7 + .../services/mod/image/ImageRouteService.d.ts | 6 + .../types/services/mod/onLoad/OnLoadMod.d.ts | 8 + .../services/mod/onLoad/OnLoadModService.d.ts | 6 + .../services/mod/onUpdate/OnUpdateMod.d.ts | 8 + .../mod/onUpdate/OnUpdateModService.d.ts | 6 + .../mod/staticRouter/StaticRouterMod.d.ts | 6 + .../staticRouter/StaticRouterModService.d.ts | 7 + .../14AfterDBLoadHook/types/utils/App.d.ts | 14 + .../types/utils/AyncQueue.d.ts | 7 + .../types/utils/DatabaseImporter.d.ts | 52 + .../types/utils/HashUtil.d.ts | 11 + .../types/utils/HttpResponseUtil.d.ts | 16 + .../types/utils/JsonUtil.d.ts | 25 + .../14AfterDBLoadHook/types/utils/Logger.d.ts | 58 + .../types/utils/MathUtil.d.ts | 53 + .../types/utils/ObjectId.d.ts | 14 + .../types/utils/RandomUtil.d.ts | 153 +++ .../types/utils/TimeUtil.d.ts | 8 + .../types/utils/UUidGenerator.d.ts | 4 + .../14AfterDBLoadHook/types/utils/VFS.d.ts | 55 + .../types/utils/Watermark.d.ts | 41 + .../types/utils/decorators/Singleton.d.ts | 4 + .../types/utils/decorators/constructor.d.ts | 4 + 448 files changed, 11410 insertions(+) create mode 100644 TypeScript/14AfterDBLoadHook/.eslintignore create mode 100644 TypeScript/14AfterDBLoadHook/.eslintrc.json create mode 100644 TypeScript/14AfterDBLoadHook/README.md create mode 100644 TypeScript/14AfterDBLoadHook/mod.code-workspace create mode 100644 TypeScript/14AfterDBLoadHook/package.json create mode 100644 TypeScript/14AfterDBLoadHook/src/mod.js create mode 100644 TypeScript/14AfterDBLoadHook/src/mod.ts create mode 100644 TypeScript/14AfterDBLoadHook/tsconfig.json create mode 100644 TypeScript/14AfterDBLoadHook/types/Program.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/TYPES.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/BotCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/BundleCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/CustomizationCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/DataCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/DialogueCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/GameCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/HandbookCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/HealthCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/HideoutCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/HttpCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/InraidCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/InsuranceCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/InventoryCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/ItemEventCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/LauncherCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/LocationCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/MatchCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/ModCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/NoteCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/NotifierCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/PresetBuildCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/PresetCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/ProfileCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/QuestCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/RagfairCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/RepairCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/SaveCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/TradeCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/TraderCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/WeatherCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/callbacks/WishlistCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/BotController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/CustomizationController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/DialogueController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/GameController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/HandbookController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/HealthController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/HideoutController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/InraidController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/InsuranceController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/InventoryController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/LauncherController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/LocationController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/MatchController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/NoteController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/NotifierController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/PresetBuildController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/PresetController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/ProfileController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/QuestController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/RagfairController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/RepairController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/RepeatableQuestController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/TradeController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/TraderController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/WeatherController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/controllers/WishlistController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/di/Container.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/di/OnLoad.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/di/OnLoadOnUpdate.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/di/OnUpdate.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/di/Router.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/di/Serializer.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/generators/BotGenerator.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/generators/BotInventoryGenerator.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/generators/BotLootGenerator.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/generators/BotWeaponGenerator.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/generators/LocationGenerator.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/generators/PMCLootGenerator.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/generators/RagfairAssortGenerator.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/generators/RagfairOfferGenerator.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/generators/WeatherGenerator.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/AssortHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/BotGeneratorHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/BotHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/ContainerHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/DialogueHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/DurabilityLimitsHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/ExtendedProfileHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/GameEventHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/GameHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/HandbookHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/HealthHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/HideoutHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/HttpServerHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/InRaidHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/InventoryHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/ItemHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/NotificationSendHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/NotifierHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/PaymentHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/PresetHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/ProbabilityHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/ProfileHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/QuestConditionHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/QuestHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/RagfairHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/RagfairOfferHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/RagfairSellHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/RagfairServerHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/RagfairSortHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/RagfairTaxHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/RepairHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/SecureContainerHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/TradeHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/TraderAssortHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/TraderHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/UtilityHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/helpers/WeightedRandomHelper.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/ide/BleedingEdgeEntry.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/ide/Compiler.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/ide/DebugEntry.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/ide/ReleaseEntry.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/ide/TestEntry.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/loaders/AfterDbModLoader.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/loaders/BundleLoader.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/loaders/DelayedModLoader.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/loaders/InitialModLoader.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/bot/IGenerateBotsRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/IEmptyRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/IGlobals.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/ILocation.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/ILocationBase.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/ILocationsSourceDestinationBase.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/ILooseLoot.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/IMetricsTableData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/IPmcData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/request/IBaseInteractionRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IBotBase.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IBotCore.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IBotType.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ICustomizationItem.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IHandbookBase.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IItem.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ILocationsBase.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ILootBase.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IMatch.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IQuest.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IRepeatableQuests.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ITemplateItem.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ITrader.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/customization/IBuyClothingRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/customization/IWearClothingRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IFriendRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetAllAttachmentsRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetAllAttachmentsResponse.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetChatServerListRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetFriendListDataResponse.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetMailDialogInfoRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetMailDialogListRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetMailDialogViewRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetMailDialogViewResponseData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IPinDialogRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IRemoveDialogRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/dialog/ISendMessageRequest.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/dialog/ISetDialogReadRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/game/IGameConfigResponse.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/game/IGameEmptyCrcRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/game/IVersionValidateRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/health/IHealthTreatmentRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/health/IOffraidEatRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/health/IOffraidHealRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/health/ISyncHealthRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/hideout/HideoutUpgradeCompleteRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutArea.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutContinousProductionStartRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutProduction.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutPutItemInRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutScavCase.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutScavCaseStartRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutSettingsBase.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutSingleProductionStartRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutTakeItemOutRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutTakeProductionRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutToggleAreaRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutUpgradeCompleteRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutUpgradeRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/httpResponse/IGetBodyResponseData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/httpResponse/INullResponseData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inRaid/IRegisterPlayerRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inRaid/ISaveProgressRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/insurance/IGetInsuranceCostRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/insurance/IInsureRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IAddItemRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryAddRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryBaseActionRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryBindRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryCreateMarkerRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryDeleteMarkerRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryEditMarkerRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryExamineRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryFoldRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryMergeRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryMoveRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryReadEncyclopediaRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryRemoveRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventorySortRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventorySplitRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventorySwapRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryTagRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryToggleRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryTransferRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/itemEvent/IEmptyItemEventRouterResponse.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/itemEvent/IItemEventRouterBase.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/itemEvent/IItemEventRouterRequest.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/itemEvent/IItemEventRouterResponse.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IChangeRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IGetMiniProfileRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/launcher/ILoginRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IMiniProfile.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IRegisterData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IRemoveProfileData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/location/IGetLocationRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/match/IEndOfflineRaidRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/match/IGetProfileRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/match/IStartOffineRaidRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/notes/INoteActionData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/notifier/INotifier.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/notifier/ISelectProfileRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/player/IPlayerIncrementSkillLevelRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/profile/IAkiProfile.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/profile/IProfileChangeNicknameRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/profile/IProfileChangeVoiceRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/profile/IProfileCreateRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/profile/ISearchFriendRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/profile/ISearchFriendResponse.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/profile/IValidateNicknameRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/quests/IAcceptQuestRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/quests/ICompleteQuestRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/quests/IHandoverQuestRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/quests/IListQuestsRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/quests/IRepeatableQuestChangeRequest.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IAddOfferRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IExtendOfferRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IGetItemPriceResult.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IGetMarketPriceRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IGetOffersResult.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IRagfairOffer.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IRemoveOfferRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/ISearchRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/repair/IBaseRepairActionDataRequest.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/repair/IRepairActionDataRequest.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/repair/ITraderRepairActionDataRequest.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/trade/IProcessBaseTradeRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/trade/IProcessBuyTradeRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/trade/IProcessRagfairTradeRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/trade/IProcessSellTradeRequestData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/weather/IWeatherData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/eft/wishlist/IWishlistActionData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/enums/BaseClasses.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/enums/ConfigTypes.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/enums/ELocationName.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/enums/EquipmentSlots.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/enums/HideoutAreas.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/enums/MemberCategory.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/enums/MessageType.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/enums/Money.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/enums/QuestStatus.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/enums/Traders.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/external/IAfterDBLoadMod.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/external/mod.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/external/tsyringe.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/bindings/Route.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IBotCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IBundleCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ICustomizationCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IDataCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IDialogueCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IGameCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IHandbookCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IHealthCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IHideoutCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IHttpCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IInraidCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IInsuranceCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IInventoryCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IItemEventCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ILauncherCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ILocationCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IMatchCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IModCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/INoteCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/INotifierCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IPresetBuildCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IPresetCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IProfileCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IQuestCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IRagfairCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IRepairCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ISaveCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ITradeCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ITraderCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IWeatherCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IWishlistCallbacks.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/config/IAirdropConfig.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/config/IBaseConfig.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/config/IBotConfig.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/config/ICoreConfig.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/config/IHealthConfig.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/config/IHideoutConfig.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/config/IHttpConfig.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/config/IInRaidConfig.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/config/IInsuranceConfig.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/config/IInventoryConfig.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/config/ILocaleConfig.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/config/ILocationConfig.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/config/IMatchConfig.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/config/IQuestConfig.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/config/IRagfairConfig.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/config/IRepairConfig.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/config/ITraderConfig.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/config/IWeatherConfig.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/controllers/IBotController.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/generators/IBotGenerator.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/generators/ILocationGenerator.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/generators/IPMCLootGenerator.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/generators/IRagfairAssortGenerator.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/generators/IRagfairOfferGenerator.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/logging/LogBackgroundColor.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/logging/LogTextColor.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/logging/SptLogger.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/mod/IMod.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/mod/IModLoader.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/mod/IPackageJsonData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/ragfair/IRagfairServerPrices.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/server/IDatabaseTables.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/server/IHttpServer.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/server/ILocaleBase.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/server/ILocations.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/server/IServerBase.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/server/ISettingsBase.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/services/CustomPreset.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/services/CustomTraderAssortData.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/utils/IAsyncQueue.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/utils/ICommand.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/utils/ILogger.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/models/spt/utils/IUuidGenerator.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/HttpRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/ImageRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/ItemEventRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/dynamic/BotDynamicRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/dynamic/BundleDynamicRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/dynamic/CustomizationDynamicRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/dynamic/DataDynamicRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/dynamic/HttpDynamicRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/dynamic/InraidDynamicRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/dynamic/LocationDynamicRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/dynamic/NotifierDynamicRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/dynamic/TraderDynamicRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/item_events/CustomizationItemEventRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/item_events/HealthItemEventRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/item_events/HideoutItemEventRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/item_events/InsuranceItemEventRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/item_events/InventoryItemEventRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/item_events/NoteItemEventRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/item_events/PresetBuildItemEventRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/item_events/QuestItemEventRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/item_events/RagfairItemEventRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/item_events/RepairItemEventRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/item_events/TradeItemEventRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/item_events/WishlistItemEventRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/save_load/HealthSaveLoadRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/save_load/InraidSaveLoadRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/save_load/InsuranceSaveLoadRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/save_load/ProfileSaveLoadRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/serializers/BundleSerializer.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/serializers/ImageSerializer.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/serializers/NotifySerializer.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/BotStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/BundleStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/CustomizationStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/DataStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/DialogStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/GameStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/HealthStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/InraidStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/InsuranceStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/ItemEventStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/LauncherStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/LocationStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/MatchStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/NotifierStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/PresetStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/ProfileStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/QuestStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/RagfairStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/TraderStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/routers/static/WeatherStaticRouter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/servers/ConfigServer.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/servers/DatabaseServer.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/servers/HttpServer.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/servers/RagfairServer.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/servers/SaveServer.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/CustomHandbookItemService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/CustomItemService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/CustomPresetService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/CustomTraderAssortService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/FenceService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/HashCacheService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/InsuranceService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/LocaleService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/MatchLocationService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/ModCompilerService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/NotificationService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/PaymentService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/PlayerService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/RagfairCategoriesService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/RagfairLinkedItemService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/RagfairOfferService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/RagfairPriceService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/RagfairRequiredItemsService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/TraderAssortService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/mod/dynamicRouter/DynamicRouterMod.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/mod/dynamicRouter/DynamicRouterModService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/mod/image/ImageRouteService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/mod/onLoad/OnLoadMod.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/mod/onLoad/OnLoadModService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/mod/onUpdate/OnUpdateMod.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/mod/onUpdate/OnUpdateModService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/mod/staticRouter/StaticRouterMod.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/services/mod/staticRouter/StaticRouterModService.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/utils/App.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/utils/AyncQueue.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/utils/DatabaseImporter.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/utils/HashUtil.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/utils/HttpResponseUtil.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/utils/JsonUtil.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/utils/Logger.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/utils/MathUtil.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/utils/ObjectId.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/utils/RandomUtil.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/utils/TimeUtil.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/utils/UUidGenerator.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/utils/VFS.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/utils/Watermark.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/utils/decorators/Singleton.d.ts create mode 100644 TypeScript/14AfterDBLoadHook/types/utils/decorators/constructor.d.ts diff --git a/TypeScript/14AfterDBLoadHook/.eslintignore b/TypeScript/14AfterDBLoadHook/.eslintignore new file mode 100644 index 0000000..9922d9a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/.eslintignore @@ -0,0 +1,9 @@ +# Exclude these folders from linting +node_modules +dist/ +types/ + +# Exclude these filetypes from linting +*.json +*.txt +*.exe \ No newline at end of file diff --git a/TypeScript/14AfterDBLoadHook/.eslintrc.json b/TypeScript/14AfterDBLoadHook/.eslintrc.json new file mode 100644 index 0000000..c505160 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/.eslintrc.json @@ -0,0 +1,75 @@ +{ + "root": true, + "parser": "@typescript-eslint/parser", + "plugins": [ + "@typescript-eslint" + ], + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + "@typescript-eslint/no-explicit-any": 0, + "@typescript-eslint/no-unused-vars": 1, + "@typescript-eslint/no-empty-interface": 0, + "@typescript-eslint/no-namespace": 0, + "@typescript-eslint/comma-dangle": 1, + "@typescript-eslint/func-call-spacing": 2, + "@typescript-eslint/quotes": 1, + "@typescript-eslint/brace-style": [ + "warn", + "allman" + ], + "@typescript-eslint/naming-convention": [ + "warn", + { + "selector": "default", + "format": ["camelCase"], + "leadingUnderscore": "allow" + }, + { + "selector": "typeLike", + "format": ["PascalCase"] + }, + { + "selector": "objectLiteralProperty", + "format": ["PascalCase", "camelCase"], + "leadingUnderscore": "allow" + }, + { + "selector": "typeProperty", + "format": ["PascalCase", "camelCase"], + "leadingUnderscore": "allow" + }, + { + "selector": "enumMember", + "format": ["UPPER_CASE"] + } + ], + "@typescript-eslint/indent": [ + "warn", + 4 + ], + "@typescript-eslint/no-unused-expressions": [ + "warn", + { + "allowShortCircuit": false, + "allowTernary": false + } + ], + "@typescript-eslint/keyword-spacing": [ + "warn", + { + "before": true, + "after": true + } + ], + "@typescript-eslint/explicit-module-boundary-types": [ + "warn", + { + "allowArgumentsExplicitlyTypedAsAny": true + } + ] + } +} \ No newline at end of file diff --git a/TypeScript/14AfterDBLoadHook/README.md b/TypeScript/14AfterDBLoadHook/README.md new file mode 100644 index 0000000..efc31a4 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/README.md @@ -0,0 +1,64 @@ + +This project was created to automate most parts of building and setting up an environment. + +## **NodeJS 14.15.3:** + +The first step would be to install nodejs on your pc, the version you NEED is **14.15.3** + +That version is the one that has been used to test the mod templates and build scripts. + +It can be downloaded from here: https://nodejs.org/download/release/v14.15.3/ + +A system reboot may be needed after install. + +## **IDE:** + +The second step is having an IDE ready. For the currect purpose we've setup a VSCodium workspace file. + +You CAN use Visual Studio Code if you so desire, just keep in mind that our dev tests on the mod files was done using VSCodium. + +You can get VSCodium here: https://vscodium.com/#install + +## **Workspace:** + +Once you have NodeJS and VSCodium ready, open the mod.code-workspace file with VSCodium (File->Open Worspace from File...). + +Once the project loads into VSCodium you will be recommended to install the ESLint plugin. This is HIGHLY recommended. + +## **Environment Setup:** + +There is a task that will automatically setup your environment to use typescript. + +To run it, you just need to go to: + +> Terminal->Run Task...->Show All Tasks...->npm: install + +After running this task, your environment will be ready to start coding. + +DO NOT remove the node_modules folder, this is an auto generated directory that has the required dependencies to be able to use typescript and more. + +## **IMPORTANT:** + +Before starting to work on your mod, we suggest you read about Dependency Injection and Inversion of Control as this is the adopted architecture SPT-AKI has adopted. + +It will be difficult to understand some of the problems you may be having if you dont understand the basics of it. + +A guide explaining all the essentials will be available on the hub on release for you to read about. + +## **Coding:** + +All your work should be centered around the mod.ts file as an entry point. +You can ONLY change the following properties from the package.json file: `"name"`, `"version"`, `"license"`: `"MIT"`, `"author"`, `"akiVersion"`. + +If you have never used typescript before, you can read about it here: https://www.typescriptlang.org/docs/ + +## **Distributing your mod:** + +The project has been set up with an automatic task that will copy and zip ALL required files for your mod to work on SPT-AKI. +To run this task you just need to go to: + +> Terminal->Run Task...->Show All Tasks...->npm: build:zip + +The output will be a mod.zip file that will appear on the root of the project. + +Always verify that all files were included into the zip file. \ No newline at end of file diff --git a/TypeScript/14AfterDBLoadHook/mod.code-workspace b/TypeScript/14AfterDBLoadHook/mod.code-workspace new file mode 100644 index 0000000..6732c67 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/mod.code-workspace @@ -0,0 +1,12 @@ +{ + "folders": [ + { + "path": "." + } + ], + "extensions": { + "recommendations": [ + "dbaeumer.vscode-eslint" + ] + } +} \ No newline at end of file diff --git a/TypeScript/14AfterDBLoadHook/package.json b/TypeScript/14AfterDBLoadHook/package.json new file mode 100644 index 0000000..b5223bf --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/package.json @@ -0,0 +1,25 @@ +{ + "name": "AfterDBLoadHook", + "version": "1.0.0", + "main": "src/mod.js", + "license": "MIT", + "author": "Chomp", + "akiVersion": "3.0.0", + "scripts": { + "setup:environment": "npm i", + "build:unzipped": "copyfiles -e \"./node_modules/**/*.*\" -e \"./dist/**/*.*\" -e \"./package-lock.json\" -e \"./tsconfig.json\" -e \"./README.txt\" -e \"./mod.code-workspace\" \"./**/*.*\" ./dist", + "zip:files": "cd dist/ && bestzip ../mod.zip *", + "build:zip": "npm run clean:environment && npm run build:unzipped && npm run zip:files", + "clean:environment": "node -e \"require('fs').rm('mod.zip', ()=>{})\" && node -e \"require('fs').rmdir('./dist/',{recursive:true},()=>{})\"" + }, + "devDependencies": { + "@types/node": "^14.15.3", + "@typescript-eslint/eslint-plugin": "^4.33.0", + "@typescript-eslint/parser": "^4.33.0", + "copyfiles": "2.4.1", + "eslint": "7.26.0", + "tsyringe": "4.6.0", + "typescript": "4.6.4", + "bestzip": "2.2.1" + } +} diff --git a/TypeScript/14AfterDBLoadHook/src/mod.js b/TypeScript/14AfterDBLoadHook/src/mod.js new file mode 100644 index 0000000..e378aa8 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/src/mod.js @@ -0,0 +1,37 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const LogTextColor_1 = require("../../../../obj/models/spt/logging/LogTextColor"); +const LogBackgroundColor_1 = require("../../../../obj/models/spt/logging/LogBackgroundColor"); +class Mod { + load(container) { + // Database will be empty in here + const databaseServer = container.resolve("DatabaseServer"); + const logger = container.resolve("WinstonLogger"); + logger.logWithColor(`Database item table state: ${databaseServer.getTables().templates} (<<< should be null)`, LogTextColor_1.LogTextColor.red, LogBackgroundColor_1.LogBackgroundColor.yellow); + } + loadAfterDbInit(container) { + // Database will be loaded, this is the fresh state of the DB so NOTHING from the AKI + // logic has modified anything yet. This is the DB loaded straight from the JSON files + const databaseServer = container.resolve("DatabaseServer"); + const logger = container.resolve("WinstonLogger"); + logger.logWithColor(`Database item size: ${Object.entries(databaseServer.getTables().templates.items).length}`, LogTextColor_1.LogTextColor.red, LogBackgroundColor_1.LogBackgroundColor.yellow); + // lets do a quick modification and see how this reflect later on, on the delayedLoad() + // find the nvgs item by its Id + const nvgs = databaseServer.getTables().templates.items["5c0558060db834001b735271"]; + // Lets log the state before the modification: + logger.logWithColor(`NVGs default CanSellOnRagfair: ${nvgs._props.CanSellOnRagfair}`, LogTextColor_1.LogTextColor.red, LogBackgroundColor_1.LogBackgroundColor.yellow); + // update one of its properties to be true + nvgs._props.CanSellOnRagfair = true; + } + delayedLoad(container) { + // The modification we made above would have been processed by now by AKI, so any values we changed had + // already been passed through the initial lifecycles (OnLoad) of AKI. + const databaseServer = container.resolve("DatabaseServer"); + const logger = container.resolve("WinstonLogger"); + // find the nvgs item again by its Id + const nvgs = databaseServer.getTables().templates.items["5c0558060db834001b735271"]; + // Lets log the state, this value should be true: + logger.logWithColor(`NVGs modified CanSellOnRagfair: ${nvgs._props.CanSellOnRagfair}`, LogTextColor_1.LogTextColor.red, LogBackgroundColor_1.LogBackgroundColor.yellow); + } +} +module.exports = { mod: new Mod() }; diff --git a/TypeScript/14AfterDBLoadHook/src/mod.ts b/TypeScript/14AfterDBLoadHook/src/mod.ts new file mode 100644 index 0000000..03375db --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/src/mod.ts @@ -0,0 +1,52 @@ +import { DependencyContainer } from "tsyringe"; + +import { IAfterDBLoadMod } from "@spt-aki/models/external/IAfterDBLoadMod"; +import { IMod } from "@spt-aki/models/external/mod"; +import { ILogger } from "@spt-aki/models/spt/utils/ILogger"; +import { DatabaseServer } from "@spt-aki/servers/DatabaseServer"; +import { LogTextColor } from "@spt-aki/models/spt/logging/LogTextColor"; +import { LogBackgroundColor } from "@spt-aki/models/spt/logging/LogBackgroundColor"; + + +class Mod implements IMod, IAfterDBLoadMod +{ + public load(container: DependencyContainer): void + { + // Database will be empty in here + const databaseServer = container.resolve("DatabaseServer"); + const logger = container.resolve("WinstonLogger"); + logger.logWithColor(`Database item table state: ${databaseServer.getTables().templates} (<<< should be undefined)`, LogTextColor.red, LogBackgroundColor.yellow); + } + + public loadAfterDbInit(container: DependencyContainer): void + { + // Database will be loaded, this is the fresh state of the DB so NOTHING from the AKI + // logic has modified anything yet. This is the DB loaded straight from the JSON files + const databaseServer = container.resolve("DatabaseServer"); + const logger = container.resolve("WinstonLogger"); + logger.logWithColor(`Database item size: ${Object.entries(databaseServer.getTables().templates.items).length}`, LogTextColor.red, LogBackgroundColor.yellow); + // lets do a quick modification and see how this reflect later on, on the delayedLoad() + + // find the nvgs item by its Id + const nvgs = databaseServer.getTables().templates.items["5c0558060db834001b735271"]; + // Lets log the state before the modification: + logger.logWithColor(`NVGs default CanSellOnRagfair: ${nvgs._props.CanSellOnRagfair}`, LogTextColor.red, LogBackgroundColor.yellow); + // update one of its properties to be true + nvgs._props.CanSellOnRagfair = true; + } + + public delayedLoad(container: DependencyContainer): void + { + // The modification we made above would have been processed by now by AKI, so any values we changed had + // already been passed through the initial lifecycles (OnLoad) of AKI. + const databaseServer = container.resolve("DatabaseServer"); + const logger = container.resolve("WinstonLogger"); + + // find the nvgs item again by its Id + const nvgs = databaseServer.getTables().templates.items["5c0558060db834001b735271"]; + // Lets log the state, this value should be true: + logger.logWithColor(`NVGs modified CanSellOnRagfair: ${nvgs._props.CanSellOnRagfair}`, LogTextColor.red, LogBackgroundColor.yellow); + } +} + +module.exports = { mod: new Mod() } \ No newline at end of file diff --git a/TypeScript/14AfterDBLoadHook/tsconfig.json b/TypeScript/14AfterDBLoadHook/tsconfig.json new file mode 100644 index 0000000..8151310 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "allowJs": true, + "module": "CommonJS", + "target": "es2020", + "moduleResolution": "node", + "esModuleInterop": true, + "downlevelIteration": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "resolveJsonModule": true, + "outDir": "tmp", + "baseUrl": ".", + "paths": { + "@spt-aki/*": ["./types/*"] + } + }, + "lib": [ + "es2020" + ], + "include": [ + "src/*", + "src/**/*" + ] +} \ No newline at end of file diff --git a/TypeScript/14AfterDBLoadHook/types/Program.d.ts b/TypeScript/14AfterDBLoadHook/types/Program.d.ts new file mode 100644 index 0000000..d4b71b9 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/Program.d.ts @@ -0,0 +1,4 @@ +export declare class Program { + constructor(); + start(): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/TYPES.d.ts b/TypeScript/14AfterDBLoadHook/types/TYPES.d.ts new file mode 100644 index 0000000..6407c3a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/TYPES.d.ts @@ -0,0 +1,3 @@ +export declare const TYPES: { + [name: string]: symbol; +}; diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/BotCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/BotCallbacks.d.ts new file mode 100644 index 0000000..2db60dc --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/BotCallbacks.d.ts @@ -0,0 +1,15 @@ +import { BotController } from "../controllers/BotController"; +import { IGenerateBotsRequestData } from "../models/eft/bot/IGenerateBotsRequestData"; +import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; +import { IBotBase } from "../models/eft/common/tables/IBotBase"; +import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +export declare class BotCallbacks { + protected botController: BotController; + protected httpResponse: HttpResponseUtil; + constructor(botController: BotController, httpResponse: HttpResponseUtil); + getBotLimit(url: string, info: IEmptyRequestData, sessionID: string): string; + getBotDifficulty(url: string, info: IEmptyRequestData, sessionID: string): string; + generateBots(url: string, info: IGenerateBotsRequestData, sessionID: string): IGetBodyResponseData; + getBotCap(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/BundleCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/BundleCallbacks.d.ts new file mode 100644 index 0000000..b28abe1 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/BundleCallbacks.d.ts @@ -0,0 +1,18 @@ +import { BundleLoader } from "../loaders/BundleLoader"; +import { IHttpConfig } from "../models/spt/config/IHttpConfig"; +import { IHttpServer } from "../models/spt/server/IHttpServer"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +export declare class BundleCallbacks { + protected logger: ILogger; + protected httpResponse: HttpResponseUtil; + protected httpServer: IHttpServer; + protected bundleLoader: BundleLoader; + protected configServer: ConfigServer; + protected httpConfig: IHttpConfig; + constructor(logger: ILogger, httpResponse: HttpResponseUtil, httpServer: IHttpServer, bundleLoader: BundleLoader, configServer: ConfigServer); + sendBundle(sessionID: string, req: any, resp: any, body: any): any; + getBundles(url: string, info: any, sessionID: string): string; + getBundle(url: string, info: any, sessionID: string): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/CustomizationCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/CustomizationCallbacks.d.ts new file mode 100644 index 0000000..3bab8c0 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/CustomizationCallbacks.d.ts @@ -0,0 +1,23 @@ +import { CustomizationController } from "../controllers/CustomizationController"; +import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { ISuit } from "../models/eft/common/tables/ITrader"; +import { IBuyClothingRequestData } from "../models/eft/customization/IBuyClothingRequestData"; +import { IWearClothingRequestData } from "../models/eft/customization/IWearClothingRequestData"; +import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { SaveServer } from "../servers/SaveServer"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +export declare class CustomizationCallbacks { + protected customizationController: CustomizationController; + protected saveServer: SaveServer; + protected httpResponse: HttpResponseUtil; + constructor(customizationController: CustomizationController, saveServer: SaveServer, httpResponse: HttpResponseUtil); + getSuits(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<{ + _id: string; + suites: string[]; + }>; + getTraderSuits(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + wearClothing(pmcData: IPmcData, body: IWearClothingRequestData, sessionID: string): IItemEventRouterResponse; + buyClothing(pmcData: IPmcData, body: IBuyClothingRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/DataCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/DataCallbacks.d.ts new file mode 100644 index 0000000..cfb1c16 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/DataCallbacks.d.ts @@ -0,0 +1,32 @@ +import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; +import { IGlobals } from "../models/eft/common/IGlobals"; +import { ICustomizationItem } from "../models/eft/common/tables/ICustomizationItem"; +import { IQuest } from "../models/eft/common/tables/IQuest"; +import { IHideoutArea } from "../models/eft/hideout/IHideoutArea"; +import { IHideoutProduction } from "../models/eft/hideout/IHideoutProduction"; +import { IHideoutScavCase } from "../models/eft/hideout/IHideoutScavCase"; +import { IHideoutSettingsBase } from "../models/eft/hideout/IHideoutSettingsBase"; +import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; +import { ILanguageBase } from "../models/spt/server/ILocaleBase"; +import { ISettingsBase } from "../models/spt/server/ISettingsBase"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +export declare class DataCallbacks { + protected httpResponse: HttpResponseUtil; + protected databaseServer: DatabaseServer; + constructor(httpResponse: HttpResponseUtil, databaseServer: DatabaseServer); + getSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getGlobals(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getTemplateItems(url: string, info: IEmptyRequestData, sessionID: string): string; + getTemplateHandbook(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getTemplateSuits(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData>; + getTemplateCharacter(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getTemplateQuests(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getHideoutSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getHideoutAreas(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + gethideoutProduction(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getHideoutScavcase(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getLocalesLanguages(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getLocalesMenu(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getLocalesGlobal(url: string, info: IEmptyRequestData, sessionID: string): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/DialogueCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/DialogueCallbacks.d.ts new file mode 100644 index 0000000..634f90b --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/DialogueCallbacks.d.ts @@ -0,0 +1,45 @@ +import { DialogueController } from "../controllers/DialogueController"; +import { OnUpdate } from "../di/OnUpdate"; +import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; +import { IFriendRequestData } from "../models/eft/dialog/IFriendRequestData"; +import { IGetAllAttachmentsRequestData } from "../models/eft/dialog/IGetAllAttachmentsRequestData"; +import { IGetAllAttachmentsResponse } from "../models/eft/dialog/IGetAllAttachmentsResponse"; +import { IGetChatServerListRequestData } from "../models/eft/dialog/IGetChatServerListRequestData"; +import { IGetFriendListDataResponse } from "../models/eft/dialog/IGetFriendListDataResponse"; +import { IGetMailDialogInfoRequestData } from "../models/eft/dialog/IGetMailDialogInfoRequestData"; +import { IGetMailDialogListRequestData } from "../models/eft/dialog/IGetMailDialogListRequestData"; +import { IGetMailDialogViewRequestData } from "../models/eft/dialog/IGetMailDialogViewRequestData"; +import { IGetMailDialogViewResponseData } from "../models/eft/dialog/IGetMailDialogViewResponseData"; +import { IPinDialogRequestData } from "../models/eft/dialog/IPinDialogRequestData"; +import { IRemoveDialogRequestData } from "../models/eft/dialog/IRemoveDialogRequestData"; +import { ISendMessageRequest } from "../models/eft/dialog/ISendMessageRequest"; +import { ISetDialogReadRequestData } from "../models/eft/dialog/ISetDialogReadRequestData"; +import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; +import { INullResponseData } from "../models/eft/httpResponse/INullResponseData"; +import { DialogueInfo } from "../models/eft/profile/IAkiProfile"; +import { HashUtil } from "../utils/HashUtil"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +export declare class DialogueCallbacks extends OnUpdate { + protected hashUtil: HashUtil; + protected timeUtil: TimeUtil; + protected httpResponse: HttpResponseUtil; + protected dialogueController: DialogueController; + constructor(hashUtil: HashUtil, timeUtil: TimeUtil, httpResponse: HttpResponseUtil, dialogueController: DialogueController); + getFriendList(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getChatServerList(url: string, info: IGetChatServerListRequestData, sessionID: string): IGetBodyResponseData; + getMailDialogList(url: string, info: IGetMailDialogListRequestData, sessionID: string): IGetBodyResponseData; + getMailDialogView(url: string, info: IGetMailDialogViewRequestData, sessionID: string): IGetBodyResponseData; + getMailDialogInfo(url: string, info: IGetMailDialogInfoRequestData, sessionID: string): IGetBodyResponseData; + removeDialog(url: string, info: IRemoveDialogRequestData, sessionID: string): IGetBodyResponseData; + pinDialog(url: string, info: IPinDialogRequestData, sessionID: string): IGetBodyResponseData; + unpinDialog(url: string, info: IPinDialogRequestData, sessionID: string): IGetBodyResponseData; + setRead(url: string, info: ISetDialogReadRequestData, sessionID: string): IGetBodyResponseData; + getAllAttachments(url: string, info: IGetAllAttachmentsRequestData, sessionID: string): IGetBodyResponseData; + listOutbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + listInbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + friendRequest(url: string, request: IFriendRequestData, sessionID: string): INullResponseData; + sendMessage(url: string, request: ISendMessageRequest, sessionID: string): IGetBodyResponseData; + onUpdate(timeSinceLastRun: number): boolean; + getRoute(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/GameCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/GameCallbacks.d.ts new file mode 100644 index 0000000..d5cad76 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/GameCallbacks.d.ts @@ -0,0 +1,24 @@ +import { GameController } from "../controllers/GameController"; +import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; +import { IGameConfigResponse } from "../models/eft/game/IGameConfigResponse"; +import { IGameEmptyCrcRequestData } from "../models/eft/game/IGameEmptyCrcRequestData"; +import { IVersionValidateRequestData } from "../models/eft/game/IVersionValidateRequestData"; +import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; +import { INullResponseData } from "../models/eft/httpResponse/INullResponseData"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +import { Watermark } from "../utils/Watermark"; +declare class GameCallbacks { + protected httpResponse: HttpResponseUtil; + protected watermark: Watermark; + protected gameController: GameController; + constructor(httpResponse: HttpResponseUtil, watermark: Watermark, gameController: GameController); + versionValidate(url: string, info: IVersionValidateRequestData, sessionID: string): INullResponseData; + gameStart(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + gameLogout(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getGameConfig(url: string, info: IGameEmptyCrcRequestData, sessionID: string): IGetBodyResponseData; + getServer(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + validateGameVersion(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + gameKeepalive(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getVersion(url: string, info: IEmptyRequestData, sessionID: string): string; +} +export { GameCallbacks }; diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/HandbookCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/HandbookCallbacks.d.ts new file mode 100644 index 0000000..891e375 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/HandbookCallbacks.d.ts @@ -0,0 +1,8 @@ +import { HandbookController } from "../controllers/HandbookController"; +import { OnLoad } from "../di/OnLoad"; +export declare class HandbookCallbacks extends OnLoad { + protected handbookController: HandbookController; + constructor(handbookController: HandbookController); + onLoad(): void; + getRoute(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/HealthCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/HealthCallbacks.d.ts new file mode 100644 index 0000000..8f7b89d --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/HealthCallbacks.d.ts @@ -0,0 +1,20 @@ +import { HealthController } from "../controllers/HealthController"; +import { ProfileHelper } from "../helpers/ProfileHelper"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IHealthTreatmentRequestData } from "../models/eft/health/IHealthTreatmentRequestData"; +import { IOffraidEatRequestData } from "../models/eft/health/IOffraidEatRequestData"; +import { IOffraidHealRequestData } from "../models/eft/health/IOffraidHealRequestData"; +import { ISyncHealthRequestData } from "../models/eft/health/ISyncHealthRequestData"; +import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +export declare class HealthCallbacks { + protected httpResponse: HttpResponseUtil; + protected profileHelper: ProfileHelper; + protected healthController: HealthController; + constructor(httpResponse: HttpResponseUtil, profileHelper: ProfileHelper, healthController: HealthController); + syncHealth(url: string, info: ISyncHealthRequestData, sessionID: string): IGetBodyResponseData; + offraidEat(pmcData: IPmcData, body: IOffraidEatRequestData, sessionID: string): IItemEventRouterResponse; + offraidHeal(pmcData: IPmcData, body: IOffraidHealRequestData, sessionID: string): IItemEventRouterResponse; + healthTreatment(pmcData: IPmcData, info: IHealthTreatmentRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/HideoutCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/HideoutCallbacks.d.ts new file mode 100644 index 0000000..99ab4c9 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/HideoutCallbacks.d.ts @@ -0,0 +1,33 @@ +import { HideoutController } from "../controllers/HideoutController"; +import { OnUpdate } from "../di/OnUpdate"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IHideoutContinousProductionStartRequestData } from "../models/eft/hideout/IHideoutContinousProductionStartRequestData"; +import { IHideoutPutItemInRequestData } from "../models/eft/hideout/IHideoutPutItemInRequestData"; +import { IHideoutScavCaseStartRequestData } from "../models/eft/hideout/IHideoutScavCaseStartRequestData"; +import { IHideoutSingleProductionStartRequestData } from "../models/eft/hideout/IHideoutSingleProductionStartRequestData"; +import { IHideoutTakeItemOutRequestData } from "../models/eft/hideout/IHideoutTakeItemOutRequestData"; +import { IHideoutTakeProductionRequestData } from "../models/eft/hideout/IHideoutTakeProductionRequestData"; +import { IHideoutToggleAreaRequestData } from "../models/eft/hideout/IHideoutToggleAreaRequestData"; +import { IHideoutUpgradeCompleteRequestData } from "../models/eft/hideout/IHideoutUpgradeCompleteRequestData"; +import { IHideoutUpgradeRequestData } from "../models/eft/hideout/IHideoutUpgradeRequestData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IHideoutConfig } from "../models/spt/config/IHideoutConfig"; +import { ConfigServer } from "../servers/ConfigServer"; +export declare class HideoutCallbacks extends OnUpdate { + protected hideoutController: HideoutController; + protected configServer: ConfigServer; + protected hideoutConfig: IHideoutConfig; + constructor(hideoutController: HideoutController, // TODO: delay needed + configServer: ConfigServer); + upgrade(pmcData: IPmcData, body: IHideoutUpgradeRequestData, sessionID: string): IItemEventRouterResponse; + upgradeComplete(pmcData: IPmcData, body: IHideoutUpgradeCompleteRequestData, sessionID: string): IItemEventRouterResponse; + putItemsInAreaSlots(pmcData: IPmcData, body: IHideoutPutItemInRequestData, sessionID: string): IItemEventRouterResponse; + takeItemsFromAreaSlots(pmcData: IPmcData, body: IHideoutTakeItemOutRequestData, sessionID: string): IItemEventRouterResponse; + toggleArea(pmcData: IPmcData, body: IHideoutToggleAreaRequestData, sessionID: string): IItemEventRouterResponse; + singleProductionStart(pmcData: IPmcData, body: IHideoutSingleProductionStartRequestData, sessionID: string): IItemEventRouterResponse; + scavCaseProductionStart(pmcData: IPmcData, body: IHideoutScavCaseStartRequestData, sessionID: string): IItemEventRouterResponse; + continuousProductionStart(pmcData: IPmcData, body: IHideoutContinousProductionStartRequestData, sessionID: string): IItemEventRouterResponse; + takeProduction(pmcData: IPmcData, body: IHideoutTakeProductionRequestData, sessionID: string): IItemEventRouterResponse; + onUpdate(timeSinceLastRun: number): boolean; + getRoute(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/HttpCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/HttpCallbacks.d.ts new file mode 100644 index 0000000..94c97bd --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/HttpCallbacks.d.ts @@ -0,0 +1,9 @@ +import { OnLoad } from "../di/OnLoad"; +import { IHttpServer } from "../models/spt/server/IHttpServer"; +export declare class HttpCallbacks extends OnLoad { + protected httpServer: IHttpServer; + constructor(httpServer: IHttpServer); + onLoad(): void; + getRoute(): string; + getImage(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/InraidCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/InraidCallbacks.d.ts new file mode 100644 index 0000000..05bcce4 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/InraidCallbacks.d.ts @@ -0,0 +1,23 @@ +import { InraidController } from "../controllers/InraidController"; +import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; +import { INullResponseData } from "../models/eft/httpResponse/INullResponseData"; +import { IRegisterPlayerRequestData } from "../models/eft/inRaid/IRegisterPlayerRequestData"; +import { ISaveProgressRequestData } from "../models/eft/inRaid/ISaveProgressRequestData"; +import { IAirdropConfig } from "../models/spt/config/IAirdropConfig"; +import { IInRaidConfig } from "../models/spt/config/IInRaidConfig"; +import { ConfigServer } from "../servers/ConfigServer"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +export declare class InraidCallbacks { + protected inraidController: InraidController; + protected httpResponse: HttpResponseUtil; + protected configServer: ConfigServer; + protected airdropConfig: IAirdropConfig; + protected inraidConfig: IInRaidConfig; + constructor(inraidController: InraidController, httpResponse: HttpResponseUtil, configServer: ConfigServer); + registerPlayer(url: string, info: IRegisterPlayerRequestData, sessionID: string): INullResponseData; + saveProgress(url: string, info: ISaveProgressRequestData, sessionID: string): INullResponseData; + getRaidEndState(): string; + getRaidMenuSettings(url: string, info: IEmptyRequestData, sessionID: string): string; + getWeaponDurability(url: string, info: any, sessionID: string): string; + getAirdropConfig(url: string, info: any, sessionID: string): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/InsuranceCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/InsuranceCallbacks.d.ts new file mode 100644 index 0000000..520d0eb --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/InsuranceCallbacks.d.ts @@ -0,0 +1,24 @@ +import { InsuranceController } from "../controllers/InsuranceController"; +import { OnLoadOnUpdate } from "../di/OnLoadOnUpdate"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; +import { IGetInsuranceCostRequestData } from "../models/eft/insurance/IGetInsuranceCostRequestData"; +import { IInsureRequestData } from "../models/eft/insurance/IInsureRequestData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IInsuranceConfig } from "../models/spt/config/IInsuranceConfig"; +import { ConfigServer } from "../servers/ConfigServer"; +import { InsuranceService } from "../services/InsuranceService"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +export declare class InsuranceCallbacks extends OnLoadOnUpdate { + protected insuranceController: InsuranceController; + protected insuranceService: InsuranceService; + protected httpResponse: HttpResponseUtil; + protected configServer: ConfigServer; + protected insuranceConfig: IInsuranceConfig; + constructor(insuranceController: InsuranceController, insuranceService: InsuranceService, httpResponse: HttpResponseUtil, configServer: ConfigServer); + onLoad(): void; + getInsuranceCost(url: string, info: IGetInsuranceCostRequestData, sessionID: string): IGetBodyResponseData; + insure(pmcData: IPmcData, body: IInsureRequestData, sessionID: string): IItemEventRouterResponse; + onUpdate(secondsSinceLastRun: number): boolean; + getRoute(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/InventoryCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/InventoryCallbacks.d.ts new file mode 100644 index 0000000..9ab1486 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/InventoryCallbacks.d.ts @@ -0,0 +1,39 @@ +import { InventoryController } from "../controllers/InventoryController"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IInventoryBindRequestData } from "../models/eft/inventory/IInventoryBindRequestData"; +import { IInventoryCreateMarkerRequestData } from "../models/eft/inventory/IInventoryCreateMarkerRequestData"; +import { IInventoryDeleteMarkerRequestData } from "../models/eft/inventory/IInventoryDeleteMarkerRequestData"; +import { IInventoryEditMarkerRequestData } from "../models/eft/inventory/IInventoryEditMarkerRequestData"; +import { IInventoryExamineRequestData } from "../models/eft/inventory/IInventoryExamineRequestData"; +import { IInventoryFoldRequestData } from "../models/eft/inventory/IInventoryFoldRequestData"; +import { IInventoryMergeRequestData } from "../models/eft/inventory/IInventoryMergeRequestData"; +import { IInventoryMoveRequestData } from "../models/eft/inventory/IInventoryMoveRequestData"; +import { IInventoryReadEncyclopediaRequestData } from "../models/eft/inventory/IInventoryReadEncyclopediaRequestData"; +import { IInventoryRemoveRequestData } from "../models/eft/inventory/IInventoryRemoveRequestData"; +import { IInventorySortRequestData } from "../models/eft/inventory/IInventorySortRequestData"; +import { IInventorySplitRequestData } from "../models/eft/inventory/IInventorySplitRequestData"; +import { IInventorySwapRequestData } from "../models/eft/inventory/IInventorySwapRequestData"; +import { IInventoryTagRequestData } from "../models/eft/inventory/IInventoryTagRequestData"; +import { IInventoryToggleRequestData } from "../models/eft/inventory/IInventoryToggleRequestData"; +import { IInventoryTransferRequestData } from "../models/eft/inventory/IInventoryTransferRequestData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +export declare class InventoryCallbacks { + protected inventoryController: InventoryController; + constructor(inventoryController: InventoryController); + moveItem(pmcData: IPmcData, body: IInventoryMoveRequestData, sessionID: string): IItemEventRouterResponse; + removeItem(pmcData: IPmcData, body: IInventoryRemoveRequestData, sessionID: string): IItemEventRouterResponse; + splitItem(pmcData: IPmcData, body: IInventorySplitRequestData, sessionID: string): IItemEventRouterResponse; + mergeItem(pmcData: IPmcData, body: IInventoryMergeRequestData, sessionID: string): IItemEventRouterResponse; + transferItem(pmcData: IPmcData, body: IInventoryTransferRequestData, sessionID: string): IItemEventRouterResponse; + swapItem(pmcData: IPmcData, body: IInventorySwapRequestData, sessionID: string): IItemEventRouterResponse; + foldItem(pmcData: IPmcData, body: IInventoryFoldRequestData, sessionID: string): IItemEventRouterResponse; + toggleItem(pmcData: IPmcData, body: IInventoryToggleRequestData, sessionID: string): IItemEventRouterResponse; + tagItem(pmcData: IPmcData, body: IInventoryTagRequestData, sessionID: string): IItemEventRouterResponse; + bindItem(pmcData: IPmcData, body: IInventoryBindRequestData, sessionID: string): IItemEventRouterResponse; + examineItem(pmcData: IPmcData, body: IInventoryExamineRequestData, sessionID: string): IItemEventRouterResponse; + readEncyclopedia(pmcData: IPmcData, body: IInventoryReadEncyclopediaRequestData, sessionID: string): IItemEventRouterResponse; + sortInventory(pmcData: IPmcData, body: IInventorySortRequestData, sessionID: string): IItemEventRouterResponse; + createMapMarker(pmcData: IPmcData, body: IInventoryCreateMarkerRequestData, sessionID: string): IItemEventRouterResponse; + deleteMapMarker(pmcData: IPmcData, body: IInventoryDeleteMarkerRequestData, sessionID: string): IItemEventRouterResponse; + editMapMarker(pmcData: IPmcData, body: IInventoryEditMarkerRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/ItemEventCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/ItemEventCallbacks.d.ts new file mode 100644 index 0000000..f4f04f9 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/ItemEventCallbacks.d.ts @@ -0,0 +1,11 @@ +import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; +import { IItemEventRouterRequest } from "../models/eft/itemEvent/IItemEventRouterRequest"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +export declare class ItemEventCallbacks { + protected httpResponse: HttpResponseUtil; + protected itemEventRouter: ItemEventRouter; + constructor(httpResponse: HttpResponseUtil, itemEventRouter: ItemEventRouter); + handleEvents(url: string, info: IItemEventRouterRequest, sessionID: string): IGetBodyResponseData; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/LauncherCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/LauncherCallbacks.d.ts new file mode 100644 index 0000000..c022325 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/LauncherCallbacks.d.ts @@ -0,0 +1,28 @@ +import { LauncherController } from "../controllers/LauncherController"; +import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; +import { IChangeRequestData } from "../models/eft/launcher/IChangeRequestData"; +import { ILoginRequestData } from "../models/eft/launcher/ILoginRequestData"; +import { IRegisterData } from "../models/eft/launcher/IRegisterData"; +import { IRemoveProfileData } from "../models/eft/launcher/IRemoveProfileData"; +import { SaveServer } from "../servers/SaveServer"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +import { Watermark } from "../utils/Watermark"; +declare class LauncherCallbacks { + protected httpResponse: HttpResponseUtil; + protected launcherController: LauncherController; + protected saveServer: SaveServer; + protected watermark: Watermark; + constructor(httpResponse: HttpResponseUtil, launcherController: LauncherController, saveServer: SaveServer, watermark: Watermark); + connect(): string; + login(url: string, info: ILoginRequestData, sessionID: string): string; + register(url: string, info: IRegisterData, sessionID: string): "FAILED" | "OK"; + get(url: string, info: ILoginRequestData, sessionID: string): string; + changeUsername(url: string, info: IChangeRequestData, sessionID: string): "FAILED" | "OK"; + changePassword(url: string, info: IChangeRequestData, sessionID: string): "FAILED" | "OK"; + wipe(url: string, info: IRegisterData, sessionID: string): "FAILED" | "OK"; + getServerVersion(): string; + ping(url: string, info: IEmptyRequestData, sessionID: string): string; + removeProfile(url: string, info: IRemoveProfileData, sessionID: string): string; + getCompatibleTarkovVersion(): string; +} +export { LauncherCallbacks }; diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/LocationCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/LocationCallbacks.d.ts new file mode 100644 index 0000000..cc69369 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/LocationCallbacks.d.ts @@ -0,0 +1,14 @@ +import { LocationController } from "../controllers/LocationController"; +import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; +import { ILocationBase } from "../models/eft/common/ILocationBase"; +import { ILocationsGenerateAllResponse } from "../models/eft/common/ILocationsSourceDestinationBase"; +import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; +import { IGetLocationRequestData } from "../models/eft/location/IGetLocationRequestData"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +export declare class LocationCallbacks { + protected httpResponse: HttpResponseUtil; + protected locationController: LocationController; + constructor(httpResponse: HttpResponseUtil, locationController: LocationController); + getLocationData(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getLocation(url: string, info: IGetLocationRequestData, sessionID: string): IGetBodyResponseData; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/MatchCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/MatchCallbacks.d.ts new file mode 100644 index 0000000..083c1f5 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/MatchCallbacks.d.ts @@ -0,0 +1,35 @@ +import { MatchController } from "../controllers/MatchController"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; +import { INullResponseData } from "../models/eft/httpResponse/INullResponseData"; +import { IEndOfflineRaidRequestData } from "../models/eft/match/IEndOfflineRaidRequestData"; +import { IGetProfileRequestData } from "../models/eft/match/IGetProfileRequestData"; +import { IStartOfflineRaidRequestData } from "../models/eft/match/IStartOffineRaidRequestData"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +import { JsonUtil } from "../utils/JsonUtil"; +export declare class MatchCallbacks { + protected httpResponse: HttpResponseUtil; + protected jsonUtil: JsonUtil; + protected matchController: MatchController; + protected databaseServer: DatabaseServer; + constructor(httpResponse: HttpResponseUtil, jsonUtil: JsonUtil, matchController: MatchController, databaseServer: DatabaseServer); + updatePing(url: string, info: any, sessionID: string): INullResponseData; + exitMatch(url: string, info: any, sessionID: string): INullResponseData; + exitToMenu(url: string, info: any, sessionID: string): INullResponseData; + startGroupSearch(url: string, info: any, sessionID: string): INullResponseData; + stopGroupSearch(url: string, info: any, sessionID: string): INullResponseData; + sendGroupInvite(url: string, info: any, sessionID: string): INullResponseData; + acceptGroupInvite(url: string, info: any, sessionID: string): INullResponseData; + cancelGroupInvite(url: string, info: any, sessionID: string): INullResponseData; + putMetrics(url: string, info: any, sessionID: string): INullResponseData; + getProfile(url: string, info: IGetProfileRequestData, sessionID: string): IGetBodyResponseData; + serverAvailable(url: string, info: any, sessionID: string): IGetBodyResponseData | IGetBodyResponseData; + joinMatch(url: string, info: any, sessionID: string): IGetBodyResponseData; + getMetrics(url: string, info: any, sessionID: string): IGetBodyResponseData; + getGroupStatus(url: string, info: any, sessionID: string): IGetBodyResponseData; + createGroup(url: string, info: any, sessionID: string): IGetBodyResponseData; + deleteGroup(url: string, info: any, sessionID: string): INullResponseData; + startOfflineRaid(url: string, info: IStartOfflineRaidRequestData, sessionID: string): INullResponseData; + endOfflineRaid(url: string, info: IEndOfflineRaidRequestData, sessionID: string): INullResponseData; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/ModCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/ModCallbacks.d.ts new file mode 100644 index 0000000..866abf7 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/ModCallbacks.d.ts @@ -0,0 +1,22 @@ +import { OnLoad } from "../di/OnLoad"; +import { DelayedModLoader } from "../loaders/DelayedModLoader"; +import { IHttpConfig } from "../models/spt/config/IHttpConfig"; +import { IHttpServer } from "../models/spt/server/IHttpServer"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +declare class ModCallbacks extends OnLoad { + protected logger: ILogger; + protected httpResponse: HttpResponseUtil; + protected httpServer: IHttpServer; + protected modLoader: DelayedModLoader; + protected configServer: ConfigServer; + protected httpConfig: IHttpConfig; + constructor(logger: ILogger, httpResponse: HttpResponseUtil, httpServer: IHttpServer, modLoader: DelayedModLoader, configServer: ConfigServer); + onLoad(): void; + getRoute(): string; + sendBundle(sessionID: string, req: any, resp: any, body: any): void; + getBundles(url: string, info: any, sessionID: string): string; + getBundle(url: string, info: any, sessionID: string): string; +} +export { ModCallbacks }; diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/NoteCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/NoteCallbacks.d.ts new file mode 100644 index 0000000..d39d400 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/NoteCallbacks.d.ts @@ -0,0 +1,11 @@ +import { NoteController } from "../controllers/NoteController"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { INoteActionData } from "../models/eft/notes/INoteActionData"; +export declare class NoteCallbacks { + protected noteController: NoteController; + constructor(noteController: NoteController); + addNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse; + editNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse; + deleteNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/NotifierCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/NotifierCallbacks.d.ts new file mode 100644 index 0000000..cd1e736 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/NotifierCallbacks.d.ts @@ -0,0 +1,24 @@ +import { NotifierController } from "../controllers/NotifierController"; +import { HttpServerHelper } from "../helpers/HttpServerHelper"; +import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; +import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; +import { INotifierChannel } from "../models/eft/notifier/INotifier"; +import { ISelectProfileRequestData } from "../models/eft/notifier/ISelectProfileRequestData"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +export declare class NotifierCallbacks { + protected httpServerHelper: HttpServerHelper; + protected httpResponse: HttpResponseUtil; + protected notifierController: NotifierController; + constructor(httpServerHelper: HttpServerHelper, httpResponse: HttpResponseUtil, notifierController: NotifierController); + /** + * If we don't have anything to send, it's ok to not send anything back + * because notification requests can be long-polling. In fact, we SHOULD wait + * until we actually have something to send because otherwise we'd spam the client + * and the client would abort the connection due to spam. + */ + sendNotification(_sessionID: string, req: any, resp: any, _data: any): void; + getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData; + createNotifierChannel(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + selectProfile(url: string, info: ISelectProfileRequestData, sessionID: string): IGetBodyResponseData; + notify(url: string, info: any, sessionID: string): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/PresetBuildCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/PresetBuildCallbacks.d.ts new file mode 100644 index 0000000..8a0c155 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/PresetBuildCallbacks.d.ts @@ -0,0 +1,15 @@ +import { PresetBuildController } from "../controllers/PresetBuildController"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IPresetBuildActionRequestData } from "../models/eft/presetBuild/IPresetBuildActionRequestData"; +import { WeaponBuild } from "../models/eft/profile/IAkiProfile"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +export declare class PresetBuildCallbacks { + protected httpResponse: HttpResponseUtil; + protected presetBuildController: PresetBuildController; + constructor(httpResponse: HttpResponseUtil, presetBuildController: PresetBuildController); + getHandbookUserlist(url: string, info: any, sessionID: string): IGetBodyResponseData; + saveBuild(pmcData: IPmcData, body: IPresetBuildActionRequestData, sessionID: string): IItemEventRouterResponse; + removeBuild(pmcData: IPmcData, body: IPresetBuildActionRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/PresetCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/PresetCallbacks.d.ts new file mode 100644 index 0000000..4553f8f --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/PresetCallbacks.d.ts @@ -0,0 +1,8 @@ +import { PresetController } from "../controllers/PresetController"; +import { OnLoad } from "../di/OnLoad"; +export declare class PresetCallbacks extends OnLoad { + protected presetController: PresetController; + constructor(presetController: PresetController); + onLoad(): void; + getRoute(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/ProfileCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/ProfileCallbacks.d.ts new file mode 100644 index 0000000..116e7c5 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/ProfileCallbacks.d.ts @@ -0,0 +1,30 @@ +import { ProfileController } from "../controllers/ProfileController"; +import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; +import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; +import { INullResponseData } from "../models/eft/httpResponse/INullResponseData"; +import { IGetMiniProfileRequestData } from "../models/eft/launcher/IGetMiniProfileRequestData"; +import { IProfileChangeNicknameRequestData } from "../models/eft/profile/IProfileChangeNicknameRequestData"; +import { IProfileChangeVoiceRequestData } from "../models/eft/profile/IProfileChangeVoiceRequestData"; +import { IProfileCreateRequestData } from "../models/eft/profile/IProfileCreateRequestData"; +import { ISearchFriendRequestData } from "../models/eft/profile/ISearchFriendRequestData"; +import { ISearchFriendResponse } from "../models/eft/profile/ISearchFriendResponse"; +import { IValidateNicknameRequestData } from "../models/eft/profile/IValidateNicknameRequestData"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +export declare class ProfileCallbacks { + protected httpResponse: HttpResponseUtil; + protected timeUtil: TimeUtil; + protected profileController: ProfileController; + constructor(httpResponse: HttpResponseUtil, timeUtil: TimeUtil, profileController: ProfileController); + createProfile(url: string, info: IProfileCreateRequestData, sessionID: string): IGetBodyResponseData; + getProfileData(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + regenerateScav(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + changeVoice(url: string, info: IProfileChangeVoiceRequestData, sessionID: string): INullResponseData; + changeNickname(url: string, info: IProfileChangeNicknameRequestData, sessionID: string): IGetBodyResponseData; + validateNickname(url: string, info: IValidateNicknameRequestData, sessionID: string): IGetBodyResponseData; + getReservedNickname(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getProfileStatus(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + searchFriend(url: string, info: ISearchFriendRequestData, sessionID: string): IGetBodyResponseData; + getMiniProfile(url: string, info: IGetMiniProfileRequestData, sessionID: string): string; + getAllMiniProfiles(url: string, info: any, sessionID: string): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/QuestCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/QuestCallbacks.d.ts new file mode 100644 index 0000000..559c29e --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/QuestCallbacks.d.ts @@ -0,0 +1,26 @@ +import { QuestController } from "../controllers/QuestController"; +import { RepeatableQuestController } from "../controllers/RepeatableQuestController"; +import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IQuest } from "../models/eft/common/tables/IQuest"; +import { IPmcDataRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests"; +import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IAcceptQuestRequestData } from "../models/eft/quests/IAcceptQuestRequestData"; +import { ICompleteQuestRequestData } from "../models/eft/quests/ICompleteQuestRequestData"; +import { IHandoverQuestRequestData } from "../models/eft/quests/IHandoverQuestRequestData"; +import { IListQuestsRequestData } from "../models/eft/quests/IListQuestsRequestData"; +import { IRepeatableQuestChangeRequest } from "../models/eft/quests/IRepeatableQuestChangeRequest"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +export declare class QuestCallbacks { + protected httpResponse: HttpResponseUtil; + protected questController: QuestController; + protected repeatableQuestController: RepeatableQuestController; + constructor(httpResponse: HttpResponseUtil, questController: QuestController, repeatableQuestController: RepeatableQuestController); + changeRepeatableQuest(pmcData: IPmcData, body: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse; + acceptQuest(pmcData: IPmcData, body: IAcceptQuestRequestData, sessionID: string): IItemEventRouterResponse; + completeQuest(pmcData: IPmcData, body: ICompleteQuestRequestData, sessionID: string): IItemEventRouterResponse; + handoverQuest(pmcData: IPmcData, body: IHandoverQuestRequestData, sessionID: string): IItemEventRouterResponse; + listQuests(url: string, info: IListQuestsRequestData, sessionID: string): IGetBodyResponseData; + activityPeriods(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/RagfairCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/RagfairCallbacks.d.ts new file mode 100644 index 0000000..d5bab8b --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/RagfairCallbacks.d.ts @@ -0,0 +1,39 @@ +import { RagfairController } from "../controllers/RagfairController"; +import { OnLoadOnUpdate } from "../di/OnLoadOnUpdate"; +import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; +import { INullResponseData } from "../models/eft/httpResponse/INullResponseData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IAddOfferRequestData } from "../models/eft/ragfair/IAddOfferRequestData"; +import { IExtendOfferRequestData } from "../models/eft/ragfair/IExtendOfferRequestData"; +import { IGetItemPriceResult } from "../models/eft/ragfair/IGetItemPriceResult"; +import { IGetMarketPriceRequestData } from "../models/eft/ragfair/IGetMarketPriceRequestData"; +import { IRemoveOfferRequestData } from "../models/eft/ragfair/IRemoveOfferRequestData"; +import { ISearchRequestData } from "../models/eft/ragfair/ISearchRequestData"; +import { IRagfairConfig } from "../models/spt/config/IRagfairConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { RagfairServer } from "../servers/RagfairServer"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +import { JsonUtil } from "../utils/JsonUtil"; +export declare class RagfairCallbacks extends OnLoadOnUpdate { + protected httpResponse: HttpResponseUtil; + protected logger: ILogger; + protected jsonUtil: JsonUtil; + protected ragfairServer: RagfairServer; + protected ragfairController: RagfairController; + protected configServer: ConfigServer; + protected ragfairConfig: IRagfairConfig; + constructor(httpResponse: HttpResponseUtil, logger: ILogger, jsonUtil: JsonUtil, ragfairServer: RagfairServer, ragfairController: RagfairController, configServer: ConfigServer); + onLoad(): void; + getRoute(): string; + search(url: string, info: ISearchRequestData, sessionID: string): IGetBodyResponseData; + getMarketPrice(url: string, info: IGetMarketPriceRequestData, sessionID: string): IGetBodyResponseData; + getItemPrices(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + addOffer(pmcData: IPmcData, info: IAddOfferRequestData, sessionID: string): IItemEventRouterResponse; + removeOffer(pmcData: IPmcData, info: IRemoveOfferRequestData, sessionID: string): IItemEventRouterResponse; + extendOffer(pmcData: IPmcData, info: IExtendOfferRequestData, sessionID: string): IItemEventRouterResponse; + onUpdate(timeSinceLastRun: number): boolean; + sendReport(url: string, info: any, sessionID: string): INullResponseData; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/RepairCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/RepairCallbacks.d.ts new file mode 100644 index 0000000..63733fa --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/RepairCallbacks.d.ts @@ -0,0 +1,11 @@ +import { RepairController } from "../controllers/RepairController"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IRepairActionDataRequest } from "../models/eft/repair/IRepairActionDataRequest"; +import { ITraderRepairActionDataRequest } from "../models/eft/repair/ITraderRepairActionDataRequest"; +export declare class RepairCallbacks { + protected repairController: RepairController; + constructor(repairController: RepairController); + traderRepair(pmcData: IPmcData, body: ITraderRepairActionDataRequest, sessionID: string): IItemEventRouterResponse; + repair(pmcData: IPmcData, body: IRepairActionDataRequest, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/SaveCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/SaveCallbacks.d.ts new file mode 100644 index 0000000..bbb6e53 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/SaveCallbacks.d.ts @@ -0,0 +1,9 @@ +import { OnLoadOnUpdate } from "../di/OnLoadOnUpdate"; +import { SaveServer } from "../servers/SaveServer"; +export declare class SaveCallbacks extends OnLoadOnUpdate { + protected saveServer: SaveServer; + constructor(saveServer: SaveServer); + onLoad(): void; + getRoute(): string; + onUpdate(secondsSinceLastRun: number): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/TradeCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/TradeCallbacks.d.ts new file mode 100644 index 0000000..272ae46 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/TradeCallbacks.d.ts @@ -0,0 +1,11 @@ +import { TradeController } from "../controllers/TradeController"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IProcessBaseTradeRequestData } from "../models/eft/trade/IProcessBaseTradeRequestData"; +import { IProcessRagfairTradeRequestData } from "../models/eft/trade/IProcessRagfairTradeRequestData"; +export declare class TradeCallbacks { + protected tradeController: TradeController; + constructor(tradeController: TradeController); + processTrade(pmcData: IPmcData, body: IProcessBaseTradeRequestData, sessionID: string): IItemEventRouterResponse; + processRagfairTrade(pmcData: IPmcData, body: IProcessRagfairTradeRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/TraderCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/TraderCallbacks.d.ts new file mode 100644 index 0000000..128d9b2 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/TraderCallbacks.d.ts @@ -0,0 +1,18 @@ +import { TraderController } from "../controllers/TraderController"; +import { OnLoadOnUpdate } from "../di/OnLoadOnUpdate"; +import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; +import { IBarterScheme, ITraderAssort, ITraderBase } from "../models/eft/common/tables/ITrader"; +import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +export declare class TraderCallbacks extends OnLoadOnUpdate { + protected httpResponse: HttpResponseUtil; + protected traderController: TraderController; + constructor(httpResponse: HttpResponseUtil, traderController: TraderController); + onLoad(): void; + getRoute(): string; + getTraderSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getProfilePurchases(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData>; + getTrader(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getAssort(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + onUpdate(): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/WeatherCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/WeatherCallbacks.d.ts new file mode 100644 index 0000000..ae784c8 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/WeatherCallbacks.d.ts @@ -0,0 +1,10 @@ +import { WeatherController } from "../controllers/WeatherController"; +import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; +import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +export declare class WeatherCallbacks { + protected httpResponse: HttpResponseUtil; + protected weatherController: WeatherController; + constructor(httpResponse: HttpResponseUtil, weatherController: WeatherController); + getWeather(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; +} diff --git a/TypeScript/14AfterDBLoadHook/types/callbacks/WishlistCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/callbacks/WishlistCallbacks.d.ts new file mode 100644 index 0000000..c2cc2a8 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/callbacks/WishlistCallbacks.d.ts @@ -0,0 +1,10 @@ +import { WishlistController } from "../controllers/WishlistController"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IWishlistActionData } from "../models/eft/wishlist/IWishlistActionData"; +export declare class WishlistCallbacks { + protected wishlistController: WishlistController; + constructor(wishlistController: WishlistController); + addToWishlist(pmcData: IPmcData, body: IWishlistActionData, sessionID: string): IItemEventRouterResponse; + removeFromWishlist(pmcData: IPmcData, body: IWishlistActionData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/BotController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/BotController.d.ts new file mode 100644 index 0000000..09a1788 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/BotController.d.ts @@ -0,0 +1,35 @@ +import { BotGenerator } from "../generators/BotGenerator"; +import { BotHelper } from "../helpers/BotHelper"; +import { IGenerateBotsRequestData } from "../models/eft/bot/IGenerateBotsRequestData"; +import { IBotBase } from "../models/eft/common/tables/IBotBase"; +import { IBotCore } from "../models/eft/common/tables/IBotCore"; +import { Difficulty } from "../models/eft/common/tables/IBotType"; +import { IBotConfig } from "../models/spt/config/IBotConfig"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +export declare class BotController { + protected databaseServer: DatabaseServer; + protected botGenerator: BotGenerator; + protected botHelper: BotHelper; + protected configServer: ConfigServer; + protected botConfig: IBotConfig; + constructor(databaseServer: DatabaseServer, botGenerator: BotGenerator, botHelper: BotHelper, configServer: ConfigServer); + /** + * Return the number of bot loadout varieties to be generated + * @param type bot Type we want the loadout gen count for + * @returns + */ + getBotPresetGenerationLimit(type: string): number; + getBotCoreDifficulty(): IBotCore; + /** + * Get bot difficulty settings + * adjust PMC settings to ensure they engage the correct bot types + * @param type what bot the server is requesting settings for + * @param difficulty difficulty level server requested settings for + * @returns Difficulty object + */ + getBotDifficulty(type: string, difficulty: string): Difficulty; + protected getPmcDifficultySettings(pmcType: "bear" | "usec", difficulty: string): Difficulty; + generate(info: IGenerateBotsRequestData, playerScav?: boolean): IBotBase[]; + getBotCap(): number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/CustomizationController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/CustomizationController.d.ts new file mode 100644 index 0000000..a6c4730 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/CustomizationController.d.ts @@ -0,0 +1,22 @@ +import { ProfileHelper } from "../helpers/ProfileHelper"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { ISuit } from "../models/eft/common/tables/ITrader"; +import { IBuyClothingRequestData } from "../models/eft/customization/IBuyClothingRequestData"; +import { IWearClothingRequestData } from "../models/eft/customization/IWearClothingRequestData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { SaveServer } from "../servers/SaveServer"; +export declare class CustomizationController { + protected logger: ILogger; + protected itemEventRouter: ItemEventRouter; + protected databaseServer: DatabaseServer; + protected saveServer: SaveServer; + protected profileHelper: ProfileHelper; + constructor(logger: ILogger, itemEventRouter: ItemEventRouter, databaseServer: DatabaseServer, saveServer: SaveServer, profileHelper: ProfileHelper); + getTraderSuits(traderID: string, sessionID: string): ISuit[]; + wearClothing(pmcData: IPmcData, body: IWearClothingRequestData, sessionID: string): IItemEventRouterResponse; + buyClothing(pmcData: IPmcData, body: IBuyClothingRequestData, sessionID: string): IItemEventRouterResponse; + protected getAllTraderSuits(sessionID: string): ISuit[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/DialogueController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/DialogueController.d.ts new file mode 100644 index 0000000..b15c4b6 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/DialogueController.d.ts @@ -0,0 +1,25 @@ +import { DialogueHelper } from "../helpers/DialogueHelper"; +import { IGetAllAttachmentsResponse } from "../models/eft/dialog/IGetAllAttachmentsResponse"; +import { IGetFriendListDataResponse } from "../models/eft/dialog/IGetFriendListDataResponse"; +import { IGetMailDialogViewResponseData } from "../models/eft/dialog/IGetMailDialogViewResponseData"; +import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; +import { DialogueInfo, Message } from "../models/eft/profile/IAkiProfile"; +import { SaveServer } from "../servers/SaveServer"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +export declare class DialogueController { + protected httpResponse: HttpResponseUtil; + protected saveServer: SaveServer; + protected dialogueHelper: DialogueHelper; + constructor(httpResponse: HttpResponseUtil, saveServer: SaveServer, dialogueHelper: DialogueHelper); + getFriendList(sessionID: string): IGetFriendListDataResponse; + generateDialogueList(sessionID: string): IGetBodyResponseData; + getDialogueInfo(dialogueID: string, sessionID: string): DialogueInfo; + generateDialogueView(dialogueID: string, sessionID: string): IGetMailDialogViewResponseData; + removeDialogue(dialogueID: string, sessionID: string): void; + setDialoguePin(dialogueID: string, shouldPin: boolean, sessionID: string): void; + setRead(dialogueIDs: string[], sessionID: string): void; + getAllAttachments(dialogueID: string, sessionID: string): IGetAllAttachmentsResponse; + protected messagesHaveUncollectedRewards(messages: Message[]): boolean; + protected removeExpiredItems(sessionID: string): void; + update(): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/GameController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/GameController.d.ts new file mode 100644 index 0000000..5f516de --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/GameController.d.ts @@ -0,0 +1,37 @@ +import { GameHelper } from "../helpers/GameHelper"; +import { HttpServerHelper } from "../helpers/HttpServerHelper"; +import { ProfileHelper } from "../helpers/ProfileHelper"; +import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IPmcDataRepeatableQuest, IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests"; +import { IGameConfigResponse } from "../models/eft/game/IGameConfigResponse"; +import { IAkiProfile } from "../models/eft/profile/IAkiProfile"; +import { ICoreConfig } from "../models/spt/config/ICoreConfig"; +import { IHttpConfig } from "../models/spt/config/IHttpConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { LocaleService } from "../services/LocaleService"; +import { Watermark } from "../utils/Watermark"; +export declare class GameController { + protected logger: ILogger; + protected watermark: Watermark; + protected httpServerHelper: HttpServerHelper; + protected localeService: LocaleService; + protected profileHelper: ProfileHelper; + protected gameHelper: GameHelper; + protected configServer: ConfigServer; + protected httpConfig: IHttpConfig; + protected coreConfig: ICoreConfig; + constructor(logger: ILogger, watermark: Watermark, httpServerHelper: HttpServerHelper, localeService: LocaleService, profileHelper: ProfileHelper, gameHelper: GameHelper, configServer: ConfigServer); + gameStart(_url: string, _info: IEmptyRequestData, sessionID: string): void; + protected addMissingBonusesProperty(pmcProfile: IPmcData): void; + protected addMissingRepeatableQuestsProperty(pmcProfile: IPmcData): void; + protected addMissingWeaponRepairSkill(pmcProfile: IPmcData): void; + protected addMissingAkiVersionTagToProfile(fullProfile: IAkiProfile): void; + protected addMissingArmorRepairSkill(pmcProfile: IPmcData): void; + protected fixNullTraderSalesSums(pmcProfile: IPmcData): void; + protected removeDanglingBackendCounters(pmcProfile: IPmcData): void; + getGameConfig(sessionID: string): IGameConfigResponse; + getServer(): any[]; + protected getActiveRepeatableQuests(repeatableQuests: IPmcDataRepeatableQuest[]): IRepeatableQuest[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/HandbookController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/HandbookController.d.ts new file mode 100644 index 0000000..52d2dd8 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/HandbookController.d.ts @@ -0,0 +1,8 @@ +import { HandbookHelper } from "../helpers/HandbookHelper"; +import { DatabaseServer } from "../servers/DatabaseServer"; +export declare class HandbookController { + protected databaseServer: DatabaseServer; + protected handbookHelper: HandbookHelper; + constructor(databaseServer: DatabaseServer, handbookHelper: HandbookHelper); + load(): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/HealthController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/HealthController.d.ts new file mode 100644 index 0000000..aafb8df --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/HealthController.d.ts @@ -0,0 +1,25 @@ +import { ItemHelper } from "../helpers/ItemHelper"; +import { PaymentService } from "../services/PaymentService"; +import { InventoryHelper } from "../helpers/InventoryHelper"; +import { HealthHelper } from "../helpers/HealthHelper"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IHealthTreatmentRequestData } from "../models/eft/health/IHealthTreatmentRequestData"; +import { IOffraidEatRequestData } from "../models/eft/health/IOffraidEatRequestData"; +import { IOffraidHealRequestData } from "../models/eft/health/IOffraidHealRequestData"; +import { ISyncHealthRequestData } from "../models/eft/health/ISyncHealthRequestData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { ILogger } from "../models/spt/utils/ILogger"; +export declare class HealthController { + protected logger: ILogger; + protected itemEventRouter: ItemEventRouter; + protected itemHelper: ItemHelper; + protected paymentService: PaymentService; + protected inventoryHelper: InventoryHelper; + protected healthHelper: HealthHelper; + constructor(logger: ILogger, itemEventRouter: ItemEventRouter, itemHelper: ItemHelper, paymentService: PaymentService, inventoryHelper: InventoryHelper, healthHelper: HealthHelper); + saveVitality(pmcData: IPmcData, info: ISyncHealthRequestData, sessionID: string): void; + offraidHeal(pmcData: IPmcData, body: IOffraidHealRequestData, sessionID: string): IItemEventRouterResponse; + offraidEat(pmcData: IPmcData, body: IOffraidEatRequestData, sessionID: string): IItemEventRouterResponse; + healthTreatment(pmcData: IPmcData, info: IHealthTreatmentRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/HideoutController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/HideoutController.d.ts new file mode 100644 index 0000000..f2930ff --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/HideoutController.d.ts @@ -0,0 +1,68 @@ +import { HideoutHelper } from "../helpers/HideoutHelper"; +import { InventoryHelper } from "../helpers/InventoryHelper"; +import { PaymentHelper } from "../helpers/PaymentHelper"; +import { PresetHelper } from "../helpers/PresetHelper"; +import { ProfileHelper } from "../helpers/ProfileHelper"; +import { HideoutArea, IPmcData, Product } from "../models/eft/common/IPmcData"; +import { HideoutUpgradeCompleteRequestData } from "../models/eft/hideout/HideoutUpgradeCompleteRequestData"; +import { IHideoutContinousProductionStartRequestData } from "../models/eft/hideout/IHideoutContinousProductionStartRequestData"; +import { IHideoutProduction } from "../models/eft/hideout/IHideoutProduction"; +import { IHideoutPutItemInRequestData } from "../models/eft/hideout/IHideoutPutItemInRequestData"; +import { IHideoutScavCase } from "../models/eft/hideout/IHideoutScavCase"; +import { IHideoutScavCaseStartRequestData } from "../models/eft/hideout/IHideoutScavCaseStartRequestData"; +import { IHideoutSingleProductionStartRequestData } from "../models/eft/hideout/IHideoutSingleProductionStartRequestData"; +import { IHideoutTakeItemOutRequestData } from "../models/eft/hideout/IHideoutTakeItemOutRequestData"; +import { IHideoutTakeProductionRequestData } from "../models/eft/hideout/IHideoutTakeProductionRequestData"; +import { IHideoutToggleAreaRequestData } from "../models/eft/hideout/IHideoutToggleAreaRequestData"; +import { IHideoutUpgradeRequestData } from "../models/eft/hideout/IHideoutUpgradeRequestData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IHideoutConfig } from "../models/spt/config/IHideoutConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { SaveServer } from "../servers/SaveServer"; +import { PlayerService } from "../services/PlayerService"; +import { HashUtil } from "../utils/HashUtil"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +import { RandomUtil } from "../utils/RandomUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +export declare class HideoutController { + protected logger: ILogger; + protected hashUtil: HashUtil; + protected timeUtil: TimeUtil; + protected databaseServer: DatabaseServer; + protected randomUtil: RandomUtil; + protected inventoryHelper: InventoryHelper; + protected saveServer: SaveServer; + protected playerService: PlayerService; + protected presetHelper: PresetHelper; + protected paymentHelper: PaymentHelper; + protected itemEventRouter: ItemEventRouter; + protected httpResponse: HttpResponseUtil; + protected profileHelper: ProfileHelper; + protected hideoutHelper: HideoutHelper; + protected configServer: ConfigServer; + protected hideoutConfig: IHideoutConfig; + constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, databaseServer: DatabaseServer, randomUtil: RandomUtil, inventoryHelper: InventoryHelper, saveServer: SaveServer, playerService: PlayerService, presetHelper: PresetHelper, paymentHelper: PaymentHelper, itemEventRouter: ItemEventRouter, httpResponse: HttpResponseUtil, profileHelper: ProfileHelper, hideoutHelper: HideoutHelper, configServer: ConfigServer); + upgrade(pmcData: IPmcData, body: IHideoutUpgradeRequestData, sessionID: string): IItemEventRouterResponse; + upgradeComplete(pmcData: IPmcData, body: HideoutUpgradeCompleteRequestData, sessionID: string): IItemEventRouterResponse; + putItemsInAreaSlots(pmcData: IPmcData, body: IHideoutPutItemInRequestData, sessionID: string): IItemEventRouterResponse; + takeItemsFromAreaSlots(pmcData: IPmcData, body: IHideoutTakeItemOutRequestData, sessionID: string): IItemEventRouterResponse; + protected removeItemFromGenerator(sessionID: string, pmcData: IPmcData, body: IHideoutTakeItemOutRequestData, output: IItemEventRouterResponse, hideoutArea: HideoutArea): IItemEventRouterResponse; + toggleArea(pmcData: IPmcData, body: IHideoutToggleAreaRequestData, sessionID: string): IItemEventRouterResponse; + singleProductionStart(pmcData: IPmcData, body: IHideoutSingleProductionStartRequestData, sessionID: string): IItemEventRouterResponse; + scavCaseProductionStart(pmcData: IPmcData, body: IHideoutScavCaseStartRequestData, sessionID: string): IItemEventRouterResponse; + protected getRandomisedItemRarityCounter(recipe: IHideoutScavCase): { + [x: string]: number; + }; + protected getRandomisedScavRewards(rarityItemCounter: { + [x: string]: number; + }): Product[]; + continuousProductionStart(pmcData: IPmcData, body: IHideoutContinousProductionStartRequestData, sessionID: string): IItemEventRouterResponse; + takeProduction(pmcData: IPmcData, body: IHideoutTakeProductionRequestData, sessionID: string): IItemEventRouterResponse; + protected handleRecipie(sessionID: string, recipe: IHideoutProduction, pmcData: IPmcData, body: IHideoutTakeProductionRequestData, output: IItemEventRouterResponse): IItemEventRouterResponse; + protected handleScavCase(sessionID: string, pmcData: IPmcData, body: IHideoutTakeProductionRequestData, output: IItemEventRouterResponse): IItemEventRouterResponse; + registerProduction(pmcData: IPmcData, body: IHideoutSingleProductionStartRequestData | IHideoutContinousProductionStartRequestData, sessionID: string): IItemEventRouterResponse; + update(): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/InraidController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/InraidController.d.ts new file mode 100644 index 0000000..7f2036c --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/InraidController.d.ts @@ -0,0 +1,31 @@ +import { ExtendedProfileHelper } from "../helpers/ExtendedProfileHelper"; +import { HealthHelper } from "../helpers/HealthHelper"; +import { InRaidHelper } from "../helpers/InRaidHelper"; +import { ItemHelper } from "../helpers/ItemHelper"; +import { QuestHelper } from "../helpers/QuestHelper"; +import { TraderHelper } from "../helpers/TraderHelper"; +import { IRegisterPlayerRequestData } from "../models/eft/inRaid/IRegisterPlayerRequestData"; +import { ISaveProgressRequestData } from "../models/eft/inRaid/ISaveProgressRequestData"; +import { IInRaidConfig } from "../models/spt/config/IInRaidConfig"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { SaveServer } from "../servers/SaveServer"; +import { InsuranceService } from "../services/InsuranceService"; +import { JsonUtil } from "../utils/JsonUtil"; +export declare class InraidController { + protected saveServer: SaveServer; + protected jsonUtil: JsonUtil; + protected databaseServer: DatabaseServer; + protected questHelper: QuestHelper; + protected itemHelper: ItemHelper; + protected extendedProfileHelper: ExtendedProfileHelper; + protected healthHelper: HealthHelper; + protected traderHelper: TraderHelper; + protected insuranceService: InsuranceService; + protected inRaidHelper: InRaidHelper; + protected configServer: ConfigServer; + protected inraidConfig: IInRaidConfig; + constructor(saveServer: SaveServer, jsonUtil: JsonUtil, databaseServer: DatabaseServer, questHelper: QuestHelper, itemHelper: ItemHelper, extendedProfileHelper: ExtendedProfileHelper, healthHelper: HealthHelper, traderHelper: TraderHelper, insuranceService: InsuranceService, inRaidHelper: InRaidHelper, configServer: ConfigServer); + addPlayer(sessionID: string, info: IRegisterPlayerRequestData): void; + saveProgress(offraidData: ISaveProgressRequestData, sessionID: string): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/InsuranceController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/InsuranceController.d.ts new file mode 100644 index 0000000..db2c567 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/InsuranceController.d.ts @@ -0,0 +1,38 @@ +import { DialogueHelper } from "../helpers/DialogueHelper"; +import { ItemHelper } from "../helpers/ItemHelper"; +import { ProfileHelper } from "../helpers/ProfileHelper"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IGetInsuranceCostRequestData } from "../models/eft/insurance/IGetInsuranceCostRequestData"; +import { IInsureRequestData } from "../models/eft/insurance/IInsureRequestData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IInsuranceConfig } from "../models/spt/config/IInsuranceConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { SaveServer } from "../servers/SaveServer"; +import { InsuranceService } from "../services/InsuranceService"; +import { PaymentService } from "../services/PaymentService"; +import { RandomUtil } from "../utils/RandomUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +export declare class InsuranceController { + protected logger: ILogger; + protected randomUtil: RandomUtil; + protected itemEventRouter: ItemEventRouter; + protected timeUtil: TimeUtil; + protected saveServer: SaveServer; + protected databaseServer: DatabaseServer; + protected itemHelper: ItemHelper; + protected profileHelper: ProfileHelper; + protected dialogueHelper: DialogueHelper; + protected paymentService: PaymentService; + protected insuranceService: InsuranceService; + protected configServer: ConfigServer; + protected insuranceConfig: IInsuranceConfig; + constructor(logger: ILogger, randomUtil: RandomUtil, itemEventRouter: ItemEventRouter, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, itemHelper: ItemHelper, profileHelper: ProfileHelper, dialogueHelper: DialogueHelper, paymentService: PaymentService, // TODO: delay required + insuranceService: InsuranceService, configServer: ConfigServer); + processReturn(): void; + insure(pmcData: IPmcData, body: IInsureRequestData, sessionID: string): IItemEventRouterResponse; + cost(info: IGetInsuranceCostRequestData, sessionID: string): any; + doAbsolutelyNothing(): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/InventoryController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/InventoryController.d.ts new file mode 100644 index 0000000..b732aa9 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/InventoryController.d.ts @@ -0,0 +1,107 @@ +import { InventoryHelper } from "../helpers/InventoryHelper"; +import { PaymentHelper } from "../helpers/PaymentHelper"; +import { PresetHelper } from "../helpers/PresetHelper"; +import { ProfileHelper } from "../helpers/ProfileHelper"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IAddItemRequestData } from "../models/eft/inventory/IAddItemRequestData"; +import { IInventoryBindRequestData } from "../models/eft/inventory/IInventoryBindRequestData"; +import { IInventoryCreateMarkerRequestData } from "../models/eft/inventory/IInventoryCreateMarkerRequestData"; +import { IInventoryDeleteMarkerRequestData } from "../models/eft/inventory/IInventoryDeleteMarkerRequestData"; +import { IInventoryEditMarkerRequestData } from "../models/eft/inventory/IInventoryEditMarkerRequestData"; +import { IInventoryExamineRequestData } from "../models/eft/inventory/IInventoryExamineRequestData"; +import { IInventoryFoldRequestData } from "../models/eft/inventory/IInventoryFoldRequestData"; +import { IInventoryMergeRequestData } from "../models/eft/inventory/IInventoryMergeRequestData"; +import { IInventoryMoveRequestData } from "../models/eft/inventory/IInventoryMoveRequestData"; +import { IInventoryReadEncyclopediaRequestData } from "../models/eft/inventory/IInventoryReadEncyclopediaRequestData"; +import { IInventoryRemoveRequestData } from "../models/eft/inventory/IInventoryRemoveRequestData"; +import { IInventorySortRequestData } from "../models/eft/inventory/IInventorySortRequestData"; +import { IInventorySplitRequestData } from "../models/eft/inventory/IInventorySplitRequestData"; +import { IInventorySwapRequestData } from "../models/eft/inventory/IInventorySwapRequestData"; +import { IInventoryTagRequestData } from "../models/eft/inventory/IInventoryTagRequestData"; +import { IInventoryToggleRequestData } from "../models/eft/inventory/IInventoryToggleRequestData"; +import { IInventoryTransferRequestData } from "../models/eft/inventory/IInventoryTransferRequestData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { HashUtil } from "../utils/HashUtil"; +import { JsonUtil } from "../utils/JsonUtil"; +export declare class InventoryController { + protected logger: ILogger; + protected hashUtil: HashUtil; + protected jsonUtil: JsonUtil; + protected databaseServer: DatabaseServer; + protected presetHelper: PresetHelper; + protected inventoryHelper: InventoryHelper; + protected profileHelper: ProfileHelper; + protected paymentHelper: PaymentHelper; + protected itemEventRouter: ItemEventRouter; + constructor(logger: ILogger, hashUtil: HashUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, presetHelper: PresetHelper, inventoryHelper: InventoryHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, itemEventRouter: ItemEventRouter); + /** + * Move Item + * change location of item with parentId and slotId + * transfers items from one profile to another if fromOwner/toOwner is set in the body. + * otherwise, move is contained within the same profile_f. + */ + moveItem(pmcData: IPmcData, body: IInventoryMoveRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Remove Item from Profile + * Deep tree item deletion, also removes items from insurance list + */ + removeItem(pmcData: IPmcData, itemId: string, sessionID: string, output?: IItemEventRouterResponse): IItemEventRouterResponse; + /** + * Implements functionality "Discard" from Main menu (Stash etc.) + * Removes item from PMC Profile + */ + discardItem(pmcData: IPmcData, body: IInventoryRemoveRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Split Item + * spliting 1 item-stack into 2 separate items ... + */ + splitItem(pmcData: IPmcData, body: IInventorySplitRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Merge Item + * merges 2 items into one, deletes item from `body.item` and adding number of stacks into `body.with` + */ + mergeItem(pmcData: IPmcData, body: IInventoryMergeRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Transfer item + * Used to take items from scav inventory into stash or to insert ammo into mags (shotgun ones) and reloading weapon by clicking "Reload" + */ + transferItem(pmcData: IPmcData, body: IInventoryTransferRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Swap Item + * its used for "reload" if you have weapon in hands and magazine is somewhere else in rig or backpack in equipment + */ + swapItem(pmcData: IPmcData, body: IInventorySwapRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Give Item + * its used for "add" item like gifts etc. + */ + addItem(pmcData: IPmcData, body: IAddItemRequestData, output: IItemEventRouterResponse, sessionID: string, callback: any, foundInRaid?: boolean, addUpd?: any): IItemEventRouterResponse; + /** + * Handles folding of Weapons + */ + foldItem(pmcData: IPmcData, body: IInventoryFoldRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Toggles "Toggleable" items like night vision goggles and face shields. + */ + toggleItem(pmcData: IPmcData, body: IInventoryToggleRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Handles Tagging of items (primary Containers). + */ + tagItem(pmcData: IPmcData, body: IInventoryTagRequestData, sessionID: string): IItemEventRouterResponse; + bindItem(pmcData: IPmcData, body: IInventoryBindRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Handles examining of the item * + */ + examineItem(pmcData: IPmcData, body: IInventoryExamineRequestData, sessionID: string): IItemEventRouterResponse; + readEncyclopedia(pmcData: IPmcData, body: IInventoryReadEncyclopediaRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Handles sorting of Inventory. + */ + sortInventory(pmcData: IPmcData, body: IInventorySortRequestData, sessionID: string): IItemEventRouterResponse; + createMapMarker(pmcData: IPmcData, body: IInventoryCreateMarkerRequestData, sessionID: string): IItemEventRouterResponse; + deleteMapMarker(pmcData: IPmcData, body: IInventoryDeleteMarkerRequestData, sessionID: string): IItemEventRouterResponse; + editMapMarker(pmcData: IPmcData, body: IInventoryEditMarkerRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/LauncherController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/LauncherController.d.ts new file mode 100644 index 0000000..1af1f56 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/LauncherController.d.ts @@ -0,0 +1,28 @@ +import { HttpServerHelper } from "../helpers/HttpServerHelper"; +import { IChangeRequestData } from "../models/eft/launcher/IChangeRequestData"; +import { ILoginRequestData } from "../models/eft/launcher/ILoginRequestData"; +import { IRegisterData } from "../models/eft/launcher/IRegisterData"; +import { Info } from "../models/eft/profile/IAkiProfile"; +import { ICoreConfig } from "../models/spt/config/ICoreConfig"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { SaveServer } from "../servers/SaveServer"; +import { HashUtil } from "../utils/HashUtil"; +export declare class LauncherController { + protected hashUtil: HashUtil; + protected saveServer: SaveServer; + protected httpServerHelper: HttpServerHelper; + protected databaseServer: DatabaseServer; + protected configServer: ConfigServer; + protected coreConfig: ICoreConfig; + constructor(hashUtil: HashUtil, saveServer: SaveServer, httpServerHelper: HttpServerHelper, databaseServer: DatabaseServer, configServer: ConfigServer); + connect(): any; + find(sessionIdKey: string): Info; + login(info: ILoginRequestData): string; + register(info: IRegisterData): string; + protected createAccount(info: IRegisterData): string; + changeUsername(info: IChangeRequestData): string; + changePassword(info: IChangeRequestData): string; + wipe(info: IRegisterData): string; + getCompatibleTarkovVersion(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/LocationController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/LocationController.d.ts new file mode 100644 index 0000000..90b6d7a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/LocationController.d.ts @@ -0,0 +1,18 @@ +import { LocationGenerator } from "../generators/LocationGenerator"; +import { ILocationBase } from "../models/eft/common/ILocationBase"; +import { ILocationsGenerateAllResponse } from "../models/eft/common/ILocationsSourceDestinationBase"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { JsonUtil } from "../utils/JsonUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +export declare class LocationController { + protected jsonUtil: JsonUtil; + protected logger: ILogger; + protected locationGenerator: LocationGenerator; + protected databaseServer: DatabaseServer; + protected timeUtil: TimeUtil; + constructor(jsonUtil: JsonUtil, logger: ILogger, locationGenerator: LocationGenerator, databaseServer: DatabaseServer, timeUtil: TimeUtil); + get(location: string): ILocationBase; + generate(name: string): ILocationBase; + generateAll(): ILocationsGenerateAllResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/MatchController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/MatchController.d.ts new file mode 100644 index 0000000..c322d96 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/MatchController.d.ts @@ -0,0 +1,30 @@ +import { ProfileHelper } from "../helpers/ProfileHelper"; +import { TraderHelper } from "../helpers/TraderHelper"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IEndOfflineRaidRequestData } from "../models/eft/match/IEndOfflineRaidRequestData"; +import { IGetProfileRequestData } from "../models/eft/match/IGetProfileRequestData"; +import { IStartOfflineRaidRequestData } from "../models/eft/match/IStartOffineRaidRequestData"; +import { IInRaidConfig } from "../models/spt/config/IInRaidConfig"; +import { IMatchConfig } from "../models/spt/config/IMatchConfig"; +import { ConfigServer } from "../servers/ConfigServer"; +import { SaveServer } from "../servers/SaveServer"; +import { MatchLocationService } from "../services/MatchLocationService"; +export declare class MatchController { + protected saveServer: SaveServer; + protected profileHelper: ProfileHelper; + protected matchLocationService: MatchLocationService; + protected traderHelper: TraderHelper; + protected configServer: ConfigServer; + protected matchConfig: IMatchConfig; + protected inraidConfig: IInRaidConfig; + constructor(saveServer: SaveServer, profileHelper: ProfileHelper, matchLocationService: MatchLocationService, traderHelper: TraderHelper, configServer: ConfigServer); + getEnabled(): boolean; + getProfile(info: IGetProfileRequestData): IPmcData[]; + protected getMatch(location: any): any; + createGroup(sessionID: string, info: any): any; + deleteGroup(info: any): void; + joinMatch(info: any, sessionID: string): any[]; + getGroupStatus(info: any): any; + startOfflineRaid(info: IStartOfflineRaidRequestData, sessionID: string): void; + endOfflineRaid(info: IEndOfflineRaidRequestData, sessionID: string): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/NoteController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/NoteController.d.ts new file mode 100644 index 0000000..cc78383 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/NoteController.d.ts @@ -0,0 +1,12 @@ +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { INoteActionData } from "../models/eft/notes/INoteActionData"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +declare class NoteController { + protected itemEventRouter: ItemEventRouter; + constructor(itemEventRouter: ItemEventRouter); + addNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse; + editNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse; + deleteNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse; +} +export { NoteController }; diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/NotifierController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/NotifierController.d.ts new file mode 100644 index 0000000..31d7bfe --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/NotifierController.d.ts @@ -0,0 +1,22 @@ +import { NotifierHelper } from "../helpers/NotifierHelper"; +import { NotificationService } from "../services/NotificationService"; +import { INotifierChannel } from "../models/eft/notifier/INotifier"; +import { HttpServerHelper } from "../helpers/HttpServerHelper"; +export declare class NotifierController { + protected notifierHelper: NotifierHelper; + protected httpServerHelper: HttpServerHelper; + protected notificationService: NotificationService; + protected pollInterval: number; + protected timeout: number; + constructor(notifierHelper: NotifierHelper, httpServerHelper: HttpServerHelper, notificationService: NotificationService); + /** + * Resolve an array of session notifications. + * + * If no notifications are currently queued then intermittently check for new notifications until either + * one or more appear or when a timeout expires. + * If no notifications are available after the timeout, use a default message. + */ + notifyAsync(sessionID: string): Promise; + getServer(sessionID: string): string; + getChannel(sessionID: string): INotifierChannel; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/PresetBuildController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/PresetBuildController.d.ts new file mode 100644 index 0000000..adf4084 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/PresetBuildController.d.ts @@ -0,0 +1,18 @@ +import { ItemHelper } from "../helpers/ItemHelper"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IPresetBuildActionRequestData } from "../models/eft/presetBuild/IPresetBuildActionRequestData"; +import { WeaponBuild } from "../models/eft/profile/IAkiProfile"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { SaveServer } from "../servers/SaveServer"; +import { HashUtil } from "../utils/HashUtil"; +export declare class PresetBuildController { + protected hashUtil: HashUtil; + protected itemEventRouter: ItemEventRouter; + protected itemHelper: ItemHelper; + protected saveServer: SaveServer; + constructor(hashUtil: HashUtil, itemEventRouter: ItemEventRouter, itemHelper: ItemHelper, saveServer: SaveServer); + getUserBuilds(sessionID: string): WeaponBuild[]; + saveBuild(pmcData: IPmcData, body: IPresetBuildActionRequestData, sessionID: string): IItemEventRouterResponse; + removeBuild(pmcData: IPmcData, body: IPresetBuildActionRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/PresetController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/PresetController.d.ts new file mode 100644 index 0000000..ca1af1a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/PresetController.d.ts @@ -0,0 +1,8 @@ +import { PresetHelper } from "../helpers/PresetHelper"; +import { DatabaseServer } from "../servers/DatabaseServer"; +export declare class PresetController { + protected presetHelper: PresetHelper; + protected databaseServer: DatabaseServer; + constructor(presetHelper: PresetHelper, databaseServer: DatabaseServer); + initialize(): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/ProfileController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/ProfileController.d.ts new file mode 100644 index 0000000..9b7a6d5 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/ProfileController.d.ts @@ -0,0 +1,34 @@ +import { ExtendedProfileHelper } from "../helpers/ExtendedProfileHelper"; +import { ItemHelper } from "../helpers/ItemHelper"; +import { TraderHelper } from "../helpers/TraderHelper"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IMiniProfile } from "../models/eft/launcher/IMiniProfile"; +import { IProfileChangeNicknameRequestData } from "../models/eft/profile/IProfileChangeNicknameRequestData"; +import { IProfileChangeVoiceRequestData } from "../models/eft/profile/IProfileChangeVoiceRequestData"; +import { IProfileCreateRequestData } from "../models/eft/profile/IProfileCreateRequestData"; +import { ISearchFriendRequestData } from "../models/eft/profile/ISearchFriendRequestData"; +import { ISearchFriendResponse } from "../models/eft/profile/ISearchFriendResponse"; +import { IValidateNicknameRequestData } from "../models/eft/profile/IValidateNicknameRequestData"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { SaveServer } from "../servers/SaveServer"; +import { HashUtil } from "../utils/HashUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +export declare class ProfileController { + protected hashUtil: HashUtil; + protected timeUtil: TimeUtil; + protected saveServer: SaveServer; + protected databaseServer: DatabaseServer; + protected itemHelper: ItemHelper; + protected traderHelper: TraderHelper; + protected extendedProfileHelper: ExtendedProfileHelper; + constructor(hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, itemHelper: ItemHelper, traderHelper: TraderHelper, extendedProfileHelper: ExtendedProfileHelper); + getMiniProfiles(): IMiniProfile[]; + getMiniProfile(sessionID: string): any; + getCompleteProfile(sessionID: string): IPmcData[]; + createProfile(info: IProfileCreateRequestData, sessionID: string): void; + generatePlayerScav(sessionID: string): IPmcData; + validateNickname(info: IValidateNicknameRequestData, sessionID: string): string; + changeNickname(info: IProfileChangeNicknameRequestData, sessionID: string): string; + changeVoice(info: IProfileChangeVoiceRequestData, sessionID: string): void; + getFriends(info: ISearchFriendRequestData, sessionID: string): ISearchFriendResponse[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/QuestController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/QuestController.d.ts new file mode 100644 index 0000000..2cbccfb --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/QuestController.d.ts @@ -0,0 +1,76 @@ +import { DialogueHelper } from "../helpers/DialogueHelper"; +import { ItemHelper } from "../helpers/ItemHelper"; +import { ProfileHelper } from "../helpers/ProfileHelper"; +import { QuestConditionHelper } from "../helpers/QuestConditionHelper"; +import { QuestHelper } from "../helpers/QuestHelper"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IQuest, Reward } from "../models/eft/common/tables/IQuest"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IAcceptQuestRequestData } from "../models/eft/quests/IAcceptQuestRequestData"; +import { ICompleteQuestRequestData } from "../models/eft/quests/ICompleteQuestRequestData"; +import { IHandoverQuestRequestData } from "../models/eft/quests/IHandoverQuestRequestData"; +import { IQuestConfig } from "../models/spt/config/IQuestConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { LocaleService } from "../services/LocaleService"; +import { PlayerService } from "../services/PlayerService"; +import { TimeUtil } from "../utils/TimeUtil"; +export declare class QuestController { + protected logger: ILogger; + protected timeUtil: TimeUtil; + protected itemEventRouter: ItemEventRouter; + protected databaseServer: DatabaseServer; + protected itemHelper: ItemHelper; + protected dialogueHelper: DialogueHelper; + protected profileHelper: ProfileHelper; + protected questHelper: QuestHelper; + protected questConditionHelper: QuestConditionHelper; + protected playerService: PlayerService; + protected localeService: LocaleService; + protected configServer: ConfigServer; + protected questConfig: IQuestConfig; + constructor(logger: ILogger, timeUtil: TimeUtil, itemEventRouter: ItemEventRouter, databaseServer: DatabaseServer, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, configServer: ConfigServer); + /** + * Get all quests visible to player + * Exclude quests with incomplete preconditions (level/loyalty) + * @param sessionID session id + * @returns array of IQuest + */ + getClientQuests(sessionID: string): IQuest[]; + acceptQuest(pmcData: IPmcData, acceptedQuest: IAcceptQuestRequestData, sessionID: string): IItemEventRouterResponse; + acceptRepeatableQuest(pmcData: IPmcData, acceptedQuest: IAcceptQuestRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Remove completed quest from profile + * Add newly unlocked quests to profile + * Also recalculate thier level due to exp rewards + * @param pmcData Player profile + * @param body completed quest request + * @param sessionID session id + * @returns ItemEvent response + */ + completeQuest(pmcData: IPmcData, body: ICompleteQuestRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Send a popup to player on completion of a quest + * @param sessionID session id + * @param pmcData player profile + * @param completedQuestId completed quest id + * @param questRewards rewards given to player + */ + protected sendDialogMessageOnQuestComplete(sessionID: string, pmcData: IPmcData, completedQuestId: string, questRewards: Reward[]): void; + /** + * Returns a list of quests that should be failed when a quest is completed + * @param completedQuestId quest completed id + * @returns array of quests + */ + protected getQuestsFailedByCompletingQuest(completedQuestId: string): IQuest[]; + /** + * Fail the quests provided + * @param sessionID session id + * @param pmcData player profile + * @param questsToFail quests to fail + */ + protected failQuests(sessionID: string, pmcData: IPmcData, questsToFail: IQuest[]): void; + handoverQuest(pmcData: IPmcData, body: IHandoverQuestRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/RagfairController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/RagfairController.d.ts new file mode 100644 index 0000000..c758593 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/RagfairController.d.ts @@ -0,0 +1,70 @@ +import { RagfairOfferGenerator } from "../generators/RagfairOfferGenerator"; +import { HandbookHelper } from "../helpers/HandbookHelper"; +import { InventoryHelper } from "../helpers/InventoryHelper"; +import { ItemHelper } from "../helpers/ItemHelper"; +import { PaymentHelper } from "../helpers/PaymentHelper"; +import { ProfileHelper } from "../helpers/ProfileHelper"; +import { RagfairHelper } from "../helpers/RagfairHelper"; +import { RagfairOfferHelper } from "../helpers/RagfairOfferHelper"; +import { RagfairSellHelper } from "../helpers/RagfairSellHelper"; +import { RagfairSortHelper } from "../helpers/RagfairSortHelper"; +import { RagfairTaxHelper } from "../helpers/RagfairTaxHelper"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { Item } from "../models/eft/common/tables/IItem"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IAkiProfile } from "../models/eft/profile/IAkiProfile"; +import { IAddOfferRequestData, Requirement } from "../models/eft/ragfair/IAddOfferRequestData"; +import { IExtendOfferRequestData } from "../models/eft/ragfair/IExtendOfferRequestData"; +import { IGetItemPriceResult } from "../models/eft/ragfair/IGetItemPriceResult"; +import { IGetMarketPriceRequestData } from "../models/eft/ragfair/IGetMarketPriceRequestData"; +import { IGetOffersResult } from "../models/eft/ragfair/IGetOffersResult"; +import { IRagfairOffer } from "../models/eft/ragfair/IRagfairOffer"; +import { ISearchRequestData } from "../models/eft/ragfair/ISearchRequestData"; +import { IRagfairConfig } from "../models/spt/config/IRagfairConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { RagfairServer } from "../servers/RagfairServer"; +import { SaveServer } from "../servers/SaveServer"; +import { PaymentService } from "../services/PaymentService"; +import { RagfairOfferService } from "../services/RagfairOfferService"; +import { RagfairPriceService } from "../services/RagfairPriceService"; +import { RagfairRequiredItemsService } from "../services/RagfairRequiredItemsService"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +export declare class RagfairController { + protected logger: ILogger; + protected timeUtil: TimeUtil; + protected httpResponse: HttpResponseUtil; + protected itemEventRouter: ItemEventRouter; + protected ragfairServer: RagfairServer; + protected ragfairPriceService: RagfairPriceService; + protected databaseServer: DatabaseServer; + protected itemHelper: ItemHelper; + protected saveServer: SaveServer; + protected ragfairSellHelper: RagfairSellHelper; + protected ragfairTaxHelper: RagfairTaxHelper; + protected ragfairSortHelper: RagfairSortHelper; + protected ragfairOfferHelper: RagfairOfferHelper; + protected profileHelper: ProfileHelper; + protected paymentService: PaymentService; + protected handbookHelper: HandbookHelper; + protected paymentHelper: PaymentHelper; + protected inventoryHelper: InventoryHelper; + protected ragfairHelper: RagfairHelper; + protected ragfairOfferService: RagfairOfferService; + protected ragfairRequiredItemsService: RagfairRequiredItemsService; + protected ragfairOfferGenerator: RagfairOfferGenerator; + protected configServer: ConfigServer; + protected ragfairConfig: IRagfairConfig; + constructor(logger: ILogger, timeUtil: TimeUtil, httpResponse: HttpResponseUtil, itemEventRouter: ItemEventRouter, ragfairServer: RagfairServer, ragfairPriceService: RagfairPriceService, databaseServer: DatabaseServer, itemHelper: ItemHelper, saveServer: SaveServer, ragfairSellHelper: RagfairSellHelper, ragfairTaxHelper: RagfairTaxHelper, ragfairSortHelper: RagfairSortHelper, ragfairOfferHelper: RagfairOfferHelper, profileHelper: ProfileHelper, paymentService: PaymentService, handbookHelper: HandbookHelper, paymentHelper: PaymentHelper, inventoryHelper: InventoryHelper, ragfairHelper: RagfairHelper, ragfairOfferService: RagfairOfferService, ragfairRequiredItemsService: RagfairRequiredItemsService, ragfairOfferGenerator: RagfairOfferGenerator, configServer: ConfigServer); + getOffers(sessionID: string, info: ISearchRequestData): IGetOffersResult; + update(): void; + getItemPrice(info: IGetMarketPriceRequestData): IGetItemPriceResult; + addPlayerOffer(pmcData: IPmcData, info: IAddOfferRequestData, sessionID: string): IItemEventRouterResponse; + createPlayerOffer(profile: IAkiProfile, requirements: Requirement[], items: Item[], sellInOnePiece: boolean, amountToSend: number): IRagfairOffer; + getAllFleaPrices(): Record; + removeOffer(offerId: string, sessionID: string): IItemEventRouterResponse; + extendOffer(info: IExtendOfferRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/RepairController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/RepairController.d.ts new file mode 100644 index 0000000..330684d --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/RepairController.d.ts @@ -0,0 +1,42 @@ +import { QuestHelper } from "../helpers/QuestHelper"; +import { RepairHelper } from "../helpers/RepairHelper"; +import { TraderHelper } from "../helpers/TraderHelper"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IRepairActionDataRequest } from "../models/eft/repair/IRepairActionDataRequest"; +import { ITraderRepairActionDataRequest } from "../models/eft/repair/ITraderRepairActionDataRequest"; +import { IRepairConfig } from "../models/spt/config/IRepairConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { PaymentService } from "../services/PaymentService"; +export declare class RepairController { + protected logger: ILogger; + protected itemEventRouter: ItemEventRouter; + protected databaseServer: DatabaseServer; + protected questHelper: QuestHelper; + protected traderHelper: TraderHelper; + protected paymentService: PaymentService; + protected repairHelper: RepairHelper; + protected configServer: ConfigServer; + protected repairConfig: IRepairConfig; + protected readonly WEAPON_SKILL_REPAIR_GAIN: number; + constructor(logger: ILogger, itemEventRouter: ItemEventRouter, databaseServer: DatabaseServer, questHelper: QuestHelper, traderHelper: TraderHelper, paymentService: PaymentService, repairHelper: RepairHelper, configServer: ConfigServer); + /** + * Repair with trader + * @param pmcData player profile + * @param body endpoint request data + * @param sessionID session id + * @returns item event router action + */ + traderRepair(pmcData: IPmcData, body: ITraderRepairActionDataRequest, sessionID: string): IItemEventRouterResponse; + /** + * Repair with repair kit + * @param pmcData player profile + * @param body endpoint request data + * @param sessionID session id + * @returns item event router action + */ + repairWithKit(pmcData: IPmcData, body: IRepairActionDataRequest, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/RepeatableQuestController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/RepeatableQuestController.d.ts new file mode 100644 index 0000000..9aa9590 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/RepeatableQuestController.d.ts @@ -0,0 +1,219 @@ +import { GameHelper } from "../helpers/GameHelper"; +import { ItemHelper } from "../helpers/ItemHelper"; +import { PresetHelper } from "../helpers/PresetHelper"; +import { ProfileHelper } from "../helpers/ProfileHelper"; +import { RagfairServerHelper } from "../helpers/RagfairServerHelper"; +import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; +import { Exit } from "../models/eft/common/ILocationBase"; +import { IPmcData, TraderInfo } from "../models/eft/common/IPmcData"; +import { ICompletion, ICompletionAvailableFor, IElimination, IEliminationCondition, IExploration, IExplorationCondition, IPmcDataRepeatableQuest, IRepeatableQuest, IReward, IRewards } from "../models/eft/common/tables/IRepeatableQuests"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IRepeatableQuestChangeRequest } from "../models/eft/quests/IRepeatableQuestChangeRequest"; +import { ELocationName } from "../models/enums/ELocationName"; +import { IQuestConfig, IRepeatableQuestConfig } from "../models/spt/config/IQuestConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { PaymentService } from "../services/PaymentService"; +import { JsonUtil } from "../utils/JsonUtil"; +import { MathUtil } from "../utils/MathUtil"; +import { ObjectId } from "../utils/ObjectId"; +import { ProbabilityObject, ProbabilityObjectArray, RandomUtil } from "../utils/RandomUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +export interface IQuestTypePool { + types: string[]; + pool: IQuestPool; +} +export interface IQuestPool { + Exploration: IExplorationPool; + Elimination: IEliminationPool; +} +export interface IExplorationPool { + locations: Partial>; +} +export interface IEliminationPool { + targets: IEliminationTargetPool; +} +export interface IEliminationTargetPool { + Savage?: ITargetLocation; + AnyPmc?: ITargetLocation; + bossBully?: ITargetLocation; + bossGluhar?: ITargetLocation; + bossKilla?: ITargetLocation; + bossSanitar?: ITargetLocation; + bossTagilla?: ITargetLocation; + bossKojaniy?: ITargetLocation; +} +export interface ITargetLocation { + locations: string[]; +} +export declare class RepeatableQuestController { + protected timeUtil: TimeUtil; + protected logger: ILogger; + protected randomUtil: RandomUtil; + protected mathUtil: MathUtil; + protected jsonUtil: JsonUtil; + protected databaseServer: DatabaseServer; + protected itemHelper: ItemHelper; + protected presetHelper: PresetHelper; + protected profileHelper: ProfileHelper; + protected gameHelper: GameHelper; + protected ragfairServerHelper: RagfairServerHelper; + protected itemEventRouter: ItemEventRouter; + protected paymentService: PaymentService; + protected objectId: ObjectId; + protected configServer: ConfigServer; + protected questConfig: IQuestConfig; + constructor(timeUtil: TimeUtil, logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, itemHelper: ItemHelper, presetHelper: PresetHelper, profileHelper: ProfileHelper, gameHelper: GameHelper, ragfairServerHelper: RagfairServerHelper, itemEventRouter: ItemEventRouter, paymentService: PaymentService, objectId: ObjectId, configServer: ConfigServer); + /** + * This is the method reached by the /client/repeatalbeQuests/activityPeriods endpoint + * Returns an array of objects in the format of repeatable quests to the client. + * repeatableQuestObject = { + * id: Unique Id, + * name: "Daily", + * endTime: the time when the quests expire + * activeQuests: currently available quests in an array. Each element of quest type format (see assets/database/templates/repeatableQuests.json). + * inactiveQuests: the quests which were previously active (required by client to fail them if they are not completed) + * } + * + * The method checks if the player level requirement for repeatable quests (e.g. daily lvl5, weekly lvl15) is met and if the previously active quests + * are still valid. This ischecked by endTime persisted in profile accordning to the resetTime configured for each repeatable kind (daily, weekly) + * in QuestCondig.js + * + * If the condition is met, new repeatableQuests are created, old quests (which are persisted in the profile.RepeatableQuests[i].activeQuests) are + * moved to profile.RepeatableQuests[i].inactiveQuests. This memory is required to get rid of old repeatable quest data in the profile, otherwise + * they'll litter the profile's Quests field. + * (if the are on "Succeed" but not "Completed" we keep them, to allow the player to complete them and get the rewards) + * The new quests generated are again persisted in profile.RepeatableQuests + * + * + * @param {string} sessionId Player's session id + * @returns {array} array of "repeatableQuestObjects" as descibed above + */ + getClientRepeatableQuests(_info: IEmptyRequestData, sessionID: string): IPmcDataRepeatableQuest[]; + /** + * This method is called by GetClientRepeatableQuests and creates one element of quest type format (see assets/database/templates/repeatableQuests.json). + * It randomly draws a quest type (currently Elimination, Completion or Exploration) as well as a trader who is providing the quest + */ + generateRepeatableQuest(pmcLevel: number, pmcTraderInfo: Record, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest; + /** + * Just for debug reasons. Draws dailies a random assort of dailies extracted from dumps + */ + generateDebugDailies(dailiesPool: any, factory: any, number: any): any; + /** + * Generates the base object of quest type format given as templates in assets/database/templates/repeatableQuests.json + * The templates include Elimination, Completion and Extraction quest types + * + * @param {string} type quest type: "Elimination", "Completion" or "Extraction" + * @param {string} traderId trader from which the quest will be provided + * @returns {object} a object which contains the base elements for repeatable quests of the requests type + * (needs to be filled with reward and conditions by called to make a valid quest) + */ + generateRepeatableTemplate(type: string, traderId: string): IRepeatableQuest; + /** + * Generates a valid Exploration quest + * + * @param {integer} pmcLevel player's level for reward generation + * @param {string} traderId trader from which the quest will be provided + * @param {object} questTypePool Pools for quests (used to avoid redundant quests) + * @param {object} repeatableConfig The configuration for the repeatably kind (daily, weekly) as configured in QuestConfig for the requestd quest + * @returns {object} object of quest type format for "Exploration" (see assets/database/templates/repeatableQuests.json) + */ + generateExplorationQuest(pmcLevel: number, traderId: string, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IExploration; + /** + * Generates a valid Completion quest + * + * @param {integer} pmcLevel player's level for requested items and reward generation + * @param {string} traderId trader from which the quest will be provided + * @param {object} repeatableConfig The configuration for the repeatably kind (daily, weekly) as configured in QuestConfig for the requestd quest + * @returns {object} object of quest type format for "Completion" (see assets/database/templates/repeatableQuests.json) + */ + generateCompletionQuest(pmcLevel: number, traderId: string, repeatableConfig: IRepeatableQuestConfig): ICompletion; + /** + * Generates a valid Elimination quest + * + * @param {integer} pmcLevel player's level for requested items and reward generation + * @param {string} traderId trader from which the quest will be provided + * @param {object} questTypePool Pools for quests (used to avoid redundant quests) + * @param {object} repeatableConfig The configuration for the repeatably kind (daily, weekly) as configured in QuestConfig for the requestd quest + * @returns {object} object of quest type format for "Elimination" (see assets/database/templates/repeatableQuests.json) + */ + generateEliminationQuest(pmcLevel: number, traderId: string, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IElimination; + /** + * Exploration repeatable quests can specify a required extraction point. + * This method creates the according object which will be appended to the conditions array + * + * @param {string} exit The exit name to generate the condition for + * @returns {object} Exit condition + */ + generateExplorationExitCondition(exit: Exit): IExplorationCondition; + /** + * A repeatable quest, besides some more or less static components, exists of reward and condition (see assets/database/templates/repeatableQuests.json) + * This is a helper method for GenerateCompletionQuest to create a completion condition (of which a completion quest theoretically can have many) + * + * @param {string} targetItemId id of the item to request + * @param {integer} value amount of items of this specific type to request + * @returns {object} object of "Completion"-condition + */ + generateCompletionAvailableForFinish(targetItemId: string, value: number): ICompletionAvailableFor; + /** + * A repeatable quest, besides some more or less static components, exists of reward and condition (see assets/database/templates/repeatableQuests.json) + * This is a helper method for GenerateEliminationQuest to create a location condition. + * + * @param {string} location the location on which to fulfill the elimination quest + * @returns {object} object of "Elimination"-location-subcondition + */ + generateEliminationLocation(location: string[]): IEliminationCondition; + /** + * A repeatable quest, besides some more or less static components, exists of reward and condition (see assets/database/templates/repeatableQuests.json) + * This is a helper method for GenerateEliminationQuest to create a kill condition. + * + * @param {string} target array of target npcs e.g. "AnyPmc", "Savage" + * @param {array} bodyParts array of body parts with which to kill e.g. ["stomach", "thorax"] + * @param {number} distance distance from which to kill (currently only >= supported) + * @returns {object} object of "Elimination"-kill-subcondition + */ + generateEliminationCondition(target: string, bodyPart: string[], distance: number): IEliminationCondition; + /** + * Used to create a quest pool during each cycle of repeatable quest generation. The pool will be subsequently + * narrowed down during quest generation to avoid duplicate quests. Like duplicate extractions or elimination quests + * where you have to e.g. kill scavs in same locations. + * + * @returns {object} the quest pool + */ + generateQuestPool(repeatableConfig: IRepeatableQuestConfig): IQuestTypePool; + /** + * Generate the reward for a mission. A reward can consist of + * - Experience + * - Money + * - Items + * - Trader Reputation + * + * The reward is dependent on the player level as given by the wiki. The exact mapping of pmcLevel to + * experience / money / items / trader reputation can be defined in QuestConfig.js + * + * There's also a random variation of the reward the spread of which can be also defined in the config. + * + * Additonaly, a scaling factor w.r.t. quest difficulty going from 0.2...1 can be used + * + * @param {integer} pmcLevel player's level + * @param {number} difficulty a reward scaling factor goint from 0.2 to 1 + * @param {string} traderId the trader for reputation gain (and possible in the future filtering of reward item type based on trader) + * @param {object} repeatableConfig The configuration for the repeatably kind (daily, weekly) as configured in QuestConfig for the requestd quest + * @returns {object} object of "Reward"-type that can be given for a repeatable mission + */ + generateReward(pmcLevel: number, difficulty: number, traderId: string, repeatableConfig: IRepeatableQuestConfig): IRewards; + /** + * Helper to create a reward item structured as required by the client + * + * @param {string} tpl itemId of the rewarded item + * @param {integer} value amount of items to give + * @param {integer} index all rewards will be appended to a list, for unkown reasons the client wants the index + * @returns {object} object of "Reward"-item-type + */ + generateRewardItem(tpl: string, value: number, index: number, preset?: any): IReward; + debugLogRepeatableQuestIds(pmcData: IPmcData): void; + probabilityObjectArray(configArrayInput: ProbabilityObject[]): ProbabilityObjectArray; + changeRepeatableQuest(pmcDataIn: IPmcData, body: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/TradeController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/TradeController.d.ts new file mode 100644 index 0000000..c86745c --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/TradeController.d.ts @@ -0,0 +1,21 @@ +import { RagfairServer } from "../servers/RagfairServer"; +import { ProfileHelper } from "../helpers/ProfileHelper"; +import { TradeHelper } from "../helpers/TradeHelper"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IProcessRagfairTradeRequestData } from "../models/eft/trade/IProcessRagfairTradeRequestData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { Upd } from "../models/eft/common/tables/IItem"; +import { IProcessBaseTradeRequestData } from "../models/eft/trade/IProcessBaseTradeRequestData"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { ILogger } from "../models/spt/utils/ILogger"; +declare class TradeController { + protected logger: ILogger; + protected itemEventRouter: ItemEventRouter; + protected tradeHelper: TradeHelper; + protected profileHelper: ProfileHelper; + protected ragfairServer: RagfairServer; + constructor(logger: ILogger, itemEventRouter: ItemEventRouter, tradeHelper: TradeHelper, profileHelper: ProfileHelper, ragfairServer: RagfairServer); + confirmTrading(pmcData: IPmcData, body: IProcessBaseTradeRequestData, sessionID: string, foundInRaid?: boolean, upd?: Upd): IItemEventRouterResponse; + confirmRagfairTrading(pmcData: IPmcData, body: IProcessRagfairTradeRequestData, sessionID: string): IItemEventRouterResponse; +} +export { TradeController }; diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/TraderController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/TraderController.d.ts new file mode 100644 index 0000000..7bab158 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/TraderController.d.ts @@ -0,0 +1,26 @@ +import { ProfileHelper } from "../helpers/ProfileHelper"; +import { TraderAssortHelper } from "../helpers/TraderAssortHelper"; +import { TraderHelper } from "../helpers/TraderHelper"; +import { IBarterScheme, ITraderAssort, ITraderBase } from "../models/eft/common/tables/ITrader"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { TraderAssortService } from "../services/TraderAssortService"; +import { JsonUtil } from "../utils/JsonUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +export declare class TraderController { + protected logger: ILogger; + protected databaseServer: DatabaseServer; + protected traderAssortHelper: TraderAssortHelper; + protected profileHelper: ProfileHelper; + protected traderHelper: TraderHelper; + protected timeUtil: TimeUtil; + protected traderAssortService: TraderAssortService; + protected jsonUtil: JsonUtil; + constructor(logger: ILogger, databaseServer: DatabaseServer, traderAssortHelper: TraderAssortHelper, profileHelper: ProfileHelper, traderHelper: TraderHelper, timeUtil: TimeUtil, traderAssortService: TraderAssortService, jsonUtil: JsonUtil); + load(): void; + getTrader(traderID: string, sessionID: string): ITraderBase; + getAllTraders(sessionID: string): ITraderBase[]; + updateTraders(): boolean; + getAssort(sessionId: string, traderId: string): ITraderAssort; + getPurchasesData(traderID: string, sessionID: string): Record; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/WeatherController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/WeatherController.d.ts new file mode 100644 index 0000000..ca7f5eb --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/WeatherController.d.ts @@ -0,0 +1,11 @@ +import { WeatherGenerator } from "../generators/WeatherGenerator"; +import { IWeatherData } from "../models/eft/weather/IWeatherData"; +import { IWeatherConfig } from "../models/spt/config/IWeatherConfig"; +import { ConfigServer } from "../servers/ConfigServer"; +export declare class WeatherController { + protected weatherGenerator: WeatherGenerator; + protected configServer: ConfigServer; + protected weatherConfig: IWeatherConfig; + constructor(weatherGenerator: WeatherGenerator, configServer: ConfigServer); + generate(): IWeatherData; +} diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/WishlistController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/WishlistController.d.ts new file mode 100644 index 0000000..a96c522 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/controllers/WishlistController.d.ts @@ -0,0 +1,10 @@ +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IWishlistActionData } from "../models/eft/wishlist/IWishlistActionData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +export declare class WishlistController { + protected itemEvenRouter: ItemEventRouter; + constructor(itemEvenRouter: ItemEventRouter); + addToWishList(pmcData: IPmcData, body: IWishlistActionData, sessionID: string): IItemEventRouterResponse; + removeFromWishList(pmcData: IPmcData, body: IWishlistActionData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/di/Container.d.ts b/TypeScript/14AfterDBLoadHook/types/di/Container.d.ts new file mode 100644 index 0000000..17791b0 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/di/Container.d.ts @@ -0,0 +1,14 @@ +import { DependencyContainer } from "tsyringe"; +export declare class Container { + static registerTypes(depContainer: DependencyContainer): void; + static registerListTypes(depContainer: DependencyContainer): void; + private static registerUtils; + private static registerRouters; + private static registerGenerators; + private static registerHelpers; + private static registerLoaders; + private static registerCallbacks; + private static registerServices; + private static registerServers; + private static registerControllers; +} diff --git a/TypeScript/14AfterDBLoadHook/types/di/OnLoad.d.ts b/TypeScript/14AfterDBLoadHook/types/di/OnLoad.d.ts new file mode 100644 index 0000000..064d07d --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/di/OnLoad.d.ts @@ -0,0 +1,4 @@ +export declare class OnLoad { + onLoad(): void; + getRoute(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/di/OnLoadOnUpdate.d.ts b/TypeScript/14AfterDBLoadHook/types/di/OnLoadOnUpdate.d.ts new file mode 100644 index 0000000..8bd3dc3 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/di/OnLoadOnUpdate.d.ts @@ -0,0 +1,7 @@ +import { OnLoad } from "./OnLoad"; +import { OnUpdate } from "./OnUpdate"; +export declare class OnLoadOnUpdate implements OnLoad, OnUpdate { + onUpdate(timeSinceLastRun: number): boolean; + onLoad(): void; + getRoute(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/di/OnUpdate.d.ts b/TypeScript/14AfterDBLoadHook/types/di/OnUpdate.d.ts new file mode 100644 index 0000000..7fbbe09 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/di/OnUpdate.d.ts @@ -0,0 +1,4 @@ +export declare class OnUpdate { + onUpdate(timeSinceLastRun: number): boolean; + getRoute(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/di/Router.d.ts b/TypeScript/14AfterDBLoadHook/types/di/Router.d.ts new file mode 100644 index 0000000..2fb98e0 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/di/Router.d.ts @@ -0,0 +1,40 @@ +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IAkiProfile } from "../models/eft/profile/IAkiProfile"; +export declare class Router { + private handledRoutes; + getTopLevelRoute(): string; + protected getHandledRoutes(): HandledRoute[]; + private getInternalHandledRoutes; + canHandle(url: string, partialMatch?: boolean): boolean; +} +export declare class StaticRouter extends Router { + private routes; + constructor(routes: RouteAction[]); + handleStatic(url: string, info: any, sessionID: string, output: string): any; + getHandledRoutes(): HandledRoute[]; +} +export declare class DynamicRouter extends Router { + private routes; + constructor(routes: RouteAction[]); + handleDynamic(url: string, info: any, sessionID: string, output: string): any; + getHandledRoutes(): HandledRoute[]; +} +export declare class ItemEventRouterDefinition extends Router { + constructor(); + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} +export declare class SaveLoadRouter extends Router { + constructor(); + handleLoad(profile: IAkiProfile): IAkiProfile; +} +export declare class HandledRoute { + route: string; + dynamic: boolean; + constructor(route: string, dynamic: boolean); +} +export declare class RouteAction { + url: string; + action: (url: string, info: any, sessionID: string, output: string) => any; + constructor(url: string, action: (url: string, info: any, sessionID: string, output: string) => any); +} diff --git a/TypeScript/14AfterDBLoadHook/types/di/Serializer.d.ts b/TypeScript/14AfterDBLoadHook/types/di/Serializer.d.ts new file mode 100644 index 0000000..70aa7c5 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/di/Serializer.d.ts @@ -0,0 +1,5 @@ +import { IHttpServer } from "../models/spt/server/IHttpServer"; +export declare class Serializer { + serialize(sessionID: string, req: any, resp: any, body: any, httpServer: IHttpServer): void; + canHandle(something: string): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/generators/BotGenerator.d.ts b/TypeScript/14AfterDBLoadHook/types/generators/BotGenerator.d.ts new file mode 100644 index 0000000..88a8014 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/generators/BotGenerator.d.ts @@ -0,0 +1,46 @@ +import { BotHelper } from "../helpers/BotHelper"; +import { GameEventHelper } from "../helpers/GameEventHelper"; +import { IGenerateBotsRequestData } from "../models/eft/bot/IGenerateBotsRequestData"; +import { Health as PmcHealth } from "../models/eft/common/IPmcData"; +import { IBotBase } from "../models/eft/common/tables/IBotBase"; +import { Health, Inventory, Skills } from "../models/eft/common/tables/IBotType"; +import { IBotConfig } from "../models/spt/config/IBotConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { HashUtil } from "../utils/HashUtil"; +import { JsonUtil } from "../utils/JsonUtil"; +import { RandomUtil } from "../utils/RandomUtil"; +import { BotInventoryGenerator } from "./BotInventoryGenerator"; +declare namespace BotGenerator { + interface IRandomisedBotLevelResult { + level: number; + exp: number; + } +} +export declare class BotGenerator { + protected logger: ILogger; + protected hashUtil: HashUtil; + protected randomUtil: RandomUtil; + protected jsonUtil: JsonUtil; + protected databaseServer: DatabaseServer; + protected botInventoryGenerator: BotInventoryGenerator; + protected botHelper: BotHelper; + protected gameEventHelper: GameEventHelper; + protected configServer: ConfigServer; + protected botConfig: IBotConfig; + constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botHelper: BotHelper, gameEventHelper: GameEventHelper, configServer: ConfigServer); + generate(info: IGenerateBotsRequestData, playerScav?: boolean): IBotBase[]; + protected generateBot(bot: IBotBase, role: string, isPmc: boolean): IBotBase; + protected generateRandomLevel(min: number, max: number): BotGenerator.IRandomisedBotLevelResult; + /** Converts health object to the required format */ + protected generateHealth(healthObj: Health, playerScav?: boolean): PmcHealth; + protected generateSkills(skillsObj: Skills): Skills; + protected getPmcRole(pmcSide: string): string; + protected removeChristmasItemsFromBotInventory(nodeInventory: Inventory): void; + protected generateId(bot: IBotBase): IBotBase; + protected generateInventoryID(profile: IBotBase): IBotBase; + protected getPMCDifficulty(requestedDifficulty: string): string; + protected generateDogtag(bot: IBotBase): IBotBase; +} +export {}; diff --git a/TypeScript/14AfterDBLoadHook/types/generators/BotInventoryGenerator.d.ts b/TypeScript/14AfterDBLoadHook/types/generators/BotInventoryGenerator.d.ts new file mode 100644 index 0000000..783d0c5 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/generators/BotInventoryGenerator.d.ts @@ -0,0 +1,24 @@ +import { Inventory as PmcInventory } from "../models/eft/common/IPmcData"; +import { Inventory, Chances, Generation, Mods } from "../models/eft/common/tables/IBotType"; +import { HashUtil } from "../utils/HashUtil"; +import { RandomUtil } from "../utils/RandomUtil"; +import { BotGeneratorHelper } from "../helpers/BotGeneratorHelper"; +import { BotWeaponGenerator } from "./BotWeaponGenerator"; +import { BotLootGenerator } from "./BotLootGenerator"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { WeightedRandomHelper } from "../helpers/WeightedRandomHelper"; +export declare class BotInventoryGenerator { + protected logger: ILogger; + protected hashUtil: HashUtil; + protected randomUtil: RandomUtil; + protected databaseServer: DatabaseServer; + protected botWeaponGenerator: BotWeaponGenerator; + protected botLootGenerator: BotLootGenerator; + protected botGeneratorHelper: BotGeneratorHelper; + protected weightedRandomHelper: WeightedRandomHelper; + constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, databaseServer: DatabaseServer, botWeaponGenerator: BotWeaponGenerator, botLootGenerator: BotLootGenerator, botGeneratorHelper: BotGeneratorHelper, weightedRandomHelper: WeightedRandomHelper); + generateInventory(templateInventory: Inventory, equipmentChances: Chances, generation: Generation, botRole: string, isPmc: boolean): PmcInventory; + protected generateEquipment(equipmentSlot: string, equipmentPool: Record, modPool: Mods, spawnChances: Chances, botRole: string, inventory: PmcInventory): void; + protected generateInventoryBase(): PmcInventory; +} diff --git a/TypeScript/14AfterDBLoadHook/types/generators/BotLootGenerator.d.ts b/TypeScript/14AfterDBLoadHook/types/generators/BotLootGenerator.d.ts new file mode 100644 index 0000000..1d91836 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/generators/BotLootGenerator.d.ts @@ -0,0 +1,29 @@ +import { PMCLootGenerator } from "../generators/PMCLootGenerator"; +import { BotGeneratorHelper } from "../helpers/BotGeneratorHelper"; +import { HandbookHelper } from "../helpers/HandbookHelper"; +import { Inventory as PmcInventory } from "../models/eft/common/IPmcData"; +import { ItemMinMax, Items } from "../models/eft/common/tables/IBotType"; +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; +import { IBotConfig } from "../models/spt/config/IBotConfig"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { HashUtil } from "../utils/HashUtil"; +import { JsonUtil } from "../utils/JsonUtil"; +import { RandomUtil } from "../utils/RandomUtil"; +export declare class BotLootGenerator { + protected jsonUtil: JsonUtil; + protected hashUtil: HashUtil; + protected randomUtil: RandomUtil; + protected databaseServer: DatabaseServer; + protected handbookHelper: HandbookHelper; + protected botGeneratorHelper: BotGeneratorHelper; + protected pmcLootGenerator: PMCLootGenerator; + protected configServer: ConfigServer; + protected botConfig: IBotConfig; + constructor(jsonUtil: JsonUtil, hashUtil: HashUtil, randomUtil: RandomUtil, databaseServer: DatabaseServer, handbookHelper: HandbookHelper, botGeneratorHelper: BotGeneratorHelper, pmcLootGenerator: PMCLootGenerator, configServer: ConfigServer); + generateLoot(lootPool: Items, itemCounts: ItemMinMax, isPmc: boolean, inventory: PmcInventory): void; + protected getRandomisedCount(min: number, max: number, nValue: number): number; + protected addLootFromPool(pool: ITemplateItem[], equipmentSlots: string[], count: number, inventory: PmcInventory, totalValueLimit?: number, useLimits?: boolean): void; + /** Compares two item templates by their price to spawn chance ratio */ + protected compareByValue(a: ITemplateItem, b: ITemplateItem): number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/generators/BotWeaponGenerator.d.ts b/TypeScript/14AfterDBLoadHook/types/generators/BotWeaponGenerator.d.ts new file mode 100644 index 0000000..a43b18c --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/generators/BotWeaponGenerator.d.ts @@ -0,0 +1,88 @@ +import { BotGeneratorHelper } from "../helpers/BotGeneratorHelper"; +import { ItemHelper } from "../helpers/ItemHelper"; +import { WeightedRandomHelper } from "../helpers/WeightedRandomHelper"; +import { Inventory as PmcInventory } from "../models/eft/common/IPmcData"; +import { Inventory, MinMax, ModsChances } from "../models/eft/common/tables/IBotType"; +import { Item } from "../models/eft/common/tables/IItem"; +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { HashUtil } from "../utils/HashUtil"; +import { RandomUtil } from "../utils/RandomUtil"; +export declare class BotWeaponGenerator { + protected logger: ILogger; + protected hashUtil: HashUtil; + protected databaseServer: DatabaseServer; + protected itemHelper: ItemHelper; + protected weightedRandomHelper: WeightedRandomHelper; + protected botGeneratorHelper: BotGeneratorHelper; + protected randomUtil: RandomUtil; + private readonly modMagazineSlotId; + constructor(logger: ILogger, hashUtil: HashUtil, databaseServer: DatabaseServer, itemHelper: ItemHelper, weightedRandomHelper: WeightedRandomHelper, botGeneratorHelper: BotGeneratorHelper, randomUtil: RandomUtil); + generateWeapon(equipmentSlot: string, templateInventory: Inventory, modChances: ModsChances, magCounts: MinMax, botRole: string, isPmc: boolean, inventory: PmcInventory): void; + /** + * Get the mods necessary to kit out a weapon to its preset level + * @param weaponTpl weapon to find preset for + * @param equipmentSlot the slot the weapon will be placed in + * @param weaponParentId + * @returns array of weapon mods + */ + protected getPresetWeaponMods(weaponTpl: string, equipmentSlot: string, weaponParentId: string, itemTemplate: ITemplateItem, botRole: string): Item[]; + /** Checks if all required slots are occupied on a weapon and all it's mods */ + protected isWeaponValid(itemList: Item[]): boolean; + /** + * Generates extra magazines or bullets (if magazine is internal) and adds them to TacticalVest and Pockets. + * Additionally, adds extra bullets to SecuredContainer + * @param weaponMods + * @param weaponTemplate + * @param magCounts + * @param ammoTpl + * @param inventory + * @returns + */ + protected generateExtraMagazines(weaponMods: Item[], weaponTemplate: ITemplateItem, magCounts: MinMax, ammoTpl: string, inventory: PmcInventory): void; + /** + * Get a randomised count of magazines + * @param magCounts min and max value returned value can be between + * @returns numberical value of magazine count + */ + protected getRandomisedMagazineCount(magCounts: MinMax): number; + /** + * Add ammo to the secure container + * @param stackCount How many stacks of ammo to add + * @param ammoTpl Ammo type to add + * @param stackSize Size of the ammo stack to add + * @param inventory Player inventory + */ + protected addAmmoToSecureContainer(stackCount: number, ammoTpl: string, stackSize: number, inventory: PmcInventory): void; + /** + * Get a weapons magazine tpl from a weapon template + * @param weaponMods mods from a weapon template + * @param weaponTemplate Weapon to get magazine tpl for + * @returns magazine tpl string + */ + protected getMagazineTplFromWeaponTemplate(weaponMods: Item[], weaponTemplate: ITemplateItem): string; + protected addBulletsToVestAndPockets(ammoTpl: string, bulletCount: number, inventory: PmcInventory): void; + /** + * Finds and returns compatible ammo tpl + * + * @param {*} weaponMods + * @param {*} weaponTemplate + * @returns compatible ammo tpl + */ + protected getCompatibleAmmo(weaponMods: Item[], weaponTemplate: ITemplateItem): string; + /** + * Fill existing magazines to full, while replacing their contents with specified ammo + * @param weaponMods + * @param magazine + * @param ammoTpl + */ + protected fillExistingMagazines(weaponMods: Item[], magazine: Item, ammoTpl: string): void; + /** + * Fill each Camora with a bullet + * @param weaponMods Weapon mods to find and update camora mod(s) from + * @param magazineId magazine id to find and add to + * @param ammoTpl ammo template id to hydate with + */ + protected fillCamorasWithAmmo(weaponMods: Item[], magazineId: string, ammoTpl: string): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/generators/LocationGenerator.d.ts b/TypeScript/14AfterDBLoadHook/types/generators/LocationGenerator.d.ts new file mode 100644 index 0000000..bd368b5 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/generators/LocationGenerator.d.ts @@ -0,0 +1,46 @@ +import { ContainerHelper } from "../helpers/ContainerHelper"; +import { GameEventHelper } from "../helpers/GameEventHelper"; +import { ItemHelper } from "../helpers/ItemHelper"; +import { PresetHelper } from "../helpers/PresetHelper"; +import { RagfairServerHelper } from "../helpers/RagfairServerHelper"; +import { ILooseLoot, SpawnpointTemplate } from "../models/eft/common/ILooseLoot"; +import { Item } from "../models/eft/common/tables/IItem"; +import { IStaticAmmoDetails, IStaticContainerProps, IStaticForcedProps, IStaticLootDetails } from "../models/eft/common/tables/ILootBase"; +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; +import { ILocationConfig } from "../models/spt/config/ILocationConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { JsonUtil } from "../utils/JsonUtil"; +import { MathUtil } from "../utils/MathUtil"; +import { ObjectId } from "../utils/ObjectId"; +import { RandomUtil } from "../utils/RandomUtil"; +export interface IContainerItem { + items: Item[]; + width: number; + height: number; +} +export declare class LocationGenerator { + protected logger: ILogger; + protected jsonUtil: JsonUtil; + protected objectId: ObjectId; + protected randomUtil: RandomUtil; + protected ragfairServerHelper: RagfairServerHelper; + protected itemHelper: ItemHelper; + protected mathUtil: MathUtil; + protected gameEventHelper: GameEventHelper; + protected containerHelper: ContainerHelper; + protected presetHelper: PresetHelper; + protected configServer: ConfigServer; + protected locationConfig: ILocationConfig; + constructor(logger: ILogger, jsonUtil: JsonUtil, objectId: ObjectId, randomUtil: RandomUtil, ragfairServerHelper: RagfairServerHelper, itemHelper: ItemHelper, mathUtil: MathUtil, gameEventHelper: GameEventHelper, containerHelper: ContainerHelper, presetHelper: PresetHelper, configServer: ConfigServer); + generateContainerLoot(containerIn: IStaticContainerProps, staticForced: IStaticForcedProps[], staticLootDist: Record, staticAmmoDist: Record, locationName: string): IStaticContainerProps; + protected getLooseLootMultiplerForLocation(location: string): number; + protected getStaticLootMultiplerForLocation(location: string): number; + generateDynamicLoot(dynamicLootDist: ILooseLoot, staticAmmoDist: Record, locationName: string): SpawnpointTemplate[]; + protected createItem(tpl: string, staticAmmoDist: Record, parentId?: string): IContainerItem; + protected getRandomCompatibleCaliberTemplateId(item: ITemplateItem): string; + protected getRandomValidCaliber(magTemplate: ITemplateItem): string; + protected drawAmmoTpl(caliber: string, staticAmmoDist: Record): string; + protected createRandomMagCartridges(magTemplate: ITemplateItem, parentId: string, staticAmmoDist: Record, caliber?: string): Item; + protected createCartidges(parentId: string, ammoTpl: string, stackCount: number): Item; +} diff --git a/TypeScript/14AfterDBLoadHook/types/generators/PMCLootGenerator.d.ts b/TypeScript/14AfterDBLoadHook/types/generators/PMCLootGenerator.d.ts new file mode 100644 index 0000000..64e6f7f --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/generators/PMCLootGenerator.d.ts @@ -0,0 +1,15 @@ +import { ItemHelper } from "../helpers/ItemHelper"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { ConfigServer } from "../servers/ConfigServer"; +import { IBotConfig } from "../models/spt/config/IBotConfig"; +export declare class PMCLootGenerator { + protected itemHelper: ItemHelper; + protected databaseServer: DatabaseServer; + protected configServer: ConfigServer; + protected pocketLootPool: string[]; + protected backpackLootPool: string[]; + protected botConfig: IBotConfig; + constructor(itemHelper: ItemHelper, databaseServer: DatabaseServer, configServer: ConfigServer); + generatePMCPocketLootPool(): string[]; + generatePMCBackpackLootPool(): string[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/generators/RagfairAssortGenerator.d.ts b/TypeScript/14AfterDBLoadHook/types/generators/RagfairAssortGenerator.d.ts new file mode 100644 index 0000000..cbdd7f2 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/generators/RagfairAssortGenerator.d.ts @@ -0,0 +1,25 @@ +import { ItemHelper } from "../helpers/ItemHelper"; +import { Item } from "../models/eft/common/tables/IItem"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { HashUtil } from "../utils/HashUtil"; +import { JsonUtil } from "../utils/JsonUtil"; +export declare class RagfairAssortGenerator { + protected jsonUtil: JsonUtil; + protected hashUtil: HashUtil; + protected itemHelper: ItemHelper; + protected databaseServer: DatabaseServer; + protected generatedAssortItems: Item[]; + constructor(jsonUtil: JsonUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseServer: DatabaseServer); + /** + * Get an array of unique items that can be sold on the flea + * @returns array of unique items + */ + getAssortItems(): Item[]; + protected assortsAreGenerated(): boolean; + /** + * Generate an array of items the flea can sell + * @returns array of unique items + */ + protected generateRagfairAssortItems(): Item[]; + protected createRagfairAssortItem(tplId: string, id?: string): Item; +} diff --git a/TypeScript/14AfterDBLoadHook/types/generators/RagfairOfferGenerator.d.ts b/TypeScript/14AfterDBLoadHook/types/generators/RagfairOfferGenerator.d.ts new file mode 100644 index 0000000..de53ea9 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/generators/RagfairOfferGenerator.d.ts @@ -0,0 +1,60 @@ +import { ItemHelper } from "../helpers/ItemHelper"; +import { PresetHelper } from "../helpers/PresetHelper"; +import { RagfairServerHelper } from "../helpers/RagfairServerHelper"; +import { Item } from "../models/eft/common/tables/IItem"; +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; +import { IBarterScheme } from "../models/eft/common/tables/ITrader"; +import { IRagfairOffer } from "../models/eft/ragfair/IRagfairOffer"; +import { IRagfairConfig } from "../models/spt/config/IRagfairConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { SaveServer } from "../servers/SaveServer"; +import { FenceService } from "../services/FenceService"; +import { RagfairOfferService } from "../services/RagfairOfferService"; +import { RagfairPriceService } from "../services/RagfairPriceService"; +import { HashUtil } from "../utils/HashUtil"; +import { JsonUtil } from "../utils/JsonUtil"; +import { RandomUtil } from "../utils/RandomUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +import { RagfairAssortGenerator } from "./RagfairAssortGenerator"; +export declare class RagfairOfferGenerator { + protected logger: ILogger; + protected jsonUtil: JsonUtil; + protected hashUtil: HashUtil; + protected randomUtil: RandomUtil; + protected timeUtil: TimeUtil; + protected databaseServer: DatabaseServer; + protected ragfairServerHelper: RagfairServerHelper; + protected saveServer: SaveServer; + protected presetHelper: PresetHelper; + protected ragfairAssortGenerator: RagfairAssortGenerator; + protected ragfairOfferService: RagfairOfferService; + protected ragfairPriceService: RagfairPriceService; + protected fenceService: FenceService; + protected itemHelper: ItemHelper; + protected configServer: ConfigServer; + protected ragfairConfig: IRagfairConfig; + constructor(logger: ILogger, jsonUtil: JsonUtil, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, databaseServer: DatabaseServer, ragfairServerHelper: RagfairServerHelper, saveServer: SaveServer, presetHelper: PresetHelper, ragfairAssortGenerator: RagfairAssortGenerator, ragfairOfferService: RagfairOfferService, ragfairPriceService: RagfairPriceService, fenceService: FenceService, itemHelper: ItemHelper, configServer: ConfigServer); + createOffer(userID: string, time: number, items: Item[], barterScheme: IBarterScheme[], loyalLevel: number, price: number, sellInOnePiece?: boolean): IRagfairOffer; + protected getTraderId(userID: string): string; + protected getRating(userID: string): number; + protected getRatingGrowing(userID: string): boolean; + protected getOfferEndTime(userID: string, time: number): number; + /** + * Create multiple offers for items by using a unique list of items we've generated previously + * @param expiredOffers + */ + generateDynamicOffers(expiredOffers?: Item[]): void; + generateTraderOffers(traderID: string): void; + protected getItemCondition(userID: string, items: Item[], itemDetails: ITemplateItem): Item[]; + protected addMissingCondition(item: Item): Item; + protected getOfferRequirements(items: Item[]): { + count: number; + _tpl: string; + }[]; + /** + * Create a flea offer and store it in the Ragfair server offers array + */ + createFleaOffer(userID: string, time: number, items: Item[], barterScheme: IBarterScheme[], loyalLevel: number, price: number, sellInOnePiece?: boolean): IRagfairOffer; +} diff --git a/TypeScript/14AfterDBLoadHook/types/generators/WeatherGenerator.d.ts b/TypeScript/14AfterDBLoadHook/types/generators/WeatherGenerator.d.ts new file mode 100644 index 0000000..44cecbb --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/generators/WeatherGenerator.d.ts @@ -0,0 +1,33 @@ +import { WeightedRandomHelper } from "../helpers/WeightedRandomHelper"; +import { ConfigServer } from "../servers/ConfigServer"; +import { IWeatherData } from "../models/eft/weather/IWeatherData"; +import { IWeatherConfig } from "../models/spt/config/IWeatherConfig"; +import { RandomUtil } from "../utils/RandomUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +export declare class WeatherGenerator { + protected weightedRandomHelper: WeightedRandomHelper; + protected randomUtil: RandomUtil; + protected timeUtil: TimeUtil; + protected configServer: ConfigServer; + protected weatherConfig: IWeatherConfig; + constructor(weightedRandomHelper: WeightedRandomHelper, randomUtil: RandomUtil, timeUtil: TimeUtil, configServer: ConfigServer); + calculateTime(data: IWeatherData): IWeatherData; + /** + * Get server uptime seconds multiplied by a multiplier and add to current time as seconds + * Format to BSGs requirements + * @param computedDate current date + * @returns formatted time + */ + protected getAcceleratedTime(computedDate: Date): string; + /** + * Get current time formatted to fit BSGs requirement + * @param computedDate + * @returns + */ + protected getNormalTime(computedDate: Date): string; + generateWeather(data: IWeatherData): IWeatherData; + protected getWeightedFog(): string; + protected getWeightedRain(): number; + protected getRandomFloat(node: string): number; + protected getRandomInt(node: string): number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/AssortHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/AssortHelper.d.ts new file mode 100644 index 0000000..15586b9 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/AssortHelper.d.ts @@ -0,0 +1,36 @@ +import { IPmcData } from "../models/eft/common/IPmcData"; +import { ITraderAssort } from "../models/eft/common/tables/ITrader"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { ItemHelper } from "./ItemHelper"; +import { QuestHelper } from "./QuestHelper"; +export declare class AssortHelper { + protected logger: ILogger; + protected itemHelper: ItemHelper; + protected databaseServer: DatabaseServer; + protected questHelper: QuestHelper; + constructor(logger: ILogger, itemHelper: ItemHelper, databaseServer: DatabaseServer, questHelper: QuestHelper); + /** + * Remove assorts from a trader that have not been unlocked yet + * @param pmcProfile player profile + * @param traderId traders id + * @param assort assort items from a trader + * @returns assort items minus locked quest assorts + */ + stripLockedQuestAssort(pmcProfile: IPmcData, traderId: string, assort: ITraderAssort): ITraderAssort; + /** + * Remove assorts from a trader that have not been unlocked yet + * @param pmcProfile player profile + * @param traderId traders id + * @param assort traders assorts + * @returns traders assorts minus locked loyality assorts + */ + stripLockedLoyaltyAssort(pmcProfile: IPmcData, traderId: string, assort: ITraderAssort): ITraderAssort; + /** + * Remove an item from an assort + * @param assort assort to modify + * @param itemID item id to remove from asort + * @returns Modified assort + */ + removeItemFromAssort(assort: ITraderAssort, itemID: string): ITraderAssort; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/BotGeneratorHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/BotGeneratorHelper.d.ts new file mode 100644 index 0000000..e4b0c11 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/BotGeneratorHelper.d.ts @@ -0,0 +1,125 @@ +import { DurabilityLimitsHelper } from "../helpers/DurabilityLimitsHelper"; +import { Inventory as PmcInventory } from "../models/eft/common/IPmcData"; +import { Mods, ModsChances } from "../models/eft/common/tables/IBotType"; +import { Item, Repairable, Upd } from "../models/eft/common/tables/IItem"; +import { Grid, ITemplateItem, Slot } from "../models/eft/common/tables/ITemplateItem"; +import { IBotConfig } from "../models/spt/config/IBotConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { HashUtil } from "../utils/HashUtil"; +import { JsonUtil } from "../utils/JsonUtil"; +import { RandomUtil } from "../utils/RandomUtil"; +import { ContainerHelper } from "./ContainerHelper"; +import { InventoryHelper } from "./InventoryHelper"; +import { ItemHelper } from "./ItemHelper"; +import { ProbabilityHelper } from "./ProbabilityHelper"; +export declare class BotGeneratorHelper { + protected logger: ILogger; + protected jsonUtil: JsonUtil; + protected hashUtil: HashUtil; + protected randomUtil: RandomUtil; + protected probabilityHelper: ProbabilityHelper; + protected databaseServer: DatabaseServer; + protected durabilityLimitsHelper: DurabilityLimitsHelper; + protected itemHelper: ItemHelper; + protected inventoryHelper: InventoryHelper; + protected containerHelper: ContainerHelper; + protected configServer: ConfigServer; + protected botConfig: IBotConfig; + constructor(logger: ILogger, jsonUtil: JsonUtil, hashUtil: HashUtil, randomUtil: RandomUtil, probabilityHelper: ProbabilityHelper, databaseServer: DatabaseServer, durabilityLimitsHelper: DurabilityLimitsHelper, itemHelper: ItemHelper, inventoryHelper: InventoryHelper, containerHelper: ContainerHelper, configServer: ConfigServer); + generateModsForItem(items: Item[], modPool: Mods, parentId: string, parentTemplate: ITemplateItem, modSpawnChances: ModsChances, isPmc?: boolean): Item[]; + /** + * Get a list of non black-listed cartridges from the PMC bot config + * @param modSlot mod item slot + * @param itemModPool + * @returns string array of cartridges PMCs can use + */ + protected getNonBlacklistedCartridges(modSlot: string, itemModPool: Record): string[]; + /** + * randomly choose if a mod should be spawned, 100% for required mods OR mod is ammo slot + * never return true for an item that has 0% spawn chance + * @param itemSlot slot the item sits in + * @param modSlot slot the mod sits in + * @param modSpawnChances Chances for various mod spawns + * @returns boolean true if it should spawn + */ + protected shouldModBeSpawned(itemSlot: Slot, modSlot: string, modSpawnChances: ModsChances): boolean; + /** + * Get a list of containers that hold ammo + * @returns string array + */ + protected getAmmoContainers(): string[]; + /** + * Get the slot details for an item (chamber/cartridge/slot) + * @param modSlot e.g patron_in_weapon + * @param parentTemplate item template + * @returns + */ + protected getModItemSlot(modSlot: string, parentTemplate: ITemplateItem): Slot; + /** + * With the shotgun revolver (60db29ce99594040e04c4a27) 12.12 introduced CylinderMagazines. + * Those magazines (e.g. 60dc519adf4c47305f6d410d) have a "Cartridges" entry with a _max_count=0. + * Ammo is not put into the magazine directly but assigned to the magazine's slots: The "camora_xxx" slots. + * This function is a helper called by generateModsForItem for mods with parent type "CylinderMagazine" + * + * @param {object} items The items where the CylinderMagazine's camora are appended to + * @param {object} modPool modPool which should include available cartrigdes + * @param {string} parentId The CylinderMagazine's UID + * @param {object} parentTemplate The CylinderMagazine's template + */ + protected fillCamora(items: Item[], modPool: Mods, parentId: string, parentTemplate: ITemplateItem): void; + generateExtraPropertiesForItem(itemTemplate: ITemplateItem, botRole?: any): { + upd?: Upd; + }; + /** + * Create a repairable object for a weapon that containers durability + max durability properties + * @param itemTemplate weapon object being generated for + * @param botRole type of bot being generated for + * @returns Repairable object + */ + protected generateWeaponRepairableProperties(itemTemplate: ITemplateItem, botRole: string): Repairable; + /** + * Create a repairable object for an armor that containers durability + max durability properties + * @param itemTemplate weapon object being generated for + * @param botRole type of bot being generated for + * @returns Repairable object + */ + protected generateArmorRepairableProperties(itemTemplate: ITemplateItem, botRole: string): Repairable; + protected getModTplFromItemDb(modTpl: string, parentSlot: Slot, modSlot: string, items: Item[]): string; + /** + * Sort by spawn chance, highest to lowest, higher is more common + * @param unsortedModArray String array to sort + * @returns Sorted string array + */ + protected sortModArray(unsortedModArray: string[]): string[]; + /** + * Can an item be added to an item without issue + * @param items + * @param tplToCheck + * @param equipmentSlot + * @returns true if possible + */ + isItemIncompatibleWithCurrentItems(items: Item[], tplToCheck: string, equipmentSlot: string): boolean; + /** + * Adds an item with all its childern into specified equipmentSlots, wherever it fits. + * @param equipmentSlots + * @param parentId + * @param parentTpl + * @param itemWithChildren + * @param inventory + * @returns a `boolean` indicating item was added + */ + addItemWithChildrenToEquipmentSlot(equipmentSlots: string[], parentId: string, parentTpl: string, itemWithChildren: Item[], inventory: PmcInventory): boolean; + protected itemAllowedInContainer(slot: Grid, itemTpl: string): boolean; +} +export declare class ExhaustableArray { + private itemPool; + private randomUtil; + private jsonUtil; + private pool; + constructor(itemPool: T[], randomUtil: RandomUtil, jsonUtil: JsonUtil); + getRandomValue(): T; + getFirstValue(): T; + hasValues(): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/BotHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/BotHelper.d.ts new file mode 100644 index 0000000..6b92566 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/BotHelper.d.ts @@ -0,0 +1,44 @@ +import { Difficulty } from "../models/eft/common/tables/IBotType"; +import { IBotConfig } from "../models/spt/config/IBotConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { JsonUtil } from "../utils/JsonUtil"; +import { RandomUtil } from "../utils/RandomUtil"; +export declare class BotHelper { + protected logger: ILogger; + protected jsonUtil: JsonUtil; + protected databaseServer: DatabaseServer; + protected randomUtil: RandomUtil; + protected configServer: ConfigServer; + protected botConfig: IBotConfig; + constructor(logger: ILogger, jsonUtil: JsonUtil, databaseServer: DatabaseServer, randomUtil: RandomUtil, configServer: ConfigServer); + getBotDifficultySettings(type: string, difficulty: string): Difficulty; + getPmcDifficultySettings(type: string, difficulty: string): Difficulty; + /** + * Randomise the chance the PMC will attack their own side + * @param difficultySettings pmc difficulty settings + */ + randomisePmcHostility(difficultySettings: Difficulty): void; + isBotPmc(botRole: string): boolean; + isBotBoss(botRole: string): boolean; + isBotFollower(botRole: string): boolean; + /** + * Add a bot to the FRIENDLY_BOT_TYPES array + * @param difficultySettings bot settings to alter + * @param typeToAdd bot type to add to friendly list + */ + addBotToFriendlyList(difficultySettings: Difficulty, typeToAdd: string): void; + /** + * Add a bot to the ENEMY_BOT_TYPES array + * @param difficultySettings bot settings to alter + * @param typesToAdd bot type to add to enemy list + */ + addBotToEnemyList(difficultySettings: Difficulty, typesToAdd: string[], typeBeingEdited: string): void; + /** + * Add a bot to the REVENGE_BOT_TYPES array + * @param difficultySettings bot settings to alter + * @param typesToAdd bot type to add to revenge list + */ + addBotToRevengeList(difficultySettings: Difficulty, typesToAdd: string[]): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/ContainerHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/ContainerHelper.d.ts new file mode 100644 index 0000000..3c2ee93 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/ContainerHelper.d.ts @@ -0,0 +1,12 @@ +export declare class FindSlotResult { + success: boolean; + x: any; + y: any; + rotation: boolean; + constructor(success?: boolean, x?: any, y?: any, rotation?: boolean); +} +export declare class ContainerHelper { + protected locateSlot(container2D: number[][], containerX: number, containerY: number, x: number, y: number, itemW: number, itemH: number): boolean; + findSlotForItem(container2D: number[][], itemWidth: number, itemHeight: number): FindSlotResult; + fillContainerMapWithItem(container2D: number[][], x: number, y: number, itemW: number, itemH: number, rotate: boolean): any; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/DialogueHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/DialogueHelper.d.ts new file mode 100644 index 0000000..9776c6a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/DialogueHelper.d.ts @@ -0,0 +1,21 @@ +import { Dialogue, MessageContent, MessagePreview } from "../models/eft/profile/IAkiProfile"; +import { MessageType } from "../models/enums/MessageType"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { SaveServer } from "../servers/SaveServer"; +import { HashUtil } from "../utils/HashUtil"; +import { ItemHelper } from "./ItemHelper"; +import { NotificationSendHelper } from "./NotificationSendHelper"; +import { NotifierHelper } from "./NotifierHelper"; +export declare class DialogueHelper { + protected hashUtil: HashUtil; + protected saveServer: SaveServer; + protected databaseServer: DatabaseServer; + protected notifierHelper: NotifierHelper; + protected notificationSendHelper: NotificationSendHelper; + protected itemHelper: ItemHelper; + constructor(hashUtil: HashUtil, saveServer: SaveServer, databaseServer: DatabaseServer, notifierHelper: NotifierHelper, notificationSendHelper: NotificationSendHelper, itemHelper: ItemHelper); + createMessageContext(templateId: string, messageType: MessageType, maxStoreTime: number): MessageContent; + addDialogueMessage(dialogueID: string, messageContent: MessageContent, sessionID: string, rewards?: any[]): void; + getMessagePreview(dialogue: Dialogue): MessagePreview; + getMessageItemContents(messageID: string, sessionID: string): any[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/DurabilityLimitsHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/DurabilityLimitsHelper.d.ts new file mode 100644 index 0000000..07a5db1 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/DurabilityLimitsHelper.d.ts @@ -0,0 +1,26 @@ +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; +import { IBotConfig } from "../models/spt/config/IBotConfig"; +import { ConfigServer } from "../servers/ConfigServer"; +import { RandomUtil } from "../utils/RandomUtil"; +import { BotHelper } from "./BotHelper"; +export declare class DurabilityLimitsHelper { + protected randomUtil: RandomUtil; + protected botHelper: BotHelper; + protected configServer: ConfigServer; + protected botConfig: IBotConfig; + constructor(randomUtil: RandomUtil, botHelper: BotHelper, configServer: ConfigServer); + getRandomisedMaxWeaponDurability(itemTemplate: ITemplateItem, botRole: string): number; + getRandomisedMaxArmorDurability(itemTemplate: ITemplateItem, botRole: string): number; + getRandomisedWeaponDurability(itemTemplate: ITemplateItem, botRole: string, maxDurability: number): number; + getRandomisedArmorDurability(itemTemplate: ITemplateItem, botRole: string, maxDurability: number): number; + protected generateMaxWeaponDurability(botRole: string): number; + protected generateMaxPmcArmorDurability(itemMaxDurability: number): number; + protected getLowestMaxWeaponFromConfig(botRole: string): number; + protected getHighestMaxWeaponDurabilityFromConfig(botRole: string): number; + protected generateWeaponDurability(botRole: string, maxDurability: number): number; + protected generateArmorDurability(botRole: string, maxDurability: number): number; + protected getMinWeaponDeltaFromConfig(botRole: string): number; + protected getMaxWeaponDeltaFromConfig(botRole: string): number; + protected getMinArmorDeltaFromConfig(botRole: string): number; + protected getMaxArmorDeltaFromConfig(botRole: string): number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/ExtendedProfileHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/ExtendedProfileHelper.d.ts new file mode 100644 index 0000000..d8b754d --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/ExtendedProfileHelper.d.ts @@ -0,0 +1,22 @@ +import { BotGenerator } from "../generators/BotGenerator"; +import { IPmcData, Skills, Stats } from "../models/eft/common/IPmcData"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { SaveServer } from "../servers/SaveServer"; +import { FenceService } from "../services/FenceService"; +import { JsonUtil } from "../utils/JsonUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +import { Watermark } from "../utils/Watermark"; +import { ItemHelper } from "./ItemHelper"; +import { ProfileHelper } from "./ProfileHelper"; +export declare class ExtendedProfileHelper extends ProfileHelper { + protected botGenerator: BotGenerator; + constructor(jsonUtil: JsonUtil, watermark: Watermark, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, itemHelper: ItemHelper, fenceService: FenceService, botGenerator: BotGenerator); + generatePlayerScav(sessionID: string): IPmcData; + protected getScavSkills(sessionID: string): Skills; + protected removeSecureContainer(profile: IPmcData): IPmcData; + protected getDefaultScavSkills(): Skills; + protected getScavStats(sessionID: string): Stats; + protected getScavLevel(sessionID: string): number; + protected getScavExperience(sessionID: string): number; + protected setScavCooldownTimer(profile: IPmcData, pmcData: IPmcData): IPmcData; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/GameEventHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/GameEventHelper.d.ts new file mode 100644 index 0000000..b2d6377 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/GameEventHelper.d.ts @@ -0,0 +1,9 @@ +import { DatabaseServer } from "../servers/DatabaseServer"; +export declare class GameEventHelper { + protected databaseServer: DatabaseServer; + constructor(databaseServer: DatabaseServer); + get EVENT(): Record; + get christmasEventItems(): string[]; + itemIsChristmasRelated(itemId: string): boolean; + christmasEventEnabled(): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/GameHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/GameHelper.d.ts new file mode 100644 index 0000000..fd49e84 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/GameHelper.d.ts @@ -0,0 +1,11 @@ +import { IPmcData } from "../models/eft/common/IPmcData"; +import { ILogger } from "../models/spt/utils/ILogger"; +export declare class GameHelper { + protected logger: ILogger; + constructor(logger: ILogger); + /** + * Remove condition conters no longer used + * @param pmcProfile profile to remove old counters from + */ + removeDanglingConditionCounters(pmcProfile: IPmcData): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/HandbookHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/HandbookHelper.d.ts new file mode 100644 index 0000000..b47d466 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/HandbookHelper.d.ts @@ -0,0 +1,33 @@ +declare class LookupItem { + byId: Record; + byParent: Record; + constructor(); +} +export declare class LookupCollection { + items: LookupItem; + categories: LookupItem; + constructor(); +} +export declare class HandbookHelper { + protected lookup: LookupCollection; + hydrateLookup(lookup: LookupCollection): void; + getTemplatePrice(x: string): number; + templatesWithParent(x: string): string[]; + isCategory(x: string): boolean; + childrenCategories(x: string): string[]; + /** + * Gets Currency to Ruble conversion Value + * @param {number} value + * @param {string} currencyFrom + * @returns number + */ + inRUB(value: number, currencyFrom: string): number; + /** + * Gets Ruble to Currency conversion Value + * @param {number} value + * @param {string} currencyTo + * @returns number + */ + fromRUB(value: number, currencyTo: string): number; +} +export {}; diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/HealthHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/HealthHelper.d.ts new file mode 100644 index 0000000..518c23f --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/HealthHelper.d.ts @@ -0,0 +1,27 @@ +import { IPmcData } from "../models/eft/common/IPmcData"; +import { ISyncHealthRequestData } from "../models/eft/health/ISyncHealthRequestData"; +import { IAkiProfile } from "../models/eft/profile/IAkiProfile"; +import { IHealthConfig } from "../models/spt/config/IHealthConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { SaveServer } from "../servers/SaveServer"; +import { JsonUtil } from "../utils/JsonUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +export declare class HealthHelper { + protected jsonUtil: JsonUtil; + protected logger: ILogger; + protected timeUtil: TimeUtil; + protected saveServer: SaveServer; + protected configServer: ConfigServer; + protected healthConfig: IHealthConfig; + constructor(jsonUtil: JsonUtil, logger: ILogger, timeUtil: TimeUtil, saveServer: SaveServer, configServer: ConfigServer); + resetVitality(sessionID: string): IAkiProfile; + saveVitality(pmcData: IPmcData, info: ISyncHealthRequestData, sessionID: string): void; + protected saveHealth(pmcData: IPmcData, sessionID: string): void; + protected saveEffects(pmcData: IPmcData, sessionID: string): void; + protected addEffect(pmcData: IPmcData, sessionID: string, effect: { + bodyPart: string; + effectType: string; + }): void; + protected isEmpty(map: any): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/HideoutHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/HideoutHelper.d.ts new file mode 100644 index 0000000..76b337f --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/HideoutHelper.d.ts @@ -0,0 +1,68 @@ +import { Common, HideoutArea, IPmcData, Production, Productive } from "../models/eft/common/IPmcData"; +import { Upd } from "../models/eft/common/tables/IItem"; +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; +import { StageBonus } from "../models/eft/hideout/IHideoutArea"; +import { IHideoutContinousProductionStartRequestData } from "../models/eft/hideout/IHideoutContinousProductionStartRequestData"; +import { IHideoutSingleProductionStartRequestData } from "../models/eft/hideout/IHideoutSingleProductionStartRequestData"; +import { IHideoutTakeProductionRequestData } from "../models/eft/hideout/IHideoutTakeProductionRequestData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IHideoutConfig } from "../models/spt/config/IHideoutConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { PlayerService } from "../services/PlayerService"; +import { HashUtil } from "../utils/HashUtil"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +import { RandomUtil } from "../utils/RandomUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +import { InventoryHelper } from "./InventoryHelper"; +import { ProfileHelper } from "./ProfileHelper"; +export declare class HideoutHelper { + protected logger: ILogger; + protected hashUtil: HashUtil; + protected timeUtil: TimeUtil; + protected randomUtil: RandomUtil; + protected databaseServer: DatabaseServer; + protected itemEventRouter: ItemEventRouter; + protected httpResponse: HttpResponseUtil; + protected profileHelper: ProfileHelper; + protected inventoryHelper: InventoryHelper; + protected playerService: PlayerService; + protected configServer: ConfigServer; + static BITCOIN_FARM: string; + protected WATER_COLLECTOR: string; + protected BITCOIN: string; + protected EXPEDITIONARY_FUEL_TANK: string; + static NAME_BACKENDCOUNTERS_CRAFTING: string; + static SKILL_NAME_HIDEOUT: string; + static HOUR_FOR_SKILL_CRAFTING: number; + static SKILL_NAME_CRAFITING: string; + protected hideoutConfig: IHideoutConfig; + constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, randomUtil: RandomUtil, databaseServer: DatabaseServer, itemEventRouter: ItemEventRouter, httpResponse: HttpResponseUtil, profileHelper: ProfileHelper, inventoryHelper: InventoryHelper, playerService: PlayerService, configServer: ConfigServer); + registerProduction(pmcData: IPmcData, body: IHideoutSingleProductionStartRequestData | IHideoutContinousProductionStartRequestData, sessionID: string): IItemEventRouterResponse; + /** + * This convinience function intialies new Production Object + * with all the constants. + */ + initProduction(recipeId: string, productionTime: number): Production; + isProductionType(productive: Productive): productive is Production; + applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void; + protected applySkillXPBoost(pmcData: IPmcData, bonus: StageBonus): void; + updatePlayerHideout(sessionID: string): void; + protected updateWaterCollector(sessionId: string, pmcData: IPmcData, area: HideoutArea, isGeneratorOn: boolean): void; + protected doesWaterCollectorHaveFilter(waterCollector: HideoutArea): boolean; + protected updateFuel(generatorArea: HideoutArea, pmcData: IPmcData): HideoutArea; + protected updateWaterFilters(waterFilterArea: HideoutArea, pwProd: Production, isGeneratorOn: boolean, pmcData: IPmcData): HideoutArea; + protected getAreaUpdObject(stackCount: number, resourceValue: number, resourceUnitsConsumed: number): Upd; + protected updateAirFilters(airFilterArea: HideoutArea, pmcData: IPmcData): HideoutArea; + protected updateBitcoinFarm(pmcData: IPmcData, btcFarmCGs: number, isGeneratorOn: boolean): Production; + protected getBTCSlots(pmcData: IPmcData): number; + protected getManagementSkillsSlots(): number; + protected hasManagementSkillSlots(pmcData: IPmcData): boolean; + protected getHideoutManagementSkill(pmcData: IPmcData): Common; + protected getHideoutManagementConsumptionBonus(pmcData: IPmcData): number; + isProduction(productive: Productive): productive is Production; + getBTC(pmcData: IPmcData, body: IHideoutTakeProductionRequestData, sessionID: string): IItemEventRouterResponse; + getRandomAmountRewardForScavCase(itemToCalculate: ITemplateItem): number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/HttpServerHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/HttpServerHelper.d.ts new file mode 100644 index 0000000..c6e5296 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/HttpServerHelper.d.ts @@ -0,0 +1,23 @@ +import { IHttpConfig } from "../models/spt/config/IHttpConfig"; +import { ConfigServer } from "../servers/ConfigServer"; +export declare class HttpServerHelper { + protected configServer: ConfigServer; + protected httpConfig: IHttpConfig; + protected mime: { + css: string; + bin: string; + html: string; + jpg: string; + js: string; + json: string; + png: string; + svg: string; + txt: string; + }; + constructor(configServer: ConfigServer); + getMimeText(key: string): string; + buildUrl(): string; + getBackendUrl(): string; + getWebsocketUrl(): string; + sendTextJson(resp: any, output: any): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/InRaidHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/InRaidHelper.d.ts new file mode 100644 index 0000000..05b6fdf --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/InRaidHelper.d.ts @@ -0,0 +1,33 @@ +import { IPmcData, Victim } from "../models/eft/common/IPmcData"; +import { Item } from "../models/eft/common/tables/IItem"; +import { ISaveProgressRequestData } from "../models/eft/inRaid/ISaveProgressRequestData"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { SaveServer } from "../servers/SaveServer"; +import { JsonUtil } from "../utils/JsonUtil"; +import { InventoryHelper } from "./InventoryHelper"; +import { PaymentHelper } from "./PaymentHelper"; +export declare class InRaidHelper { + protected logger: ILogger; + protected saveServer: SaveServer; + protected jsonUtil: JsonUtil; + protected databaseServer: DatabaseServer; + protected inventoryHelper: InventoryHelper; + protected paymentHelper: PaymentHelper; + constructor(logger: ILogger, saveServer: SaveServer, jsonUtil: JsonUtil, databaseServer: DatabaseServer, inventoryHelper: InventoryHelper, paymentHelper: PaymentHelper); + protected removePlayer(sessionID: string): void; + protected removeMapAccessKey(offraidData: ISaveProgressRequestData, sessionID: string): void; + addUpdToMoneyFromRaid(items: Item[]): void; + /** + * Add positive karma for PMC kills + * @param {*} existingFenceStanding + * @param {*} victims + */ + calculateFenceStandingChangeFromKills(existingFenceStanding: number, victims: Victim[]): void; + setBaseStats(profileData: IPmcData, offraidData: ISaveProgressRequestData, sessionID: string): IPmcData; + markFoundItems(pmcData: IPmcData, profile: IPmcData, isPlayerScav: boolean): IPmcData; + removeFoundInRaidStatusFromItems(profile: IPmcData): IPmcData; + setInventory(sessionID: string, pmcData: IPmcData, profile: IPmcData): IPmcData; + deleteInventory(pmcData: IPmcData, sessionID: string): IPmcData; + getPlayerGear(items: Item[]): Item[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/InventoryHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/InventoryHelper.d.ts new file mode 100644 index 0000000..dc7cbca --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/InventoryHelper.d.ts @@ -0,0 +1,85 @@ +import { IPmcData } from "../models/eft/common/IPmcData"; +import { Item } from "../models/eft/common/tables/IItem"; +import { IAddItemRequestData } from "../models/eft/inventory/IAddItemRequestData"; +import { IInventoryMergeRequestData } from "../models/eft/inventory/IInventoryMergeRequestData"; +import { IInventoryMoveRequestData } from "../models/eft/inventory/IInventoryMoveRequestData"; +import { IInventorySplitRequestData } from "../models/eft/inventory/IInventorySplitRequestData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IInventoryConfig } from "../models/spt/config/IInventoryConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { FenceService } from "../services/FenceService"; +import { HashUtil } from "../utils/HashUtil"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +import { JsonUtil } from "../utils/JsonUtil"; +import { ContainerHelper } from "./ContainerHelper"; +import { DialogueHelper } from "./DialogueHelper"; +import { ItemHelper } from "./ItemHelper"; +import { PaymentHelper } from "./PaymentHelper"; +import { ProfileHelper } from "./ProfileHelper"; +import { TraderAssortHelper } from "./TraderAssortHelper"; +export interface OwnerInventoryItems { + from: Item[]; + to: Item[]; + sameInventory: boolean; + isMail: boolean; +} +export declare class InventoryHelper { + protected logger: ILogger; + protected jsonUtil: JsonUtil; + protected hashUtil: HashUtil; + protected httpResponse: HttpResponseUtil; + protected fenceService: FenceService; + protected databaseServer: DatabaseServer; + protected paymentHelper: PaymentHelper; + protected traderAssortHelper: TraderAssortHelper; + protected dialogueHelper: DialogueHelper; + protected itemHelper: ItemHelper; + protected containerHelper: ContainerHelper; + protected profileHelper: ProfileHelper; + protected configServer: ConfigServer; + protected inventoryConfig: IInventoryConfig; + constructor(logger: ILogger, jsonUtil: JsonUtil, hashUtil: HashUtil, httpResponse: HttpResponseUtil, fenceService: FenceService, databaseServer: DatabaseServer, paymentHelper: PaymentHelper, traderAssortHelper: TraderAssortHelper, dialogueHelper: DialogueHelper, itemHelper: ItemHelper, containerHelper: ContainerHelper, profileHelper: ProfileHelper, configServer: ConfigServer); + addItem(pmcData: IPmcData, body: IAddItemRequestData, output: IItemEventRouterResponse, sessionID: string, callback: any, foundInRaid?: boolean, addUpd?: any): IItemEventRouterResponse; + removeItem(pmcData: IPmcData, itemId: string, sessionID: string, output?: IItemEventRouterResponse): IItemEventRouterResponse; + getItemSize(itemTpl: string, itemID: string, inventoryItem: Item[]): Record; + protected getSizeByInventoryItemHash(itemTpl: string, itemID: string, inventoryItemHash: InventoryHelper.InventoryItemHash): Record; + protected getInventoryItemHash(inventoryItem: Item[]): InventoryHelper.InventoryItemHash; + getContainerMap(containerW: number, containerH: number, itemList: Item[], containerId: string): number[][]; + /** + * Based on the item action, determine whose inventories we should be looking at for from and to. + */ + getOwnerInventoryItems(body: IInventoryMoveRequestData | IInventorySplitRequestData | IInventoryMergeRequestData, sessionID: string): OwnerInventoryItems; + /** + * Made a 2d array table with 0 - free slot and 1 - used slot + * @param {Object} pmcData + * @param {string} sessionID + * @returns Array + */ + protected getStashSlotMap(pmcData: IPmcData, sessionID: string): number[][]; + protected getStashType(sessionID: string): string; + protected getPlayerStashSize(sessionID: string): Record; + /** + * Internal helper function to transfer an item from one profile to another. + * fromProfileData: Profile of the source. + * toProfileData: Profile of the destination. + * body: Move request + */ + moveItemToProfile(fromItems: Item[], toItems: Item[], body: IInventoryMoveRequestData): void; + /** + * Internal helper function to move item within the same profile_f. + */ + moveItemInternal(inventoryItems: Item[], body: IInventoryMoveRequestData): void; + /** + * Internal helper function to handle cartridges in inventory if any of them exist. + */ + protected handleCartridges(items: Item[], body: IInventoryMoveRequestData): void; +} +declare namespace InventoryHelper { + interface InventoryItemHash { + byItemId: Record; + byParentId: Record; + } +} +export {}; diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/ItemHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/ItemHelper.d.ts new file mode 100644 index 0000000..4fff11e --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/ItemHelper.d.ts @@ -0,0 +1,152 @@ +import { InsuredItem, IPmcData } from "../models/eft/common/IPmcData"; +import { Item } from "../models/eft/common/tables/IItem"; +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { HashUtil } from "../utils/HashUtil"; +import { JsonUtil } from "../utils/JsonUtil"; +declare class ItemHelper { + protected logger: ILogger; + protected hashUtil: HashUtil; + protected jsonUtil: JsonUtil; + protected databaseServer: DatabaseServer; + constructor(logger: ILogger, hashUtil: HashUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer); + /** + * Checks if a id is a valid item. Valid meaning that it's an item that be stored in stash + * @param {string} tpl the template id / tpl + * @returns boolean; true for items that may be in player posession and not quest items + */ + isValidItem(tpl: string, invalidBaseTypes?: string[]): boolean; + /** + * Checks if a id is a valid item. Valid meaning that it's an item that may be a reward + * or content of bot loot. Items that are tested as valid may be in a player backpack or stash. + * @param {*} tpl template id of item to check + * @returns boolean: true if item is valid reward + */ + isValidRewardItem(tpl: string): boolean; + /** + * Picks rewardable items from items.json. This means they need to fit into the inventory and they shouldn't be keys (debatable) + * @returns a list of rewardable items [[_tpl, itemTemplate],...] + */ + getRewardableItems(): [string, ITemplateItem][]; + /** + * Check if the tpl / template Id provided is a descendent of the baseclass + * + * @param {string} tpl the item template id to check + * @param {string} baseclassTpl the baseclass to check for + * @return {boolean} is the tpl a descendent? + */ + isOfBaseclass(tpl: string, baseclassTpl: string): any; + /** + * Returns the item price based on the handbook or as a fallback from the prices.json if the item is not + * found in the handbook. If the price can't be found at all return 0 + * + * @param {string} tpl the item template to check + * @returns {integer} The price of the item or 0 if not found + */ + getItemPrice(tpl: string): number; + fixItemStackCount(item: Item): Item; + /** + * AmmoBoxes contain StackSlots which need to be filled for the AmmoBox to have content. + * Here's what a filled AmmoBox looks like: + * { + * "_id": "b1bbe982daa00ac841d4ae4d", + * "_tpl": "57372c89245977685d4159b1", + * "parentId": "5fe49a0e2694b0755a504876", + * "slotId": "hideout", + * "location": { + * "x": 3, + * "y": 4, + * "r": 0 + * }, + * "upd": { + * "StackObjectsCount": 1 + * } + * }, + * { + * "_id": "b997b4117199033afd274a06", + * "_tpl": "56dff061d2720bb5668b4567", + * "parentId": "b1bbe982daa00ac841d4ae4d", + * "slotId": "cartridges", + * "location": 0, + * "upd": { + * "StackObjectsCount": 30 + * } + * } + * Given the AmmoBox Item (first object) this function generates the StackSlot (second object) and returns it. + * StackSlots are only used for AmmoBoxes which only have one element in StackSlots. However, it seems to be generic + * to possibly also have more than one StackSlot. As good as possible, without seeing items having more than one + * StackSlot, this function takes account of this and creates and returns an array of StackSlotItems + * + * @param {object} item The item template of the AmmoBox as given in items.json + * @param {string} parentId The id of the AmmoBox instance these StackSlotItems should be children of + * @returns {array} The array of StackSlotItems + */ + generateItemsFromStackSlot(item: ITemplateItem, parentId: string): Item[]; + getItem(tpl: string): [boolean, ITemplateItem]; + /** + * get normalized value (0-1) based on item condition + * @param item + * @returns number between 0 and 1 + */ + getItemQualityModifier(item: Item): number; + findAndReturnChildrenByItems(items: Item[], itemID: string): string[]; + /** + * A variant of findAndReturnChildren where the output is list of item objects instead of their ids. + */ + findAndReturnChildrenAsItems(items: Item[], baseItemId: string): Item[]; + /** + * find children of the item in a given assort (weapons parts for example, need recursive loop function) + */ + findAndReturnChildrenByAssort(itemIdToFind: string, assort: Item[]): Item[]; + hasBuyRestrictions(itemToCheck: Item): boolean; + /** + * Is Dogtag + * Checks if an item is a dogtag. Used under profile_f.js to modify preparePrice based + * on the level of the dogtag + */ + isDogtag(tpl: string): boolean; + isNotSellable(tpl: string): boolean; + getChildId(item: Item): string; + isItemTplStackable(tpl: string): boolean; + /** + * split item stack if it exceeds StackMaxSize + */ + splitStack(item: Item): Item[]; + /** + * Find Barter items in the inventory + * @param {string} by + * @param {Object} pmcData + * @param {string} barter_itemID + * @returns Array + */ + findBarterItems(by: string, pmcData: IPmcData, barter_itemID: string): any[]; + /** + * @param {Object} pmcData + * @param {Array} items + * @param {Object} fastPanel + * @returns Array + */ + replaceIDs(pmcData: IPmcData, items: Item[], insuredItems?: InsuredItem[], fastPanel?: any): any[]; + /** + * Recursivly loop down through an items hierarchy to see if any of the ids match the supplied list, return true if any do + * @param {string} tpl + * @param {Array} tplsToCheck + * @returns boolean + */ + doesItemOrParentsIdMatch(tpl: string, tplsToCheck: string[]): boolean; + /** + * Return true if item is a quest item + * @param {string} tpl + * @returns boolean + */ + isQuestItem(tpl: string): boolean; + getItemSize(items: Item[], rootItemId: string): ItemHelper.ItemSize; +} +declare namespace ItemHelper { + interface ItemSize { + width: number; + height: number; + } +} +export { ItemHelper }; diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/NotificationSendHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/NotificationSendHelper.d.ts new file mode 100644 index 0000000..34e62d9 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/NotificationSendHelper.d.ts @@ -0,0 +1,12 @@ +import { INotification } from "../models/eft/notifier/INotifier"; +import { IHttpServer } from "../models/spt/server/IHttpServer"; +import { NotificationService } from "../services/NotificationService"; +export declare class NotificationSendHelper { + protected httpServer: IHttpServer; + protected notificationService: NotificationService; + constructor(httpServer: IHttpServer, notificationService: NotificationService); + /** + * Send notification message to the appropiate channel + */ + sendMessage(sessionID: string, notificationMessage: INotification): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/NotifierHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/NotifierHelper.d.ts new file mode 100644 index 0000000..738b69a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/NotifierHelper.d.ts @@ -0,0 +1,17 @@ +import { INotification } from "../models/eft/notifier/INotifier"; +import { Message, MessageContentRagfair } from "../models/eft/profile/IAkiProfile"; +import { HttpServerHelper } from "./HttpServerHelper"; +export declare class NotifierHelper { + protected httpServerHelper: HttpServerHelper; + /** + * The default notification sent when waiting times out. + */ + protected defaultNotification: INotification; + constructor(httpServerHelper: HttpServerHelper); + getDefaultNotification(): INotification; + /** Creates a new notification that displays the "Your offer was sold!" prompt and removes sold offer from "My Offers" on clientside */ + createRagfairOfferSoldNotification(dialogueMessage: Message, ragfairData: MessageContentRagfair): INotification; + /** Creates a new notification with the specified dialogueMessage object. */ + createNewMessageNotification(dialogueMessage: Message): INotification; + getWebSocketServer(sessionID: string): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/PaymentHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/PaymentHelper.d.ts new file mode 100644 index 0000000..2d068a4 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/PaymentHelper.d.ts @@ -0,0 +1,14 @@ +export declare class PaymentHelper { + /** + * Check whether tpl is Money + * @param {string} tpl + * @returns void + */ + isMoneyTpl(tpl: string): boolean; + /** + * Gets currency TPL from TAG + * @param {string} currency + * @returns string + */ + getCurrency(currency: string): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/PresetHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/PresetHelper.d.ts new file mode 100644 index 0000000..0371886 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/PresetHelper.d.ts @@ -0,0 +1,14 @@ +import { Preset } from "../models/eft/common/IGlobals"; +import { DatabaseServer } from "../servers/DatabaseServer"; +export declare class PresetHelper { + protected databaseServer: DatabaseServer; + protected lookup: Record; + constructor(databaseServer: DatabaseServer); + hydratePresetStore(input: Record): void; + isPreset(id: string): boolean; + hasPreset(templateId: string): boolean; + getPreset(id: string): Preset; + getPresets(templateId: string): Preset[]; + getDefaultPreset(templateId: string): Preset; + getBaseItemTpl(presetId: string): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/ProbabilityHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/ProbabilityHelper.d.ts new file mode 100644 index 0000000..7a0676c --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/ProbabilityHelper.d.ts @@ -0,0 +1,14 @@ +import { ILogger } from "../models/spt/utils/ILogger"; +import { RandomUtil } from "../utils/RandomUtil"; +export declare class ProbabilityHelper { + protected logger: ILogger; + protected randomUtil: RandomUtil; + constructor(logger: ILogger, randomUtil: RandomUtil); + /** + * Chance to roll a number out of 100 + * @param chance Percentage chance roll should success + * @param scale scale of chance to allow support of numbers > 1-100 + * @returns true if success + */ + rollChance(chance: number, scale?: number): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/ProfileHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/ProfileHelper.d.ts new file mode 100644 index 0000000..6a64291 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/ProfileHelper.d.ts @@ -0,0 +1,33 @@ +import { IPmcData, Stats } from "../models/eft/common/IPmcData"; +import { IAkiProfile } from "../models/eft/profile/IAkiProfile"; +import { IValidateNicknameRequestData } from "../models/eft/profile/IValidateNicknameRequestData"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { SaveServer } from "../servers/SaveServer"; +import { FenceService } from "../services/FenceService"; +import { JsonUtil } from "../utils/JsonUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +import { Watermark } from "../utils/Watermark"; +import { ItemHelper } from "./ItemHelper"; +export declare class ProfileHelper { + protected jsonUtil: JsonUtil; + protected watermark: Watermark; + protected timeUtil: TimeUtil; + protected saveServer: SaveServer; + protected databaseServer: DatabaseServer; + protected itemHelper: ItemHelper; + protected fenceService: FenceService; + constructor(jsonUtil: JsonUtil, watermark: Watermark, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, itemHelper: ItemHelper, fenceService: FenceService); + resetProfileQuestCondition(sessionID: string, conditionId: string): void; + getCompleteProfile(sessionID: string): IPmcData[]; + isNicknameTaken(info: IValidateNicknameRequestData, sessionID: string): boolean; + getProfileByPmcId(pmcId: string): IPmcData; + getExperience(level: number): number; + getMaxLevel(): number; + getDefaultAkiDataObject(): any; + getFullProfile(sessionID: string): IAkiProfile; + getPmcProfile(sessionID: string): IPmcData; + getScavProfile(sessionID: string): IPmcData; + getDefaultCounters(): Stats; + protected isWiped(sessionID: string): boolean; + protected getServerVersion(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/QuestConditionHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/QuestConditionHelper.d.ts new file mode 100644 index 0000000..90ee560 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/QuestConditionHelper.d.ts @@ -0,0 +1,7 @@ +import { AvailableForConditions } from "../models/eft/common/tables/IQuest"; +export declare class QuestConditionHelper { + getQuestConditions(q: AvailableForConditions[], furtherFilter?: (a: AvailableForConditions) => AvailableForConditions[]): AvailableForConditions[]; + getLevelConditions(q: AvailableForConditions[], furtherFilter?: (a: AvailableForConditions) => AvailableForConditions[]): AvailableForConditions[]; + getLoyaltyConditions(q: AvailableForConditions[], furtherFilter?: (a: AvailableForConditions) => AvailableForConditions[]): AvailableForConditions[]; + protected filterConditions(q: AvailableForConditions[], questType: string, furtherFilter?: (a: AvailableForConditions) => AvailableForConditions[]): AvailableForConditions[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/QuestHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/QuestHelper.d.ts new file mode 100644 index 0000000..d6e382b --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/QuestHelper.d.ts @@ -0,0 +1,88 @@ +import { IPmcData, Quest } from "../models/eft/common/IPmcData"; +import { AvailableForConditions, AvailableForProps, IQuest, Reward } from "../models/eft/common/tables/IQuest"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IAcceptQuestRequestData } from "../models/eft/quests/IAcceptQuestRequestData"; +import { ICompleteQuestRequestData } from "../models/eft/quests/ICompleteQuestRequestData"; +import { IQuestConfig } from "../models/spt/config/IQuestConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { LocaleService } from "../services/LocaleService"; +import { HashUtil } from "../utils/HashUtil"; +import { JsonUtil } from "../utils/JsonUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +import { DialogueHelper } from "./DialogueHelper"; +import { ItemHelper } from "./ItemHelper"; +import { PaymentHelper } from "./PaymentHelper"; +import { ProfileHelper } from "./ProfileHelper"; +import { RagfairServerHelper } from "./RagfairServerHelper"; +import { TraderHelper } from "./TraderHelper"; +export declare class QuestHelper { + protected logger: ILogger; + protected jsonUtil: JsonUtil; + protected timeUtil: TimeUtil; + protected hashUtil: HashUtil; + protected itemHelper: ItemHelper; + protected itemEventRouter: ItemEventRouter; + protected databaseServer: DatabaseServer; + protected localeService: LocaleService; + protected ragfairServerHelper: RagfairServerHelper; + protected dialogueHelper: DialogueHelper; + protected profileHelper: ProfileHelper; + protected paymentHelper: PaymentHelper; + protected traderHelper: TraderHelper; + protected configServer: ConfigServer; + protected questConfig: IQuestConfig; + constructor(logger: ILogger, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, itemEventRouter: ItemEventRouter, databaseServer: DatabaseServer, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, traderHelper: TraderHelper, configServer: ConfigServer); + static get STATUS(): Record; + questStatus(pmcData: IPmcData, questID: string): string; + /** + * returns true is the condition is satisfied + */ + evaluateLevel(pmcProfile: IPmcData, cond: AvailableForConditions): boolean; + getDeltaQuests(before: IQuest[], after: IQuest[]): IQuest[]; + rewardSkillPoints(sessionID: string, pmcData: IPmcData, output: IItemEventRouterResponse, skillName: string, progress: number): void; + getQuestLocale(questId: string): any; + /** + * Debug Routine for showing some information on the + * quest list in question. + */ + dumpQuests(quests: any, label?: any): void; + loyaltyRequirementCheck(loyaltyRequirementProperties: AvailableForProps, profile: IPmcData): boolean; + protected processReward(reward: Reward): any[]; + getQuestRewardItems(quest: IQuest, state: string): Reward[]; + addQuestToPMCData(pmcData: IPmcData, quest: Quest, newState: string, acceptedQuest: IAcceptQuestRequestData): void; + acceptedUnlocked(acceptedQuestId: string, sessionID: string): IQuest[]; + failedUnlocked(failedQuestId: string, sessionID: string): IQuest[]; + applyMoneyBoost(quest: IQuest, moneyBoost: number): IQuest; + changeItemStack(pmcData: IPmcData, id: string, value: number, sessionID: string, output: any): void; + /** + * Get List of All Quests as an array + * @returns Array of IQuest objects + */ + questValues(): IQuest[]; + /** + * Reest AvailableForStart conditions for quests + * @param quests queststo clean + * @returns quest array without conditions + */ + protected cleanQuestList(quests: IQuest[]): IQuest[]; + /** + * Reset AvailableForStart conditions on a quest + * @param quest quest to clean + * @returns reset IQuest object + */ + cleanQuestConditions(quest: IQuest): IQuest; + failQuest(pmcData: IPmcData, body: any, sessionID: string): any; + getQuestFromDb(questId: string, pmcData: IPmcData): IQuest; + getQuestLocaleIdFromDb(messageId: string): string; + applyQuestReward(pmcData: IPmcData, body: ICompleteQuestRequestData, state: string, sessionID: string): Reward[]; + /** + * Get the intel center bonus a player has + * @param pmcData player profile + * @returns bonus in percent + */ + protected getIntelCenterRewardBonus(pmcData: IPmcData): number; + getFindItemIdForQuestItem(itemTpl: string): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/RagfairHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/RagfairHelper.d.ts new file mode 100644 index 0000000..2c8dbb5 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/RagfairHelper.d.ts @@ -0,0 +1,43 @@ +import { Item } from "../models/eft/common/tables/IItem"; +import { ITraderAssort } from "../models/eft/common/tables/ITrader"; +import { IGetOffersResult } from "../models/eft/ragfair/IGetOffersResult"; +import { ISearchRequestData } from "../models/eft/ragfair/ISearchRequestData"; +import { IRagfairConfig } from "../models/spt/config/IRagfairConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { RagfairLinkedItemService } from "../services/RagfairLinkedItemService"; +import { JsonUtil } from "../utils/JsonUtil"; +import { HandbookHelper } from "./HandbookHelper"; +import { ItemHelper } from "./ItemHelper"; +import { TraderAssortHelper } from "./TraderAssortHelper"; +import { UtilityHelper } from "./UtilityHelper"; +export declare class RagfairHelper { + protected logger: ILogger; + protected jsonUtil: JsonUtil; + protected traderAssortHelper: TraderAssortHelper; + protected databaseServer: DatabaseServer; + protected handbookHelper: HandbookHelper; + protected itemHelper: ItemHelper; + protected ragfairLinkedItemService: RagfairLinkedItemService; + protected utilityHelper: UtilityHelper; + protected configServer: ConfigServer; + protected ragfairConfig: IRagfairConfig; + constructor(logger: ILogger, jsonUtil: JsonUtil, traderAssortHelper: TraderAssortHelper, databaseServer: DatabaseServer, handbookHelper: HandbookHelper, itemHelper: ItemHelper, ragfairLinkedItemService: RagfairLinkedItemService, utilityHelper: UtilityHelper, configServer: ConfigServer); + /** + * Gets currency TAG from TPL + * @param {string} currency + * @returns string + */ + getCurrencyTag(currency: string): string; + filterCategories(sessionID: string, info: ISearchRequestData): string[]; + getDisplayableAssorts(sessionID: string): Record; + protected getCategoryList(handbookId: string): string[]; + countCategories(result: IGetOffersResult): void; + /** + * Merges Root Items + * Ragfair allows abnormally large stacks. + */ + mergeStackable(items: Item[]): Item[]; + getCurrencySymbol(currencyTpl: string): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/RagfairOfferHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/RagfairOfferHelper.d.ts new file mode 100644 index 0000000..5a77e13 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/RagfairOfferHelper.d.ts @@ -0,0 +1,54 @@ +import { IPmcData } from "../models/eft/common/IPmcData"; +import { ITraderAssort } from "../models/eft/common/tables/ITrader"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IRagfairOffer } from "../models/eft/ragfair/IRagfairOffer"; +import { ISearchRequestData } from "../models/eft/ragfair/ISearchRequestData"; +import { IQuestConfig } from "../models/spt/config/IQuestConfig"; +import { IRagfairConfig } from "../models/spt/config/IRagfairConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { SaveServer } from "../servers/SaveServer"; +import { LocaleService } from "../services/LocaleService"; +import { RagfairOfferService } from "../services/RagfairOfferService"; +import { HashUtil } from "../utils/HashUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +import { DialogueHelper } from "./DialogueHelper"; +import { ItemHelper } from "./ItemHelper"; +import { PaymentHelper } from "./PaymentHelper"; +import { PresetHelper } from "./PresetHelper"; +import { ProfileHelper } from "./ProfileHelper"; +import { RagfairHelper } from "./RagfairHelper"; +import { RagfairServerHelper } from "./RagfairServerHelper"; +import { RagfairSortHelper } from "./RagfairSortHelper"; +export declare class RagfairOfferHelper { + protected logger: ILogger; + protected timeUtil: TimeUtil; + protected hashUtil: HashUtil; + protected itemEventRouter: ItemEventRouter; + protected databaseServer: DatabaseServer; + protected saveServer: SaveServer; + protected dialogueHelper: DialogueHelper; + protected itemHelper: ItemHelper; + protected paymentHelper: PaymentHelper; + protected presetHelper: PresetHelper; + protected profileHelper: ProfileHelper; + protected ragfairServerHelper: RagfairServerHelper; + protected ragfairSortHelper: RagfairSortHelper; + protected ragfairHelper: RagfairHelper; + protected ragfairOfferService: RagfairOfferService; + protected localeService: LocaleService; + protected configServer: ConfigServer; + protected static TPL_GOODS_SOLD: string; + protected ragfairConfig: IRagfairConfig; + protected questConfig: IQuestConfig; + constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemEventRouter: ItemEventRouter, databaseServer: DatabaseServer, saveServer: SaveServer, dialogueHelper: DialogueHelper, itemHelper: ItemHelper, paymentHelper: PaymentHelper, presetHelper: PresetHelper, profileHelper: ProfileHelper, ragfairServerHelper: RagfairServerHelper, ragfairSortHelper: RagfairSortHelper, ragfairHelper: RagfairHelper, ragfairOfferService: RagfairOfferService, localeService: LocaleService, configServer: ConfigServer); + getValidOffers(info: ISearchRequestData, itemsToAdd: string[], assorts: Record, pmcProfile: IPmcData): IRagfairOffer[]; + getOffersForBuild(info: ISearchRequestData, itemsToAdd: string[], assorts: Record, pmcProfile: IPmcData): IRagfairOffer[]; + processOffers(sessionID: string): boolean; + protected getProfileOffers(sessionID: string): IRagfairOffer[]; + protected deleteOfferByOfferId(sessionID: string, offerId: string): void; + protected completeOffer(sessionID: string, offer: IRagfairOffer, boughtAmount: number): IItemEventRouterResponse; + isDisplayableOffer(info: ISearchRequestData, itemsToAdd: string[], assorts: Record, offer: IRagfairOffer, pmcProfile: IPmcData): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/RagfairSellHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/RagfairSellHelper.d.ts new file mode 100644 index 0000000..6ec004a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/RagfairSellHelper.d.ts @@ -0,0 +1,16 @@ +import { SellResult } from "../models/eft/ragfair/IRagfairOffer"; +import { IRagfairConfig } from "../models/spt/config/IRagfairConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { RandomUtil } from "../utils/RandomUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +export declare class RagfairSellHelper { + protected logger: ILogger; + protected randomUtil: RandomUtil; + protected timeUtil: TimeUtil; + protected configServer: ConfigServer; + protected ragfairConfig: IRagfairConfig; + constructor(logger: ILogger, randomUtil: RandomUtil, timeUtil: TimeUtil, configServer: ConfigServer); + calculateSellChance(baseChance: number, offerPrice: number, requirementsPriceInRub: number): number; + rollForSale(sellChance: number, count: number): SellResult[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/RagfairServerHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/RagfairServerHelper.d.ts new file mode 100644 index 0000000..a52306b --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/RagfairServerHelper.d.ts @@ -0,0 +1,48 @@ +import { Item } from "../models/eft/common/tables/IItem"; +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; +import { MemberCategory } from "../models/enums/MemberCategory"; +import { IQuestConfig } from "../models/spt/config/IQuestConfig"; +import { IRagfairConfig } from "../models/spt/config/IRagfairConfig"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { SaveServer } from "../servers/SaveServer"; +import { LocaleService } from "../services/LocaleService"; +import { HashUtil } from "../utils/HashUtil"; +import { JsonUtil } from "../utils/JsonUtil"; +import { RandomUtil } from "../utils/RandomUtil"; +import { DialogueHelper } from "./DialogueHelper"; +import { ItemHelper } from "./ItemHelper"; +import { ProfileHelper } from "./ProfileHelper"; +export declare class RagfairServerHelper { + protected randomUtil: RandomUtil; + protected hashUtil: HashUtil; + protected saveServer: SaveServer; + protected databaseServer: DatabaseServer; + protected profileHelper: ProfileHelper; + protected itemHelper: ItemHelper; + protected localeService: LocaleService; + protected dialogueHelper: DialogueHelper; + protected jsonUtil: JsonUtil; + protected configServer: ConfigServer; + protected ragfairConfig: IRagfairConfig; + protected questConfig: IQuestConfig; + protected static TPL_GOODS_RETURNED: string; + constructor(randomUtil: RandomUtil, hashUtil: HashUtil, saveServer: SaveServer, databaseServer: DatabaseServer, profileHelper: ProfileHelper, itemHelper: ItemHelper, localeService: LocaleService, dialogueHelper: DialogueHelper, jsonUtil: JsonUtil, configServer: ConfigServer); + /** + * Is item valid / on blacklist / quest item + * @param itemDetails + * @returns boolean + */ + isItemValidRagfairItem(itemDetails: [boolean, ITemplateItem]): boolean; + protected isItemBlacklisted(itemTemplateId: string): boolean; + isTrader(userID: string): boolean; + isPlayer(userID: string): boolean; + returnItems(sessionID: string, items: any[]): void; + calculateDynamicStackCount(tplId: string, isWeaponPreset: boolean): number; + getDynamicOfferCurrency(): string; + getMemberType(userID: string): MemberCategory; + getNickname(userID: string): string; + getPresetItems(item: any): Item[]; + getPresetItemsByTpl(item: Item): Item[]; + reparentPresets(item: Item, preset: Item[]): Item[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/RagfairSortHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/RagfairSortHelper.d.ts new file mode 100644 index 0000000..d20e10c --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/RagfairSortHelper.d.ts @@ -0,0 +1,14 @@ +import { IRagfairOffer } from "../models/eft/ragfair/IRagfairOffer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { LocaleService } from "../services/LocaleService"; +export declare class RagfairSortHelper { + protected databaseServer: DatabaseServer; + protected localeService: LocaleService; + constructor(databaseServer: DatabaseServer, localeService: LocaleService); + sortOffers(offers: IRagfairOffer[], type: number, direction?: number): IRagfairOffer[]; + protected sortOffersByID(a: IRagfairOffer, b: IRagfairOffer): number; + protected sortOffersByRating(a: IRagfairOffer, b: IRagfairOffer): number; + protected sortOffersByName(a: IRagfairOffer, b: IRagfairOffer): number; + protected sortOffersByPrice(a: IRagfairOffer, b: IRagfairOffer): number; + protected sortOffersByExpiry(a: IRagfairOffer, b: IRagfairOffer): number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/RagfairTaxHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/RagfairTaxHelper.d.ts new file mode 100644 index 0000000..820facb --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/RagfairTaxHelper.d.ts @@ -0,0 +1,16 @@ +import { IPmcData } from "../models/eft/common/IPmcData"; +import { Item } from "../models/eft/common/tables/IItem"; +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { RagfairPriceService } from "../services/RagfairPriceService"; +import { ItemHelper } from "./ItemHelper"; +import { ILogger } from "../models/spt/utils/ILogger"; +export declare class RagfairTaxHelper { + protected logger: ILogger; + protected databaseServer: DatabaseServer; + protected ragfairPriceService: RagfairPriceService; + protected itemHelper: ItemHelper; + constructor(logger: ILogger, databaseServer: DatabaseServer, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper); + calculateTax(item: Item, pmcData: IPmcData, requirementsValue: number, offerItemCount: number, sellInOnePiece: boolean): number; + protected calculateItemWorth(item: Item, itemTemplate: ITemplateItem, itemCount: number, pmcData: IPmcData, isRootItem?: boolean): number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/RepairHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/RepairHelper.d.ts new file mode 100644 index 0000000..545108e --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/RepairHelper.d.ts @@ -0,0 +1,21 @@ +import { Item } from "../models/eft/common/tables/IItem"; +import { ITemplateItem, Props } from "../models/eft/common/tables/ITemplateItem"; +import { IRepairConfig } from "../models/spt/config/IRepairConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { JsonUtil } from "../utils/JsonUtil"; +import { RandomUtil } from "../utils/RandomUtil"; +export declare class RepairHelper { + protected logger: ILogger; + protected jsonUtil: JsonUtil; + protected randomUtil: RandomUtil; + protected databaseServer: DatabaseServer; + protected configServer: ConfigServer; + protected repairConfig: IRepairConfig; + constructor(logger: ILogger, jsonUtil: JsonUtil, randomUtil: RandomUtil, databaseServer: DatabaseServer, configServer: ConfigServer); + updateItemDurability(itemToRepair: Item, itemToRepairDetails: ITemplateItem, isArmor: boolean, amountToRepair: number, useRepairKit?: boolean): Item; + protected getRandomisedArmorRepairDegredationValue(armorMaterial: string, isRepairKit: boolean, armorMax: number): number; + protected getRandomisedWeaponRepairDegredationValue(itemProps: Props, isRepairKit: boolean, armorMax: number): number; + isWeaponTemplate(tpl: string): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/SecureContainerHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/SecureContainerHelper.d.ts new file mode 100644 index 0000000..9e2bc32 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/SecureContainerHelper.d.ts @@ -0,0 +1,13 @@ +import { Item } from "../models/eft/common/tables/IItem"; +import { ItemHelper } from "./ItemHelper"; +export interface OwnerInventoryItems { + from: Item[]; + to: Item[]; + sameInventory: boolean; + isMail: boolean; +} +export declare class SecureContainerHelper { + protected itemHelper: ItemHelper; + constructor(itemHelper: ItemHelper); + getSecureContainerItems(items: Item[]): string[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/TradeHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/TradeHelper.d.ts new file mode 100644 index 0000000..975062b --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/TradeHelper.d.ts @@ -0,0 +1,44 @@ +import { InventoryHelper } from "../helpers/InventoryHelper"; +import { ItemHelper } from "../helpers/ItemHelper"; +import { TraderHelper } from "../helpers/TraderHelper"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { Item, Upd } from "../models/eft/common/tables/IItem"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IProcessBuyTradeRequestData } from "../models/eft/trade/IProcessBuyTradeRequestData"; +import { IProcessSellTradeRequestData } from "../models/eft/trade/IProcessSellTradeRequestData"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { RagfairServer } from "../servers/RagfairServer"; +import { FenceService } from "../services/FenceService"; +import { PaymentService } from "../services/PaymentService"; +export declare class TradeHelper { + protected logger: ILogger; + protected itemEventRouter: ItemEventRouter; + protected traderHelper: TraderHelper; + protected itemHelper: ItemHelper; + protected paymentService: PaymentService; + protected fenceService: FenceService; + protected inventoryHelper: InventoryHelper; + protected ragfairServer: RagfairServer; + constructor(logger: ILogger, itemEventRouter: ItemEventRouter, traderHelper: TraderHelper, itemHelper: ItemHelper, paymentService: PaymentService, fenceService: FenceService, inventoryHelper: InventoryHelper, ragfairServer: RagfairServer); + /** + * Buy item from flea or trader + * @param pmcData + * @param buyRequestData data from client + * @param sessionID + * @param foundInRaid + * @param upd optional item details used when buying from flea + * @returns + */ + buyItem(pmcData: IPmcData, buyRequestData: IProcessBuyTradeRequestData, sessionID: string, foundInRaid: boolean, upd: Upd): IItemEventRouterResponse; + /** + * Sell item to trader + * @param pmcData + * @param body + * @param sessionID + * @returns + */ + sellItem(pmcData: IPmcData, body: IProcessSellTradeRequestData, sessionID: string): IItemEventRouterResponse; + protected incrementAssortBuyCount(assortBeingPurchased: Item, itemsPurchasedCount: number): void; + protected checkPurchaseIsWithinTraderItemLimit(assortBeingPurchased: Item, assortId: string, count: number): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/TraderAssortHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/TraderAssortHelper.d.ts new file mode 100644 index 0000000..4f41ac2 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/TraderAssortHelper.d.ts @@ -0,0 +1,42 @@ +import { RagfairAssortGenerator } from "../generators/RagfairAssortGenerator"; +import { RagfairOfferGenerator } from "../generators/RagfairOfferGenerator"; +import { Item } from "../models/eft/common/tables/IItem"; +import { ITraderAssort } from "../models/eft/common/tables/ITrader"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { FenceService } from "../services/FenceService"; +import { TraderAssortService } from "../services/TraderAssortService"; +import { JsonUtil } from "../utils/JsonUtil"; +import { AssortHelper } from "./AssortHelper"; +import { ProfileHelper } from "./ProfileHelper"; +export declare class TraderAssortHelper { + protected logger: ILogger; + protected jsonUtil: JsonUtil; + protected databaseServer: DatabaseServer; + protected profileHelper: ProfileHelper; + protected assortHelper: AssortHelper; + protected ragfairAssortGenerator: RagfairAssortGenerator; + protected ragfairOfferGenerator: RagfairOfferGenerator; + protected traderAssortService: TraderAssortService; + protected fenceService: FenceService; + constructor(logger: ILogger, jsonUtil: JsonUtil, databaseServer: DatabaseServer, profileHelper: ProfileHelper, assortHelper: AssortHelper, ragfairAssortGenerator: RagfairAssortGenerator, ragfairOfferGenerator: RagfairOfferGenerator, traderAssortService: TraderAssortService, fenceService: FenceService); + /** + * Get a traders assorts + * Can be used for returning ragfair / fence assorts + * @param sessionId session id + * @param traderId trader id + * @returns a traders assorts + */ + getAssort(sessionId: string, traderId: string): ITraderAssort; + /** + * Get an array of pristine trader items prior to any alteration by player + * @param traderId trader id + * @returns array of Items + */ + protected getPristineTraderAssorts(traderId: string): Item[]; + /** + * Returns generated ragfair offers in a trader assort format + * @returns Trader assort object + */ + protected getRagfairDataAsTraderAssort(): ITraderAssort; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/TraderHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/TraderHelper.d.ts new file mode 100644 index 0000000..717351f --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/TraderHelper.d.ts @@ -0,0 +1,96 @@ +import { FenceLevel } from "../models/eft/common/IGlobals"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { Item } from "../models/eft/common/tables/IItem"; +import { IBarterScheme, ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader"; +import { ITraderConfig } from "../models/spt/config/ITraderConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { SaveServer } from "../servers/SaveServer"; +import { FenceService } from "../services/FenceService"; +import { PlayerService } from "../services/PlayerService"; +import { HandbookHelper } from "./HandbookHelper"; +import { ItemHelper } from "./ItemHelper"; +import { PaymentHelper } from "./PaymentHelper"; +import { ProfileHelper } from "./ProfileHelper"; +export declare class TraderHelper { + protected logger: ILogger; + protected databaseServer: DatabaseServer; + protected saveServer: SaveServer; + protected profileHelper: ProfileHelper; + protected paymentHelper: PaymentHelper; + protected itemHelper: ItemHelper; + protected handbookHelper: HandbookHelper; + protected playerService: PlayerService; + protected fenceService: FenceService; + protected configServer: ConfigServer; + protected traderConfig: ITraderConfig; + constructor(logger: ILogger, databaseServer: DatabaseServer, saveServer: SaveServer, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, itemHelper: ItemHelper, handbookHelper: HandbookHelper, playerService: PlayerService, fenceService: FenceService, configServer: ConfigServer); + getTrader(traderID: string, sessionID: string): ITraderBase; + getTraderAssortsById(traderId: string): ITraderAssort; + /** + * Reset a trader back to its initial state as seen by a level 1 player + * Does NOT take into account different profile levels + * @param sessionID session id + * @param traderID trader id to reset + */ + resetTrader(sessionID: string, traderID: string): void; + changeTraderDisplay(traderID: string, status: boolean, sessionID: string): void; + /** + * Get a list of items and their prices from player inventory that can be sold to a trader + * @param traderID trader id being traded with + * @param sessionID session id + * @returns IBarterScheme[][] + */ + getPurchasesData(traderID: string, sessionID: string): Record; + /** + * Should item be skipped when selling to trader according to its sell categories and other checks + * @param pmcData + * @param item + * @param sellCategory + * @returns true if should NOT be sold to trader + */ + protected isItemUnSellableToTrader(pmcData: IPmcData, item: Item, sellCategory: string[]): boolean; + /** + * Can this weapon be sold to a trader with its current durabiltiy level + * @param traderID + * @param item + * @returns boolean + */ + protected isWeaponAndBelowTraderBuyDurability(traderID: string, item: Item): boolean; + /** + * Get the price of an item and all of its attached children + * Take into account bonuses/adjsutments e.g. discounts + * @param pmcData profile data + * @param item item to calculate price of + * @param buyPriceCoefficient + * @param fenceInfo fence data + * @param traderBase trader details + * @param currencyTpl Currency to get price as + * @returns price of item + children + */ + protected getAdjustedItemPrice(pmcData: IPmcData, item: Item, buyPriceCoefficient: number, fenceInfo: FenceLevel, traderBase: ITraderBase, currencyTpl: string): number; + /** + * Get the raw price of item+child items from handbook without any modification + * @param pmcData profile data + * @param item item to calculate price of + * @returns price as number + */ + protected getRawItemPrice(pmcData: IPmcData, item: Item): number; + protected getTraderDiscount(trader: ITraderBase, buyPriceCoefficient: number, fenceInfo: FenceLevel, traderID: string): number; + /** + * Calculate traders level based on exp amount and increment level if over threshold + * @param traderID trader to process + * @param sessionID session id + */ + lvlUp(traderID: string, sessionID: string): void; + getTraderUpdateSeconds(traderId: string): number; + /** + * check if an item is allowed to be sold to a trader + * @param traderFilters array of allowed categories + * @param tplToCheck itemTpl of inventory + * @returns boolean + */ + traderFilter(traderFilters: string[], tplToCheck: string): boolean; + getLoyaltyLevel(traderID: string, pmcData: IPmcData): LoyaltyLevel; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/UtilityHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/UtilityHelper.d.ts new file mode 100644 index 0000000..5d9f482 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/UtilityHelper.d.ts @@ -0,0 +1,3 @@ +export declare class UtilityHelper { + arrayIntersect(a: T[], b: T[]): T[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/helpers/WeightedRandomHelper.d.ts b/TypeScript/14AfterDBLoadHook/types/helpers/WeightedRandomHelper.d.ts new file mode 100644 index 0000000..9aa0d29 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/helpers/WeightedRandomHelper.d.ts @@ -0,0 +1,28 @@ +export declare class WeightedRandomHelper { + /** + * Gets a tplId from a weighted dictionary + * @param {tplId: weighting[]} itemArray + * @returns tplId + */ + getWeightedInventoryItem(itemArray: { + [tplId: string]: unknown; + } | ArrayLike): string; + /** + * Picks the random item based on its weight. + * The items with higher weight will be picked more often (with a higher probability). + * + * For example: + * - items = ['banana', 'orange', 'apple'] + * - weights = [0, 0.2, 0.8] + * - weightedRandom(items, weights) in 80% of cases will return 'apple', in 20% of cases will return + * 'orange' and it will never return 'banana' (because probability of picking the banana is 0%) + * + * @param {any[]} items + * @param {number[]} weights + * @returns {{item: any, index: number}} + */ + weightedRandom(items: string | any[], weights: string | any[]): { + item: any; + index: number; + }; +} diff --git a/TypeScript/14AfterDBLoadHook/types/ide/BleedingEdgeEntry.d.ts b/TypeScript/14AfterDBLoadHook/types/ide/BleedingEdgeEntry.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/ide/BleedingEdgeEntry.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/TypeScript/14AfterDBLoadHook/types/ide/Compiler.d.ts b/TypeScript/14AfterDBLoadHook/types/ide/Compiler.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/ide/Compiler.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/TypeScript/14AfterDBLoadHook/types/ide/DebugEntry.d.ts b/TypeScript/14AfterDBLoadHook/types/ide/DebugEntry.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/ide/DebugEntry.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/TypeScript/14AfterDBLoadHook/types/ide/ReleaseEntry.d.ts b/TypeScript/14AfterDBLoadHook/types/ide/ReleaseEntry.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/ide/ReleaseEntry.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/TypeScript/14AfterDBLoadHook/types/ide/TestEntry.d.ts b/TypeScript/14AfterDBLoadHook/types/ide/TestEntry.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/ide/TestEntry.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/TypeScript/14AfterDBLoadHook/types/loaders/AfterDbModLoader.d.ts b/TypeScript/14AfterDBLoadHook/types/loaders/AfterDbModLoader.d.ts new file mode 100644 index 0000000..a9fc286 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/loaders/AfterDbModLoader.d.ts @@ -0,0 +1,11 @@ +import { DependencyContainer } from "tsyringe"; +import { OnLoad } from "../di/OnLoad"; +import { InitialModLoader } from "./InitialModLoader"; +export declare class AfterDbModLoader implements OnLoad { + protected initialModLoader: InitialModLoader; + constructor(initialModLoader: InitialModLoader); + onLoad(): void; + getRoute(): string; + getModPath(mod: string): string; + protected executeMods(container: DependencyContainer): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/loaders/BundleLoader.d.ts b/TypeScript/14AfterDBLoadHook/types/loaders/BundleLoader.d.ts new file mode 100644 index 0000000..06ad698 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/loaders/BundleLoader.d.ts @@ -0,0 +1,22 @@ +import { HttpServerHelper } from "../helpers/HttpServerHelper"; +import { JsonUtil } from "../utils/JsonUtil"; +import { VFS } from "../utils/VFS"; +declare class BundleInfo { + modPath: string; + key: string; + path: string; + filepath: string; + dependencyKeys: string[]; + constructor(modpath: string, bundle: any, bundlePath: string, bundleFilepath: string); +} +export declare class BundleLoader { + protected httpServerHelper: HttpServerHelper; + protected vfs: VFS; + protected jsonUtil: JsonUtil; + protected bundles: Record; + constructor(httpServerHelper: HttpServerHelper, vfs: VFS, jsonUtil: JsonUtil); + getBundles(local: boolean): BundleInfo[]; + getBundle(key: string, local: boolean): BundleInfo; + addBundles(modpath: string): void; +} +export {}; diff --git a/TypeScript/14AfterDBLoadHook/types/loaders/DelayedModLoader.d.ts b/TypeScript/14AfterDBLoadHook/types/loaders/DelayedModLoader.d.ts new file mode 100644 index 0000000..2a05604 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/loaders/DelayedModLoader.d.ts @@ -0,0 +1,21 @@ +import { DependencyContainer } from "tsyringe"; +import { HandbookController } from "../controllers/HandbookController"; +import { IModLoader } from "../models/spt/mod/IModLoader"; +import { ModCompilerService } from "../services/ModCompilerService"; +import { VFS } from "../utils/VFS"; +import { BundleLoader } from "./BundleLoader"; +import { InitialModLoader } from "./InitialModLoader"; +export declare class DelayedModLoader implements IModLoader { + protected bundleLoader: BundleLoader; + protected handbookController: HandbookController; + protected vfs: VFS; + protected modCompilerService: ModCompilerService; + protected initialModLoader: InitialModLoader; + constructor(bundleLoader: BundleLoader, handbookController: HandbookController, vfs: VFS, modCompilerService: ModCompilerService, initialModLoader: InitialModLoader); + getBundles(local: boolean): string; + getBundle(key: string, local: boolean): void; + getModPath(mod: string): string; + load(): void; + protected executeMods(container: DependencyContainer): void; + protected addBundles(): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/loaders/InitialModLoader.d.ts b/TypeScript/14AfterDBLoadHook/types/loaders/InitialModLoader.d.ts new file mode 100644 index 0000000..9a99dcc --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/loaders/InitialModLoader.d.ts @@ -0,0 +1,64 @@ +import { DependencyContainer } from "tsyringe"; +import { ICoreConfig } from "../models/spt/config/ICoreConfig"; +import { ModLoader } from "../models/spt/mod/IMod"; +import { IModLoader } from "../models/spt/mod/IModLoader"; +import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { ModCompilerService } from "../services/ModCompilerService"; +import { JsonUtil } from "../utils/JsonUtil"; +import { VFS } from "../utils/VFS"; +import { BundleLoader } from "./BundleLoader"; +export declare class InitialModLoader implements IModLoader { + protected logger: ILogger; + protected vfs: VFS; + protected jsonUtil: JsonUtil; + protected modCompilerService: ModCompilerService; + protected bundleLoader: BundleLoader; + protected configServer: ConfigServer; + protected static container: DependencyContainer; + protected readonly basepath = "user/mods/"; + protected imported: Record; + protected akiConfig: ICoreConfig; + constructor(logger: ILogger, vfs: VFS, jsonUtil: JsonUtil, modCompilerService: ModCompilerService, bundleLoader: BundleLoader, configServer: ConfigServer); + load(container: DependencyContainer): Promise; + getBundles(local: boolean): string; + getBundle(key: string, local: boolean): void; + /** + * Returns a list of mods with preserved load order + * @returns Array of mod names in load order + */ + getImportedModsNames(): string[]; + getModPath(mod: string): string; + protected importClass(name: string, filepath: string, container: DependencyContainer): void; + protected importMods(): Promise; + /** + * + * @param mods Get an array of broken/invalid mods by name + * @returns Mod names array + */ + protected getBrokenMods(mods: string[]): string[]; + /** + * Get packageJson data for mods + * @param mods mods to get packageJson for + * @returns dictionary + */ + protected getModsPackageData(mods: string[]): Record; + /** + * Does mod have "delayedLoad(" string in its entry class + * @param modFolderName folder name + * @param modToValidate package.json details + * @returns boolean + */ + protected isModSpt300Compatible(modFolderName: string, modToValidate: IPackageJsonData): boolean; + protected isModCombatibleWithAki(mod: IPackageJsonData): boolean; + protected executeMods(container: DependencyContainer): void; + sortModsLoadOrder(): string[]; + protected addMod(mod: string): Promise; + protected areModDependenciesFulfilled(pkg: IPackageJsonData, loadedMods: Record): boolean; + protected isModCompatible(mod: IPackageJsonData, loadedMods: Record): boolean; + protected validMod(mod: string): boolean; + protected getLoadOrderRecursive(mod: string, result: Record, visited: Record): void; + protected getLoadOrder(mods: Record): Record; + getContainer(): DependencyContainer; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/bot/IGenerateBotsRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/bot/IGenerateBotsRequestData.d.ts new file mode 100644 index 0000000..c49cef7 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/bot/IGenerateBotsRequestData.d.ts @@ -0,0 +1,8 @@ +export interface IGenerateBotsRequestData { + conditions: Condition[]; +} +export interface Condition { + Role: string; + Limit: number; + Difficulty: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/IEmptyRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/IEmptyRequestData.d.ts new file mode 100644 index 0000000..284d16e --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/IEmptyRequestData.d.ts @@ -0,0 +1,2 @@ +export interface IEmptyRequestData { +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/IGlobals.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/IGlobals.d.ts new file mode 100644 index 0000000..456895c --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/IGlobals.d.ts @@ -0,0 +1,1176 @@ +import { Item } from "./tables/IItem"; +export interface IGlobals { + time: number; + config: Config; + bot_presets: BotPreset[]; + BotWeaponScatterings: BotWeaponScattering[]; + ItemPresets: Record; +} +export interface Config { + content: Content; + AimPunchMagnitude: number; + WeaponSkillProgressRate: number; + SkillAtrophy: boolean; + exp: Exp; + t_base_looting: number; + t_base_lockpicking: number; + armor: Armor; + SessionsToShowHotKeys: number; + MaxBotsAliveOnMap: number; + SavagePlayCooldown: number; + SavagePlayCooldownNdaFree: number; + MarksmanAccuracy: number; + SavagePlayCooldownDevelop: number; + TODSkyDate: string; + Mastering: Mastering[]; + GlobalItemPriceModifier: number; + TradingUnlimitedItems: boolean; + MaxLoyaltyLevelForAll: boolean; + GlobalLootChanceModifier: number; + TimeBeforeDeploy: number; + TimeBeforeDeployLocal: number; + LoadTimeSpeedProgress: number; + BaseLoadTime: number; + BaseUnloadTime: number; + BaseCheckTime: number; + Customization: Customization; + UncheckOnShot: boolean; + BotsEnabled: boolean; + ArmorMaterials: ArmorMaterials; + LegsOverdamage: number; + HandsOverdamage: number; + StomachOverdamage: number; + Health: Health; + rating: Rating; + tournament: Tournament; + RagFair: RagFair; + handbook: Handbook; + FractureCausedByFalling: Probability; + FractureCausedByBulletHit: Probability; + WAVE_COEF_LOW: number; + WAVE_COEF_MID: number; + WAVE_COEF_HIGH: number; + WAVE_COEF_HORDE: number; + Stamina: Stamina; + StaminaRestoration: StaminaRestoration; + StaminaDrain: StaminaDrain; + RequirementReferences: RequirementReferences; + RepairKitSettings: RepairKitSettings; + RestrictionsInRaid: RestrictionsInRaid[]; + SkillMinEffectiveness: number; + SkillFatiguePerPoint: number; + SkillFreshEffectiveness: number; + SkillFreshPoints: number; + SkillPointsBeforeFatigue: number; + SkillFatigueReset: number; + DiscardLimitsEnabled: boolean; + EventType: string[]; + WalkSpeed: xyz; + SprintSpeed: xyz; + SkillEnduranceWeightThreshold: number; + TeamSearchingTimeout: number; + Insurance: Insurance; + SkillExpPerLevel: number; + GameSearchingTimeout: number; + WallContusionAbsorption: xyz; + SkillsSettings: SkillsSettings; + AzimuthPanelShowsPlayerOrientation: boolean; + Aiming: Aiming; + Malfunction: Malfunction; + Overheat: Overheat; + FenceSettings: FenceSettings; + TestValue: number; + Inertia: Inertia; + Ballistic: Ballistic; +} +export interface Content { + ip: string; + port: number; + root: string; +} +export interface Exp { + heal: Heal; + match_end: MatchEnd; + kill: Kill; + level: Level; + loot_attempts: LootAttempt[]; + expForLockedDoorOpen: number; + expForLockedDoorBreach: number; + triggerMult: number; +} +export interface Heal { + expForHeal: number; + expForHydration: number; + expForEnergy: number; +} +export interface MatchEnd { + README: string; + survived_exp_requirement: number; + survived_seconds_requirement: number; + survived_exp_reward: number; + mia_exp_reward: number; + runner_exp_reward: number; + leftMult: number; + miaMult: number; + survivedMult: number; + runnerMult: number; + killedMult: number; +} +export interface Kill { + combo: Combo[]; + victimLevelExp: number; + headShotMult: number; + expOnDamageAllHealth: number; + longShotDistance: number; + bloodLossToLitre: number; + victimBotLevelExp: number; +} +export interface Combo { + percent: number; +} +export interface Level { + exp_table: ExpTable[]; + trade_level: number; + savage_level: number; + clan_level: number; + mastering1: number; + mastering2: number; +} +export interface ExpTable { + exp: number; +} +export interface LootAttempt { + k_exp: number; +} +export interface Armor { + class: Class[]; +} +export interface Class { + resistance: number; +} +export interface Mastering { + Name: string; + Templates: string[]; + Level2: number; + Level3: number; +} +export interface Customization { + SavageHead: SavageHead; + SavageBody: SavageBody; + SavageFeet: SavageFeet; + CustomizationVoice: CustomizationVoice[]; + BodyParts: BodyParts; +} +export interface SavageHead { + wild_head_1: WildHead; + wild_head_2: WildHead; + wild_head_3: WildHead; + Wild_Dealmaker_head: WildHead; + Wild_Killa_head: WildHead; + bear_head: WildHead; + bear_head_1: WildHead; + usec_head_1: WildHead; + Head_BOSS_Glukhar: WildHead; + Wild_Head_nonMesh: WildHead; + Head_BOSS_Sanitar: WildHead; + wild_head_drozd: WildHead; + wild_head_misha: WildHead; + head_cultist_01: WildHead; + head_cultist_02: WildHead; + head_cultist_03: WildHead; + DefaultUsecHead: WildHead; + usec_head_3: WildHead; + usec_head_4: WildHead; + usec_head_5: WildHead; +} +export interface WildHead { + head: string; + isNotRandom: boolean; + NotRandom: boolean; +} +export interface SavageBody { + wild_body: WildBody; + wild_body_1: WildBody; + wild_body_2: WildBody; + wild_body_3: WildBody; + Wild_Dealmaker_body: WildBody; + wild_security_body_1: WildBody; + wild_security_body_2: WildBody; + wild_Killa_body: WildBody; + wild_pmcBot_body: WildBody; + wild_Shturman_body: WildBody; + wild_Gluhar_body: WildBody; + Tshirt_security_TshirtTatu_01: WildBody; + Tshirt_security_TshirtTatu_02: WildBody; + Top_security_Husky: WildBody; + Top_security_Gorka4: WildBody; + scav_kit_upper_meteor: WildBody; + wild_body_russia1: WildBody; + Top_BOSS_Sanitar: WildBody; + wild_body_motocross: WildBody; + top_cultist_01: WildBody; + top_cultist_02: WildBody; + wild_body_rainparka: WildBody; + wild_body_underarmour: WildBody; + top_boss_tagilla: WildBody; + DefaultUsecBody: WildBody; + usec_upper_acu: WildBody; + usec_upper_commando: WildBody; + usec_upper_aggressor: WildBody; + usec_upper_hoody: WildBody; + usec_upper_pcuironsight: WildBody; + usec_top_beltstaff: WildBody; + usec_upper_flexion: WildBody; + usec_upper_tier3: WildBody; + usec_upper_pcsmulticam: WildBody; + usec_upper_tier_2: WildBody; + usec_upper_infiltrator: WildBody; + user_upper_NightPatrol: WildBody; + wild_body_bomber: WildBody; + wild_top_yellowcoat: WildBody; +} +export interface WildBody { + body: string; + hands: string; + isNotRandom: boolean; +} +export interface SavageFeet { + wild_feet: WildFeet; + wild_feet_1: WildFeet; + wild_feet_2: WildFeet; + Wild_Dealmaker_feet: WildFeet; + wild_security_feet_1: WildFeet; + Wild_Killa_feet: WildFeet; + wild_pmcBot_feet: WildFeet; + Pants_BOSS_Glukhar: WildFeet; + Pants_BOSS_Shturman: WildFeet; + Pants_security_Gorka4: WildFeet; + Pants_security_Flora: WildFeet; + scav_kit_lower_sklon: WildFeet; + Pants_BOSS_Sanitar: WildFeet; + wild_feet_sweatpants: WildFeet; + wild_feet_wasatch: WildFeet; + wild_feet_slimPants: WildFeet; + pants_cultist_01: WildFeet; + pants_cultist_02: WildFeet; + wild_feet_scavelite_taclite: WildFeet; + pants_boss_tagilla: WildFeet; + wild_feet_bomber: WildFeet; + wild_pants_yellowcoat: WildFeet; +} +export interface WildFeet { + feet: string; + isNotRandom: boolean; + NotRandom: boolean; +} +export interface CustomizationVoice { + voice: string; + side: string[]; + isNotRandom: boolean; +} +export interface BodyParts { + Head: string; + Body: string; + Feet: string; + Hands: string; +} +export interface ArmorMaterials { + UHMWPE: ArmorType; + Aramid: ArmorType; + Combined: ArmorType; + Titan: ArmorType; + Aluminium: ArmorType; + ArmoredSteel: ArmorType; + Ceramic: ArmorType; + Glass: ArmorType; +} +export interface ArmorType { + Destructibility: number; + MinRepairDegradation: number; + MaxRepairDegradation: number; + ExplosionDestructibility: number; + MinRepairKitDegradation: number; + MaxRepairKitDegradation: number; +} +export interface Health { + Falling: Falling; + Effects: Effects; + HealPrice: HealPrice; + ProfileHealthSettings: ProfileHealthSettings; +} +export interface Falling { + DamagePerMeter: number; + SafeHeight: number; +} +export interface Effects { + Existence: Existence; + Dehydration: Dehydration; + BreakPart: BreakPart; + Contusion: Contusion; + Disorientation: Disorientation; + Exhaustion: Exhaustion; + LowEdgeHealth: LowEdgeHealth; + RadExposure: RadExposure; + Stun: Stun; + Intoxication: Intoxication; + Regeneration: Regeneration; + Wound: Wound; + Berserk: Berserk; + Flash: Flash; + MedEffect: MedEffect; + Pain: Pain; + PainKiller: PainKiller; + SandingScreen: SandingScreen; + Stimulator: Stimulator; + Tremor: Tremor; + ChronicStaminaFatigue: ChronicStaminaFatigue; + Fracture: Fracture2; + HeavyBleeding: HeavyBleeding2; + LightBleeding: LightBleeding2; + BodyTemperature: BodyTemperature; +} +export interface Existence { + EnergyLoopTime: number; + HydrationLoopTime: number; + EnergyDamage: number; + HydrationDamage: number; + DestroyedStomachEnergyTimeFactor: number; + DestroyedStomachHydrationTimeFactor: number; +} +export interface Dehydration { + DefaultDelay: number; + DefaultResidueTime: number; + BleedingHealth: number; + BleedingLoopTime: number; + BleedingLifeTime: number; + DamageOnStrongDehydration: number; + StrongDehydrationLoopTime: number; +} +export interface BreakPart { + DefaultDelay: number; + DefaultResidueTime: number; + HealExperience: number; + OfflineDurationMin: number; + OfflineDurationMax: number; + RemovePrice: number; + RemovedAfterDeath: boolean; + BulletHitProbability: Probability; + FallingProbability: Probability; +} +export interface Contusion { + Dummy: number; +} +export interface Disorientation { + Dummy: number; +} +export interface Exhaustion { + DefaultDelay: number; + DefaultResidueTime: number; + Damage: number; + DamageLoopTime: number; +} +export interface LowEdgeHealth { + DefaultDelay: number; + DefaultResidueTime: number; + StartCommonHealth: number; +} +export interface RadExposure { + Damage: number; + DamageLoopTime: number; +} +export interface Stun { + Dummy: number; +} +export interface Intoxication { + DefaultDelay: number; + DefaultResidueTime: number; + DamageHealth: number; + HealthLoopTime: number; + OfflineDurationMin: number; + OfflineDurationMax: number; + RemovedAfterDeath: boolean; + HealExperience: number; + RemovePrice: number; +} +export interface Regeneration { + LoopTime: number; + MinimumHealthPercentage: number; + Energy: number; + Hydration: number; + BodyHealth: BodyHealth; + Influences: Influences; +} +export interface BodyHealth { + Head: BodyHealthValue; + Chest: BodyHealthValue; + Stomach: BodyHealthValue; + LeftArm: BodyHealthValue; + RightArm: BodyHealthValue; + LeftLeg: BodyHealthValue; + RightLeg: BodyHealthValue; +} +export interface BodyHealthValue { + Value: number; +} +export interface Influences { + LightBleeding: Influence; + HeavyBleeding: Influence; + Fracture: Influence; + RadExposure: Influence; + Intoxication: Influence; +} +export interface Influence { + HealthSlowDownPercentage: number; + EnergySlowDownPercentage: number; + HydrationSlowDownPercentage: number; +} +export interface Wound { + WorkingTime: number; + ThresholdMin: number; + ThresholdMax: number; +} +export interface Berserk { + DefaultDelay: number; + WorkingTime: number; + DefaultResidueTime: number; +} +export interface Flash { + Dummy: number; +} +export interface MedEffect { + LoopTime: number; + StartDelay: number; + DrinkStartDelay: number; + FoodStartDelay: number; + DrugsStartDelay: number; + MedKitStartDelay: number; + MedicalStartDelay: number; + StimulatorStartDelay: number; +} +export interface Pain { + TremorDelay: number; + HealExperience: number; +} +export interface PainKiller { + Dummy: number; +} +export interface SandingScreen { + Dummy: number; +} +export interface Stimulator { + BuffLoopTime: number; + Buffs: Buffs; +} +export interface Buffs { + BuffsSJ1TGLabs: Buff[]; + BuffsSJ6TGLabs: Buff[]; + BuffsPropital: Buff[]; + BuffsZagustin: Buff[]; + BuffseTGchange: Buff[]; + BuffsAdrenaline: Buff[]; + BuffsGoldenStarBalm: Buff[]; + Buffs_drink_aquamari: Buff[]; + Buffs_drink_maxenergy: Buff[]; + Buffs_drink_milk: Buff[]; + Buffs_drink_tarcola: Buff[]; + Buffs_drink_hotrod: Buff[]; + Buffs_drink_juice_army: Buff[]; + Buffs_drink_water: Buff[]; + Buffs_food_borodinskiye: Buff[]; + Buffs_food_condensed_milk: Buff[]; + Buffs_food_emelya: Buff[]; + Buffs_food_mayonez: Buff[]; + Buffs_food_mre: Buff[]; + Buffs_food_sugar: Buff[]; + Buffs_drink_vodka: Buff[]; + Buffs_drink_jack: Buff[]; + Buffs_drink_moonshine: Buff[]; + Buffs_drink_purewater: Buff[]; + Buffs_3bTG: Buff[]; + Buffs_AHF1M: Buff[]; + Buffs_L1: Buff[]; + Buffs_MULE: Buff[]; + Buffs_Meldonin: Buff[]; + Buffs_Obdolbos: Buff[]; + Buffs_P22: Buff[]; + Buffs_KultistsToxin: Buff[]; + Buffs_BodyTemperature: Buff[]; + Buffs_Antidote: Buff[]; + Buffs_melee_bleed: Buff[]; + Buffs_melee_blunt: Buff[]; + Buffs_hultafors: Buff[]; + Buffs_drink_vodka_BAD: Buff[]; + Buffs_food_alyonka: Buff[]; + Buffs_food_slippers: Buff[]; + Buffs_knife: Buff[]; +} +export interface Buff { + BuffType: string; + Chance: number; + Delay: number; + Duration: number; + Value: number; + AbsoluteValue: boolean; + SkillName: string; +} +export interface Tremor { + DefaultDelay: number; + DefaultResidueTime: number; +} +export interface ChronicStaminaFatigue { + EnergyRate: number; + WorkingTime: number; + TicksEvery: number; + EnergyRatePerStack: number; +} +export interface Fracture2 { + DefaultDelay: number; + DefaultResidueTime: number; + HealExperience: number; + OfflineDurationMin: number; + OfflineDurationMax: number; + RemovePrice: number; + RemovedAfterDeath: boolean; + BulletHitProbability: Probability; + FallingProbability: Probability; +} +export interface HeavyBleeding2 { + DefaultDelay: number; + DefaultResidueTime: number; + DamageEnergy: number; + DamageHealth: number; + EnergyLoopTime: number; + HealthLoopTime: number; + DamageHealthDehydrated: number; + HealthLoopTimeDehydrated: number; + LifeTimeDehydrated: number; + EliteVitalityDuration: number; + HealExperience: number; + OfflineDurationMin: number; + OfflineDurationMax: number; + RemovePrice: number; + RemovedAfterDeath: boolean; + Probability: Probability; +} +export interface Probability { + FunctionType: string; + K: number; + B: number; + Threshold: number; +} +export interface LightBleeding2 { + DefaultDelay: number; + DefaultResidueTime: number; + DamageEnergy: number; + DamageHealth: number; + EnergyLoopTime: number; + HealthLoopTime: number; + DamageHealthDehydrated: number; + HealthLoopTimeDehydrated: number; + LifeTimeDehydrated: number; + EliteVitalityDuration: number; + HealExperience: number; + OfflineDurationMin: number; + OfflineDurationMax: number; + RemovePrice: number; + RemovedAfterDeath: boolean; + Probability: Probability; +} +export interface BodyTemperature { + DefaultBuildUpTime: number; + DefaultResidueTime: number; + LoopTime: number; +} +export interface HealPrice { + HealthPointPrice: number; + HydrationPointPrice: number; + EnergyPointPrice: number; + TrialLevels: number; + TrialRaids: number; +} +export interface ProfileHealthSettings { + BodyPartsSettings: BodyPartsSettings; + HealthFactorsSettings: HealthFactorsSettings; +} +export interface BodyPartsSettings { + Head: BodyPartsSetting; + Chest: BodyPartsSetting; + Stomach: BodyPartsSetting; + LeftArm: BodyPartsSetting; + RightArm: BodyPartsSetting; + LeftLeg: BodyPartsSetting; + RightLeg: BodyPartsSetting; +} +export interface BodyPartsSetting { + Minimum: number; + Maximum: number; + Default: number; + OverDamageReceivedMultiplier: number; +} +export interface HealthFactorsSettings { + Energy: HealthFactorSetting; + Hydration: HealthFactorSetting; + Temperature: HealthFactorSetting; + Poisoning: HealthFactorSetting; + Radiation: HealthFactorSetting; +} +export interface HealthFactorSetting { + Minimum: number; + Maximum: number; + Default: number; +} +export interface Rating { + levelRequired: number; + limit: number; + categories: Categories; +} +export interface Categories { + experience: boolean; + kd: boolean; + surviveRatio: boolean; + avgEarnings: boolean; + kills: boolean; + raidCount: boolean; + longestShot: boolean; + timeOnline: boolean; + inventoryFullCost: boolean; + ragFairStanding: boolean; +} +export interface Tournament { + categories: Categories2; + limit: number; + levelRequired: number; +} +export interface Categories2 { + dogtags: boolean; +} +export interface RagFair { + enabled: boolean; + priceStabilizerEnabled: boolean; + includePveTraderSales: boolean; + priceStabilizerStartIntervalInHours: number; + minUserLevel: number; + communityTax: number; + communityItemTax: number; + communityRequirementTax: number; + offerPriorityCost: number; + offerDurationTimeInHour: number; + offerDurationTimeInHourAfterRemove: number; + priorityTimeModifier: number; + maxRenewOfferTimeInHour: number; + renewPricePerHour: number; + maxActiveOfferCount: MaxActiveOfferCount[]; + balancerRemovePriceCoefficient: number; + balancerMinPriceCount: number; + balancerAveragePriceCoefficient: number; + delaySinceOfferAdd: number; + uniqueBuyerTimeoutInDays: number; + ratingSumForIncrease: number; + ratingIncreaseCount: number; + ratingSumForDecrease: number; + ratingDecreaseCount: number; + maxSumForIncreaseRatingPerOneSale: number; + maxSumForDecreaseRatingPerOneSale: number; + maxSumForRarity: MaxSumForRarity; + ChangePriceCoef: number; + balancerUserItemSaleCooldownEnabled: boolean; + balancerUserItemSaleCooldown: number; + youSellOfferMaxStorageTimeInHour: number; + yourOfferDidNotSellMaxStorageTimeInHour: number; + isOnlyFoundInRaidAllowed: boolean; + sellInOnePiece: number; +} +export interface MaxActiveOfferCount { + from: number; + to: number; + count: number; +} +export interface MaxSumForRarity { + Common: RarityMaxSum; + Rare: RarityMaxSum; + Superrare: RarityMaxSum; + Not_exist: RarityMaxSum; +} +export interface RarityMaxSum { + value: number; +} +export interface Handbook { + defaultCategory: string; +} +export interface Stamina { + Capacity: number; + SprintDrainRate: number; + BaseRestorationRate: number; + JumpConsumption: number; + GrenadeHighThrow: number; + GrenadeLowThrow: number; + AimDrainRate: number; + AimRangeFinderDrainRate: number; + OxygenCapacity: number; + OxygenRestoration: number; + WalkOverweightLimits: xyz; + BaseOverweightLimits: xyz; + SprintOverweightLimits: xyz; + WalkSpeedOverweightLimits: xyz; + CrouchConsumption: xyz; + WalkConsumption: xyz; + StandupConsumption: xyz; + TransitionSpeed: xyz; + SprintAccelerationLowerLimit: number; + SprintSpeedLowerLimit: number; + SprintSensitivityLowerLimit: number; + AimConsumptionByPose: xyz; + RestorationMultiplierByPose: xyz; + OverweightConsumptionByPose: xyz; + AimingSpeedMultiplier: number; + WalkVisualEffectMultiplier: number; + HandsCapacity: number; + HandsRestoration: number; + ProneConsumption: number; + BaseHoldBreathConsumption: number; + SoundRadius: xyz; + ExhaustedMeleeSpeed: number; + FatigueRestorationRate: number; + FatigueAmountToCreateEffect: number; + ExhaustedMeleeDamageMultiplier: number; + FallDamageMultiplier: number; + SafeHeightOverweight: number; + SitToStandConsumption: number; + StaminaExhaustionCausesJiggle: boolean; + StaminaExhaustionStartsBreathSound: boolean; + StaminaExhaustionRocksCamera: boolean; + HoldBreathStaminaMultiplier: xyz; + PoseLevelIncreaseSpeed: xyz; + PoseLevelDecreaseSpeed: xyz; + PoseLevelConsumptionPerNotch: xyz; +} +export interface StaminaRestoration { + LowerLeftPoint: number; + LowerRightPoint: number; + LeftPlatoPoint: number; + RightPlatoPoint: number; + RightLimit: number; + ZeroValue: number; +} +export interface StaminaDrain { + LowerLeftPoint: number; + LowerRightPoint: number; + LeftPlatoPoint: number; + RightPlatoPoint: number; + RightLimit: number; + ZeroValue: number; +} +export interface RequirementReferences { + Alpinist: Alpinist[]; +} +export interface Alpinist { + Requirement: string; + Id: string; + Count: number; + RequiredSlot: string; + RequirementTip: string; +} +export interface RestrictionsInRaid { + TemplateId: string; + Value: number; +} +export interface Insurance { + MaxStorageTimeInHour: number; +} +export interface SkillsSettings { + SkillProgressRate: number; + WeaponSkillProgressRate: number; + WeaponSkillRecoilBonusPerLevel: number; + HideoutManagement: HideoutManagement; + Crafting: Crafting; + Metabolism: Metabolism; + Immunity: Immunity; + Endurance: Endurance; + Strength: Strength; + Vitality: Vitality; + Health: Health2; + StressResistance: StressResistance; + Throwing: Throwing; + RecoilControl: RecoilControl; + Pistol: WeaponSkills; + Revolver: WeaponSkills; + SMG: any[]; + Assault: WeaponSkills; + Shotgun: WeaponSkills; + Sniper: WeaponSkills; + LMG: any[]; + HMG: any[]; + Launcher: any[]; + AttachedLauncher: any[]; + Melee: any[]; + DMR: WeaponSkills; + BearAssaultoperations: any[]; + BearAuthority: any[]; + BearAksystems: any[]; + BearHeavycaliber: any[]; + BearRawpower: any[]; + UsecArsystems: any[]; + UsecDeepweaponmodding_Settings: any[]; + UsecLongrangeoptics_Settings: any[]; + UsecNegotiations: any[]; + UsecTactics: any[]; + BotReload: any[]; + CovertMovement: CovertMovement; + FieldMedicine: any[]; + Search: Search; + Sniping: any[]; + ProneMovement: any[]; + FirstAid: any[]; + LightVests: ArmorSkills; + HeavyVests: ArmorSkills; + WeaponModding: any[]; + AdvancedModding: any[]; + NightOps: any[]; + SilentOps: any[]; + Lockpicking: any[]; + WeaponTreatment: WeaponTreatment; + MagDrills: MagDrills; + Freetrading: any[]; + Auctions: any[]; + Cleanoperations: any[]; + Barter: any[]; + Shadowconnections: any[]; + Taskperformance: any[]; + Perception: Perception; + Intellect: Intellect; + Attention: Attention; + Charisma: Charisma; + Memory: Memory; + Surgery: Surgery; + AimDrills: AimDrills; + BotSound: any[]; + TroubleShooting: TroubleShooting; +} +export interface ArmorSkills { + WearAmountRepairLVestsReducePerLevel: number; + WearChanceRepairLVestsReduceEliteLevel: number; +} +export interface HideoutManagement { + SkillPointsPerAreaUpgrade: number; + SkillPointsPerCraft: number; + ConsumptionReductionPerLevel: number; + SkillBoostPercent: number; + SkillPointsRate: SkillPointsRate; + EliteSlots: EliteSlots; +} +export interface SkillPointsRate { + Generator: Generator; + AirFilteringUnit: SkillPointRate; + WaterCollector: SkillPointRate; + SolarPower: SkillPointRate; +} +export interface SkillPointRate { + ResourceSpent: number; + PointsGained: number; +} +export interface EliteSlots { + Generator: EliteSlot; + AirFilteringUnit: EliteSlot; + WaterCollector: EliteSlot; + BitcoinFarm: EliteSlot; +} +export interface EliteSlot { + Slots: number; + Container: number; +} +export interface Crafting { + PointsPerCraftingCycle: number; + CraftingCycleHours: number; + PointsPerUniqueCraftCycle: number; + UniqueCraftsPerCycle: number; + CraftTimeReductionPerLevel: number; + ProductionTimeReductionPerLevel: number; + EliteExtraProductions: number; + CraftingPointsToInteligence: number; +} +export interface Metabolism { + HydrationRecoveryRate: number; + EnergyRecoveryRate: number; + IncreasePositiveEffectDurationRate: number; + DecreaseNegativeEffectDurationRate: number; + DecreasePoisonDurationRate: number; +} +export interface Immunity { + ImmunityMiscEffects: number; + ImmunityPoisonBuff: number; + ImmunityPainKiller: number; + HealthNegativeEffect: number; + StimulatorNegativeBuff: number; +} +export interface Endurance { + MovementAction: number; + SprintAction: number; + GainPerFatigueStack: number; +} +export interface Strength { + SprintActionMin: number; + SprintActionMax: number; + MovementActionMin: number; + MovementActionMax: number; + PushUpMin: number; + PushUpMax: number; + FistfightAction: number; + ThrowAction: number; +} +export interface Vitality { + DamageTakenAction: number; + HealthNegativeEffect: number; +} +export interface Health2 { + SkillProgress: number; +} +export interface StressResistance { + HealthNegativeEffect: number; + LowHPDuration: number; +} +export interface Throwing { + ThrowAction: number; +} +export interface RecoilControl { + RecoilAction: number; + RecoilBonusPerLevel: number; +} +export interface WeaponSkills { + WeaponReloadAction: number; + WeaponShotAction: number; + WeaponFixAction: number; + WeaponChamberAction: number; +} +export interface CovertMovement { + MovementAction: number; +} +export interface Search { + SearchAction: number; + FindAction: number; +} +export interface WeaponTreatment { + DurLossReducePerLevel: number; + SkillPointsPerRepair: number; + Filter: any[]; + WearAmountRepairGunsReducePerLevel: number; + WearChanceRepairGunsReduceEliteLevel: number; +} +export interface MagDrills { + RaidLoadedAmmoAction: number; + RaidUnloadedAmmoAction: number; + MagazineCheckAction: number; +} +export interface Perception { + OnlineAction: number; + UniqueLoot: number; +} +export interface Intellect { + ExamineAction: number; + SkillProgress: number; + RepairAction: number; + WearAmountReducePerLevel: number; + WearChanceReduceEliteLevel: number; + RepairPointsCostReduction: number; +} +export interface Attention { + ExamineWithInstruction: number; + FindActionFalse: number; + FindActionTrue: number; +} +export interface Charisma { + SkillProgressInt: number; + SkillProgressAtn: number; + SkillProgressPer: number; +} +export interface Memory { + AnySkillUp: number; + SkillProgress: number; +} +export interface Surgery { + SurgeryAction: number; + SkillProgress: number; +} +export interface AimDrills { + WeaponShotAction: number; +} +export interface TroubleShooting { + MalfRepairSpeedBonusPerLevel: number; + SkillPointsPerMalfFix: number; + EliteDurabilityChanceReduceMult: number; + EliteAmmoChanceReduceMult: number; + EliteMagChanceReduceMult: number; +} +export interface Aiming { + ProceduralIntensityByPose: xyz; + AimProceduralIntensity: number; + HeavyWeight: number; + LightWeight: number; + MaxTimeHeavy: number; + MinTimeHeavy: number; + MaxTimeLight: number; + MinTimeLight: number; + RecoilScaling: number; + RecoilDamping: number; + CameraSnapGlobalMult: number; + RecoilXIntensityByPose: xyz; + RecoilYIntensityByPose: xyz; + RecoilZIntensityByPose: xyz; + RecoilCrank: boolean; + RecoilHandDamping: number; + RecoilConvergenceMult: number; + RecoilVertBonus: number; + RecoilBackBonus: number; +} +export interface Malfunction { + AmmoMalfChanceMult: number; + MagazineMalfChanceMult: number; + MalfRepairHardSlideMult: number; + MalfRepairOneHandBrokenMult: number; + MalfRepairTwoHandsBrokenMult: number; + AllowMalfForBots: boolean; + ShowGlowAttemptsCount: number; + OutToIdleSpeedMultForPistol: number; + IdleToOutSpeedMultOnMalf: number; + TimeToQuickdrawPistol: number; + DurRangeToIgnoreMalfs: xyz; + DurFeedWt: number; + DurMisfireWt: number; + DurJamWt: number; + DurSoftSlideWt: number; + DurHardSlideMinWt: number; + DurHardSlideMaxWt: number; + AmmoMisfireWt: number; + AmmoFeedWt: number; + AmmoJamWt: number; + OverheatFeedWt: number; + OverheatJamWt: number; + OverheatSoftSlideWt: number; + OverheatHardSlideMinWt: number; + OverheatHardSlideMaxWt: number; +} +export interface Overheat { + MinOverheat: number; + MaxOverheat: number; + OverheatProblemsStart: number; + ModHeatFactor: number; + ModCoolFactor: number; + MinWearOnOverheat: number; + MaxWearOnOverheat: number; + MinWearOnMaxOverheat: number; + MaxWearOnMaxOverheat: number; + OverheatWearLimit: number; + MaxCOIIncreaseMult: number; + MinMalfChance: number; + MaxMalfChance: number; + DurReduceMinMult: number; + DurReduceMaxMult: number; + BarrelMoveRndDuration: number; + BarrelMoveMaxMult: number; + FireratePitchMult: number; + FirerateReduceMinMult: number; + FirerateReduceMaxMult: number; + FirerateOverheatBorder: number; + EnableSlideOnMaxOverheat: boolean; + StartSlideOverheat: number; + FixSlideOverheat: number; + AutoshotMinOverheat: number; + AutoshotChance: number; + AutoshotPossibilityDuration: number; + MaxOverheatCoolCoef: number; +} +export interface FenceSettings { + FenceId: string; + Levels: Record; + paidExitStandingNumerator: number; +} +export interface FenceLevel { + SavageCooldownModifier: number; + ScavCaseTimeModifier: number; + PaidExitCostModifier: number; + BotFollowChance: number; + ScavEquipmentSpawnChanceModifier: number; + PriceModifier: number; + HostileBosses: boolean; + HostileScavs: boolean; + ScavAttackSupport: boolean; + ExfiltrationPriceModifier: number; + AvailableExits: number; +} +export interface Inertia { + InertiaLimits: xyz; + InertiaLimitsStep: number; + ExitMovementStateSpeedThreshold: xyz; + WalkInertia: xyz; + FallThreshold: number; + SpeedLimitAfterFallMin: xyz; + SpeedLimitAfterFallMax: xyz; + SpeedLimitDurationMin: xyz; + SpeedLimitDurationMax: xyz; + SpeedInertiaAfterJump: xyz; + BaseJumpPenaltyDuration: number; + DurationPower: number; + BaseJumpPenalty: number; + PenaltyPower: number; + InertiaTiltCurveMin: xyz; + InertiaTiltCurveMax: xyz; + InertiaBackwardCoef: xyz; + TiltInertiaMaxSpeed: xyz; + TiltStartSideBackSpeed: xyz; + TiltMaxSideBackSpeed: xyz; + TiltAcceleration: xyz; + AverageRotationFrameSpan: number; + SprintSpeedInertiaCurveMin: xyz; + SprintSpeedInertiaCurveMax: xyz; + SprintBrakeInertia: xyz; + SprintTransitionMotionPreservation: xyz; + WeaponFlipSpeed: xyz; + PreSprintAccelerationLimits: xyz; + SprintAccelerationLimits: xyz; + SideTime: xyz; + DiagonalTime: xyz; + MinDirectionBlendTime: number; + MoveTime: number; + MinMovementAccelerationRangeRight: xyz; + MaxMovementAccelerationRangeRight: xyz; +} +export interface xyz { + x: number; + y: number; + z: number; +} +export interface Ballistic { + GlobalDamageDegradationCoefficient: number; +} +export interface RepairKitSettings { + armorClassDivisor: number; + durabilityPointCostArmor: number; + durabilityPointCostGuns: number; +} +export interface BotPreset { + UseThis: boolean; + Role: string; + BotDifficulty: string; + VisibleAngle: number; + VisibleDistance: number; + ScatteringPerMeter: number; + HearingSense: number; + SCATTERING_DIST_MODIF: number; + MAX_AIMING_UPGRADE_BY_TIME: number; + FIRST_CONTACT_ADD_SEC: number; + COEF_IF_MOVE: number; +} +export interface BotWeaponScattering { + Name: string; + PriorityScatter1meter: number; + PriorityScatter10meter: number; + PriorityScatter100meter: number; +} +export interface Preset { + _id: string; + _type: string; + _changeWeaponName: boolean; + _name: string; + _parent: string; + _items: Item[]; + _encyclopedia?: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/ILocation.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/ILocation.d.ts new file mode 100644 index 0000000..42fac06 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/ILocation.d.ts @@ -0,0 +1,6 @@ +import { ILocationBase } from "./ILocationBase"; +import { ILooseLoot } from "./ILooseLoot"; +export interface ILocation { + base: ILocationBase; + looseLoot: ILooseLoot; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/ILocationBase.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/ILocationBase.d.ts new file mode 100644 index 0000000..ad48d32 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/ILocationBase.d.ts @@ -0,0 +1,198 @@ +export interface ILocationBase { + AccessKeys: string[]; + AirdropParameters: AirdropParameter[]; + Area: number; + AveragePlayTime: number; + AveragePlayerLevel: number; + Banners: Banner[]; + BossLocationSpawn: BossLocationSpawn[]; + BotAssault: number; + BotEasy: number; + BotHard: number; + BotImpossible: number; + BotLocationModifier: BotLocationModifier; + BotMarksman: number; + BotMax: number; + BotMaxPlayer: number; + BotMaxTimePlayer: number; + BotNormal: number; + BotSpawnTimeOffMax: number; + BotSpawnTimeOffMin: number; + BotSpawnTimeOnMax: number; + BotSpawnTimeOnMin: number; + BotStart: number; + BotStop: number; + Description: string; + DisabledForScav: boolean; + DisabledScavExits: string; + Enabled: boolean; + GlobalLootChanceModifier: number; + IconX: number; + IconY: number; + Id: string; + Insurance: boolean; + IsSecret: boolean; + Locked: boolean; + Loot: any[]; + MaxBotPerZone: number; + MaxDistToFreePoint: number; + MaxPlayers: number; + MinDistToExitPoint: number; + MinDistToFreePoint: number; + MinMaxBots: MinMaxBot[]; + MinPlayers: number; + Name: string; + NewSpawn: boolean; + OcculsionCullingEnabled: boolean; + OldSpawn: boolean; + OpenZones: string; + Preview: Preview; + RequiredPlayerLevel: number; + Rules: string; + SafeLocation: boolean; + Scene: Scene; + SpawnPointParams: SpawnPointParam[]; + UnixDateTime: number; + _Id: string; + doors: any[]; + escape_time_limit: number; + exit_access_time: number; + exit_count: number; + exit_time: number; + exits: Exit[]; + filter_ex: string[]; + limits: ILimit[]; + matching_min_seconds: number; + maxItemCountInLocation: MaxItemCountInLocation[]; + sav_summon_seconds: number; + tmp_location_field_remove_me: number; + users_gather_seconds: number; + users_spawn_seconds_n: number; + users_spawn_seconds_n2: number; + users_summon_seconds: number; + waves: Wave[]; +} +export interface ILimit { + min: number; + max: number; + items: any[]; +} +export interface AirdropParameter { + AirdropPointDeactivateDistance: number; + MinPlayersCountToSpawnAirdrop: number; + PlaneAirdropChance: number; + PlaneAirdropCooldownMax: number; + PlaneAirdropCooldownMin: number; + PlaneAirdropEnd: number; + PlaneAirdropMax: number; + PlaneAirdropStartMax: number; + PlaneAirdropStartMin: number; + UnsuccessfulTryPenalty: number; +} +export interface Banner { + id: string; + pic: Pic; +} +export interface Pic { + path: string; + rcid: string; +} +export interface BossLocationSpawn { + BossChance: number; + BossDifficult: string; + BossEscortAmount: string; + BossEscortDifficult: string; + BossEscortType: string; + BossName: string; + BossPlayer: boolean; + BossZone: string; + Time: number; + TriggerId: string; + TriggerName: string; + Delay?: number; + Supports?: BossSupport[]; +} +export interface BossSupport { + BossEscortAmount: string; + BossEscortDifficult: string[]; + BossEscortType: string; +} +export interface BotLocationModifier { + AccuracySpeed: number; + DistToActivate: number; + DistToPersueAxemanCoef: number; + DistToSleep: number; + GainSight: number; + KhorovodChance: number; + MagnetPower: number; + MarksmanAccuratyCoef: number; + Scattering: number; + VisibleDistance: number; +} +export interface MinMaxBot { + WildSpawnType: string; + max: number; + min: number; +} +export interface Preview { + path: string; + rcid: string; +} +export interface Scene { + path: string; + rcid: string; +} +export interface SpawnPointParam { + BotZoneName: string; + Categories: string[]; + ColliderParams: ColliderParams; + DelayToCanSpawnSec: number; + Id: string; + Infiltration: string; + Position: xyz; + Rotation: number; + Sides: string[]; +} +export interface ColliderParams { + _parent: string; + _props: Props; +} +export interface Props { + Center: xyz; + Radius: number; +} +export interface xyz { + x: number; + y: number; + z: number; +} +export interface Exit { + Chance: number; + Count: number; + EntryPoints: string; + ExfiltrationTime: number; + ExfiltrationType: string; + Id: string; + MaxTime: number; + MinTime: number; + Name: string; + PassageRequirement: string; + PlayersCount: number; + RequirementTip: string; +} +export interface MaxItemCountInLocation { + TemplateId: string; + Value: number; +} +export interface Wave { + BotPreset: string; + BotSide: string; + SpawnPoints: string; + WildSpawnType: string; + isPlayers: boolean; + number: number; + slots_max: number; + slots_min: number; + time_max: number; + time_min: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/ILocationsSourceDestinationBase.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/ILocationsSourceDestinationBase.d.ts new file mode 100644 index 0000000..7f8d915 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/ILocationsSourceDestinationBase.d.ts @@ -0,0 +1,9 @@ +import { ILocations } from "../../spt/server/ILocations"; +export interface ILocationsGenerateAllResponse { + locations: ILocations; + paths: Path[]; +} +export interface Path { + Source: string; + Destination: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/ILooseLoot.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/ILooseLoot.d.ts new file mode 100644 index 0000000..14b795e --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/ILooseLoot.d.ts @@ -0,0 +1,45 @@ +export interface ILooseLoot { + spawnpointCount: SpawnpointCount; + spawnpointsForced: SpawnpointsForced[]; + spawnpoints: Spawnpoint[]; +} +export interface SpawnpointCount { + mean: number; + std: number; +} +export interface SpawnpointsForced { + locationId: string; + probability: number; + template: SpawnpointTemplate; +} +export interface SpawnpointTemplate { + Id: string; + IsStatic: boolean; + useGravity: boolean; + randomRotation: boolean; + Position: Xyz; + Rotation: Xyz; + IsGroupPosition: boolean; + GroupPositions: any[]; + Root: any; + Items: Item[]; +} +export interface Item { + _id: string; + _tpl?: string; +} +export interface Spawnpoint { + locationId: string; + probability: number; + template: SpawnpointTemplate; + itemDistribution: ItemDistribution[]; +} +export interface Xyz { + x: number; + y: number; + z: number; +} +export interface ItemDistribution { + tpl: string; + relativeProbability: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/IMetricsTableData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/IMetricsTableData.d.ts new file mode 100644 index 0000000..873ef82 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/IMetricsTableData.d.ts @@ -0,0 +1,7 @@ +export interface IMetricsTableData { + Keys: number[]; + NetProcessingBins: number[]; + RenderBins: number[]; + GameUpdateBins: number[]; + MemoryMeasureInterval: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/IPmcData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/IPmcData.d.ts new file mode 100644 index 0000000..adc2aa5 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/IPmcData.d.ts @@ -0,0 +1,341 @@ +import { IRagfairOffer } from "../ragfair/IRagfairOffer"; +import { IPmcDataRepeatableQuest } from "./tables/IRepeatableQuests"; +import { Item, Upd } from "./tables/IItem"; +import { HideoutAreas } from "../../enums/HideoutAreas"; +import { MemberCategory } from "../../enums/MemberCategory"; +export interface IPmcData { + _id: string; + aid: string; + savage: string; + Info: Info; + Customization: Customization; + Health: Health; + Inventory: Inventory; + Skills: Skills; + Stats: Stats; + Encyclopedia: Record; + ConditionCounters: ConditionCounters; + BackendCounters: Record; + InsuredItems: InsuredItem[]; + Hideout: Hideout; + Bonuses: Bonus[]; + Notes: Notes; + Quests: Quest[]; + TradersInfo: Record; + RagfairInfo: RagfairInfo; + WishList: string[]; + RepeatableQuests: IPmcDataRepeatableQuest[]; + CarExtractCounts: CarExtractCounts; + SurvivorClass: SurvivorClass; +} +export declare enum SurvivorClass { + Unknown = 0, + Neutralizer = 1, + Marauder = 2, + Paramedic = 3, + Survivor = 4 +} +export interface Info { + EntryPoint: string; + Nickname: string; + LowerNickname: string; + Side: string; + Voice: string; + Level: number; + Experience: number; + RegistrationDate: number; + GameVersion: string; + AccountType: number; + MemberCategory: MemberCategory; + lockedMoveCommands: boolean; + SavageLockTime: number; + LastTimePlayedAsSavage: number; + Settings: Settings; + NicknameChangeDate: number; + IsStreamerModeAvailable: boolean; + Bans: IBan[]; + BannedState: boolean; + BannedUntil: number; +} +export interface Settings { + Role: string; + BotDifficulty: string; + Experience: number; + StandingForKill: number; + AggressorBonus: number; +} +export interface IBan { + type: BanType; + dateTime: number; +} +export declare enum BanType { + Chat = 0, + RagFair = 1, + Voip = 2, + Trading = 3, + Online = 4, + Friends = 5, + ChangeNickname = 6 +} +export interface Notes { + Notes: Note[]; +} +export interface Note { + Time: number; + Text: string; +} +export interface Customization { + Head: string; + Body: string; + Feet: string; + Hands: string; +} +export interface Health { + Hydration: CurrentMax; + Energy: CurrentMax; + Temperature: CurrentMax; + BodyParts: BodyPartsHealth; + UpdateTime: number; +} +export interface BodyPartsHealth { + Head: BodyPartHealth; + Chest: BodyPartHealth; + Stomach: BodyPartHealth; + LeftArm: BodyPartHealth; + RightArm: BodyPartHealth; + LeftLeg: BodyPartHealth; + RightLeg: BodyPartHealth; +} +export interface BodyPartHealth { + Health: CurrentMax; + Effects?: Record; +} +export interface CurrentMax { + Current: number; + Maximum: number; +} +export interface Inventory { + items: Item[]; + equipment: string; + stash: string; + sortingTable: string; + questRaidItems: string; + questStashItems: string; + fastPanel: FastPanel; +} +export interface FastPanel { +} +export interface Skills { + Common: Common[]; + Mastering: Mastering[]; + Bonuses?: any[]; + Points: number; +} +export interface Common { + Id: string; + Progress: number; + PointsEarnedDuringSession: number; + LastAccess: number; +} +export interface Mastering { + Id: string; + Progress: number; +} +export interface Stats { + CarriedQuestItems: string[]; + Victims: Victim[]; + TotalSessionExperience: number; + LastSessionDate: number; + SessionCounters: SessionCounters; + OverallCounters: OverallCounters; + SessionExperienceMult?: number; + ExperienceBonusMult?: number; + Aggressor?: Aggressor; + DroppedItems?: IDroppedItem[]; + FoundInRaidItems?: FoundInRaidItem[]; + DamageHistory?: DamageHistory; + DeathCause?: DeathCause; + LastPlayerState?: LastPlayerState; + TotalInGameTime: number; + SurvivorClass?: string; +} +export interface IDroppedItem { + QuestId: string; + ItemId: string; + ZoneId: string; +} +export interface FoundInRaidItem { + QuestId: string; + ItemId: string; +} +export interface Victim { + AccountId: string; + ProfileId: string; + Name: string; + Side: string; + BodyPart: string; + Time: string; + Distance: number; + Level: number; + Weapon: string; + Role: string; +} +export interface SessionCounters { + Items: CounterKeyValue[]; +} +export interface OverallCounters { + Items: CounterKeyValue[]; +} +export interface CounterKeyValue { + Key: string[]; + Value: number; +} +export interface Aggressor { + AccountId: string; + ProfileId: string; + MainProfileNickname: string; + Name: string; + Side: string; + BodyPart: string; + HeadSegment: string; + WeaponName: string; + Category: string; +} +export interface DamageHistory { + LethalDamagePart: string; + LethalDamage: LethalDamage; + BodyParts: BodyPartsDamageHistory; +} +export interface LethalDamage { + Amount: number; + Type: string; + SourceId: string; + OverDamageFrom: string; + Blunt: boolean; + ImpactsCount: number; +} +export interface BodyPartsDamageHistory { + Head: DamageStats[]; + Chest: DamageStats[]; + Stomach: DamageStats[]; + LeftArm: DamageStats[]; + RightArm: DamageStats[]; + LeftLeg: DamageStats[]; + RightLeg: DamageStats[]; + Common: DamageStats[]; +} +export interface DamageStats { + Amount: number; + Type: string; + SourceId: string; + OverDamageFrom: string; + Blunt: boolean; + ImpactsCount: number; +} +export interface DeathCause { + DamageType: string; + Side: string; + Role: string; + WeaponId: string; +} +export interface LastPlayerState { + Info: LastPlayerStateInfo; + Customization: Record; + Equipment: any; +} +export interface LastPlayerStateInfo { + Nickname: string; + Side: string; + Level: number; + MemberCategory: string; +} +export interface ConditionCounters { + Counters: Counter[]; +} +export interface Counter { + id: string; + value: number; + qid: string; +} +export interface BackendCounter { + id: string; + qid?: string; + value: number; +} +export interface InsuredItem { + tid: string; + itemId: string; +} +export interface Hideout { + Production: Record; + Areas: HideoutArea[]; +} +export interface Productive { + Products: Product[]; + Progress?: number; + inProgress?: boolean; + StartTimestamp?: number; +} +export interface Product { + _id: string; + _tpl: string; + upd?: Upd; +} +export interface ScavCase extends Productive { +} +export interface Production extends Productive { + RecipeId: string; + SkipTime: number; + ProductionTime: number; +} +export interface HideoutArea { + type: HideoutAreas; + level: number; + active: boolean; + passiveBonusesEnabled: boolean; + completeTime: number; + constructing: boolean; + slots: HideoutSlot[]; + lastRecipe: string; +} +export interface HideoutSlot { + item: HideoutItem[]; +} +export interface HideoutItem { + _id: string; + _tpl: string; + upd?: Upd; +} +export interface Bonus { + type: string; + templateId?: string; + passive?: boolean; + production?: boolean; + visible?: boolean; + value?: number; + icon?: string; +} +export interface Quest { + qid: string; + startTime: number; + status: string; + statusTimers?: StatusTimer; + completedConditions?: string[]; +} +export interface StatusTimer { + AvailableForStart?: number; +} +export interface TraderInfo { + loyaltyLevel: number; + salesSum: number; + standing: number; + nextResupply: number; + unlocked: boolean; +} +export interface RagfairInfo { + rating: number; + isRatingGrowing: boolean; + offers: IRagfairOffer[]; +} +export interface CarExtractCounts { +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/request/IBaseInteractionRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/request/IBaseInteractionRequestData.d.ts new file mode 100644 index 0000000..7303275 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/request/IBaseInteractionRequestData.d.ts @@ -0,0 +1,9 @@ +export interface IBaseInteractionRequestData { + Action: string; + fromOwner?: OwnerInfo; + toOwner?: OwnerInfo; +} +export interface OwnerInfo { + id: string; + type: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IBotBase.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IBotBase.d.ts new file mode 100644 index 0000000..677fd49 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IBotBase.d.ts @@ -0,0 +1,101 @@ +import { BackendCounter, Bonus } from "../IPmcData"; +import { Item } from "./IItem"; +export interface IBotBase { + _id: string; + aid: string; + savage: any; + Info: Info; + Customization: Customization; + Health: Health; + Inventory: Inventory; + Skills: Skills; + Stats: Stats; + Encyclopedia: any; + ConditionCounters: ConditionCounters; + BackendCounters: Record; + InsuredItems: any[]; + Hideout: Hideout; + Bonuses: Bonus[]; +} +export interface Info { + Nickname: string; + LowerNickname: string; + Side: string; + Voice: string; + Level: number; + Experience: number; + RegistrationDate: number; + GameVersion: string; + AccountType: number; + MemberCategory: number; + lockedMoveCommands: boolean; + SavageLockTime: number; + LastTimePlayedAsSavage: number; + Settings: Settings; + NicknameChangeDate: number; + NeedWipeOptions: any[]; + lastCompletedWipe: any; + BannedState: boolean; + BannedUntil: number; + IsStreamerModeAvailable: boolean; +} +export interface Settings { + Role: string; + BotDifficulty: string; + Experience: number; + StandingForKill: number; + AggressorBonus: number; +} +export interface Customization { + Head: string; + Body: string; + Feet: string; + Hands: string; +} +export interface Health { +} +export interface Inventory { + items: Item[]; + equipment: string; + stash: string; + sortingTable: string; + questRaidItems: string; + questStashItems: string; + fastPanel: FastPanel; +} +export interface FastPanel { +} +export interface Skills { + Common: any[]; + Mastering: any[]; + Points: number; +} +export interface Stats { + SessionCounters: SessionCounters; + OverallCounters: OverallCounters; +} +export interface SessionCounters { + Items: any[]; +} +export interface OverallCounters { + Items: any[]; +} +export interface ConditionCounters { + Counters: any[]; +} +export interface Hideout { + Production: Production; + Areas: Area[]; +} +export interface Production { +} +export interface Area { + type: number; + level: number; + active: boolean; + passiveBonusesEnabled: boolean; + completeTime: number; + constructing: boolean; + slots: any[]; + lastRecipe: any; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IBotCore.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IBotCore.d.ts new file mode 100644 index 0000000..16a782d --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IBotCore.d.ts @@ -0,0 +1,133 @@ +export interface IBotCore { + SAVAGE_KILL_DIST: number; + SOUND_DOOR_BREACH_METERS: number; + SOUND_DOOR_OPEN_METERS: number; + STEP_NOISE_DELTA: number; + JUMP_NOISE_DELTA: number; + GUNSHOT_SPREAD: number; + GUNSHOT_SPREAD_SILENCE: number; + BASE_WALK_SPEREAD2: number; + MOVE_SPEED_COEF_MAX: number; + SPEED_SERV_SOUND_COEF_A: number; + SPEED_SERV_SOUND_COEF_B: number; + G: number; + STAY_COEF: number; + SIT_COEF: number; + LAY_COEF: number; + MAX_ITERATIONS: number; + START_DIST_TO_COV: number; + MAX_DIST_TO_COV: number; + STAY_HEIGHT: number; + CLOSE_POINTS: number; + COUNT_TURNS: number; + SIMPLE_POINT_LIFE_TIME_SEC: number; + DANGER_POINT_LIFE_TIME_SEC: number; + DANGER_POWER: number; + COVER_DIST_CLOSE: number; + GOOD_DIST_TO_POINT: number; + COVER_TOOFAR_FROM_BOSS: number; + COVER_TOOFAR_FROM_BOSS_SQRT: number; + MAX_Y_DIFF_TO_PROTECT: number; + FLARE_POWER: number; + MOVE_COEF: number; + PRONE_POSE: number; + LOWER_POSE: number; + MAX_POSE: number; + FLARE_TIME: number; + MAX_REQUESTS__PER_GROUP: number; + UPDATE_GOAL_TIMER_SEC: number; + DIST_NOT_TO_GROUP: number; + DIST_NOT_TO_GROUP_SQR: number; + LAST_SEEN_POS_LIFETIME: number; + DELTA_GRENADE_START_TIME: number; + DELTA_GRENADE_END_TIME: number; + DELTA_GRENADE_RUN_DIST: number; + DELTA_GRENADE_RUN_DIST_SQRT: number; + PATROL_MIN_LIGHT_DIST: number; + HOLD_MIN_LIGHT_DIST: number; + STANDART_BOT_PAUSE_DOOR: number; + ARMOR_CLASS_COEF: number; + SHOTGUN_POWER: number; + RIFLE_POWER: number; + PISTOL_POWER: number; + SMG_POWER: number; + SNIPE_POWER: number; + GESTUS_PERIOD_SEC: number; + GESTUS_AIMING_DELAY: number; + GESTUS_REQUEST_LIFETIME: number; + GESTUS_FIRST_STAGE_MAX_TIME: number; + GESTUS_SECOND_STAGE_MAX_TIME: number; + GESTUS_MAX_ANSWERS: number; + GESTUS_FUCK_TO_SHOOT: number; + GESTUS_DIST_ANSWERS: number; + GESTUS_DIST_ANSWERS_SQRT: number; + GESTUS_ANYWAY_CHANCE: number; + TALK_DELAY: number; + CAN_SHOOT_TO_HEAD: boolean; + CAN_TILT: boolean; + TILT_CHANCE: number; + MIN_BLOCK_DIST: number; + MIN_BLOCK_TIME: number; + COVER_SECONDS_AFTER_LOSE_VISION: number; + MIN_ARG_COEF: number; + MAX_ARG_COEF: number; + DEAD_AGR_DIST: number; + MAX_DANGER_CARE_DIST_SQRT: number; + MAX_DANGER_CARE_DIST: number; + MIN_MAX_PERSON_SEARCH: number; + PERCENT_PERSON_SEARCH: number; + LOOK_ANYSIDE_BY_WALL_SEC_OF_ENEMY: number; + CLOSE_TO_WALL_ROTATE_BY_WALL_SQRT: number; + SHOOT_TO_CHANGE_RND_PART_MIN: number; + SHOOT_TO_CHANGE_RND_PART_MAX: number; + SHOOT_TO_CHANGE_RND_PART_DELTA: number; + FORMUL_COEF_DELTA_DIST: number; + FORMUL_COEF_DELTA_SHOOT: number; + FORMUL_COEF_DELTA_FRIEND_COVER: number; + SUSPETION_POINT_DIST_CHECK: number; + MAX_BASE_REQUESTS_PER_PLAYER: number; + MAX_HOLD_REQUESTS_PER_PLAYER: number; + MAX_GO_TO_REQUESTS_PER_PLAYER: number; + MAX_COME_WITH_ME_REQUESTS_PER_PLAYER: number; + CORE_POINT_MAX_VALUE: number; + CORE_POINTS_MAX: number; + CORE_POINTS_MIN: number; + BORN_POISTS_FREE_ONLY_FAREST_BOT: boolean; + BORN_POINSTS_FREE_ONLY_FAREST_PLAYER: boolean; + SCAV_GROUPS_TOGETHER: boolean; + LAY_DOWN_ANG_SHOOT: number; + HOLD_REQUEST_TIME_SEC: number; + TRIGGERS_DOWN_TO_RUN_WHEN_MOVE: number; + MIN_DIST_TO_RUN_WHILE_ATTACK_MOVING: number; + MIN_DIST_TO_RUN_WHILE_ATTACK_MOVING_OTHER_ENEMIS: number; + MIN_DIST_TO_STOP_RUN: number; + JUMP_SPREAD_DIST: number; + LOOK_TIMES_TO_KILL: number; + COME_INSIDE_TIMES: number; + TOTAL_TIME_KILL: number; + TOTAL_TIME_KILL_AFTER_WARN: number; + MOVING_AIM_COEF: number; + VERTICAL_DIST_TO_IGNORE_SOUND: number; + DEFENCE_LEVEL_SHIFT: number; + MIN_DIST_CLOSE_DEF: number; + USE_ID_PRIOR_WHO_GO: boolean; + SMOKE_GRENADE_RADIUS_COEF: number; + GRENADE_PRECISION: number; + MAX_WARNS_BEFORE_KILL: number; + CARE_ENEMY_ONLY_TIME: number; + MIDDLE_POINT_COEF: number; + MAIN_TACTIC_ONLY_ATTACK: boolean; + LAST_DAMAGE_ACTIVE: number; + SHALL_DIE_IF_NOT_INITED: boolean; + CHECK_BOT_INIT_TIME_SEC: number; + WEAPON_ROOT_Y_OFFSET: number; + DELTA_SUPRESS_DISTANCE_SQRT: number; + DELTA_SUPRESS_DISTANCE: number; + WAVE_COEF_LOW: number; + WAVE_COEF_MID: number; + WAVE_COEF_HIGH: number; + WAVE_COEF_HORDE: number; + WAVE_ONLY_AS_ONLINE: boolean; + LOCAL_BOTS_COUNT: number; + AXE_MAN_KILLS_END: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IBotType.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IBotType.d.ts new file mode 100644 index 0000000..01be0be --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IBotType.d.ts @@ -0,0 +1,176 @@ +export interface IBotType { + appearance: Appearance; + chances: Chances; + difficulty: Difficulties; + experience: Experience; + firstName: string[]; + generation: Generation; + health: Health; + inventory: Inventory; + lastName: string[]; + skills: Skills; +} +export interface Appearance { + body: string[]; + feet: string[]; + hands: string[]; + head: string[]; + voice: string[]; +} +export interface Chances { + equipment: EquipmentChances; + mods: ModsChances; +} +export interface EquipmentChances { + ArmBand: number; + ArmorVest: number; + Backpack: number; + Earpiece: number; + Eyewear: number; + FaceCover: number; + FirstPrimaryWeapon: number; + Headwear: number; + Holster: number; + Pockets: number; + Scabbard: number; + SecondPrimaryWeapon: number; + SecuredContainer: number; + TacticalVest: number; +} +export interface ModsChances { + mod_charge: number; + mod_equipment: number; + mod_equipment_000: number; + mod_equipment_001: number; + mod_equipment_002: number; + mod_flashlight: number; + mod_foregrip: number; + mod_launcher: number; + mod_magazine: number; + mod_mount: number; + mod_mount_000: number; + mod_mount_001: number; + mod_muzzle: number; + mod_nvg: number; + mod_pistol_grip: number; + mod_reciever: number; + mod_scope: number; + mod_sight_front: number; + mod_sight_rear: number; + mod_stock: number; + mod_stock_000: number; + mod_stock_akms: number; + mod_tactical: number; + mod_tactical_000: number; + mod_tactical_001: number; + mod_tactical_002: number; + mod_tactical_003: number; +} +export interface Difficulties { + easy: Difficulty; + normal: Difficulty; + hard: Difficulty; + impossible: Difficulty; +} +export interface Difficulty { + Aiming: Record; + Boss: Record; + Change: Record; + Core: Record; + Cover: Record; + Grenade: Record; + Hearing: Record; + Lay: Record; + Look: Record; + Mind: Record; + Move: Record; + Patrol: Record; + Scattering: Record; + Shoot: Record; +} +export interface Experience { + aggressorBonus: number; + level: MinMax; + reward: MinMax; + standingForKill: number; +} +export interface Generation { + items: ItemMinMax; +} +export interface ItemMinMax { + grenades: MinMax; + healing: MinMax; + drugs: MinMax; + stims: MinMax; + looseLoot: MinMax; + magazines: MinMax; + specialItems: MinMax; +} +export interface Health { + BodyParts: BodyPart[]; + Energy: MinMax; + Hydration: MinMax; + Temperature: MinMax; +} +export interface BodyPart { + Chest: MinMax; + Head: MinMax; + LeftArm: MinMax; + LeftLeg: MinMax; + RightArm: MinMax; + RightLeg: MinMax; + Stomach: MinMax; +} +export interface MinMax { + max: number; + min: number; +} +export interface Inventory { + equipment: Equipment; + items: Items; + mods: Mods; +} +export interface Equipment { + ArmBand: Record; + ArmorVest: Record; + Backpack: Record; + Earpiece: Record; + Eyewear: Record; + FaceCover: Record; + FirstPrimaryWeapon: Record; + Headwear: Record; + Holster: Record; + Pockets: Record; + Scabbard: Record; + SecondPrimaryWeapon: Record; + SecuredContainer: Record; + TacticalVest: Record; +} +export interface Items { + Backpack: string[]; + Pockets: string[]; + SecuredContainer: string[]; + SpecialLoot: string[]; + TacticalVest: string[]; +} +export declare type Mods = Record>; +export interface Skills { + Common: Common[]; + Bonuses?: any; + Mastering: Mastering[]; + Points: number; +} +export interface Mastering { + Id: string; + Progress: number; + max?: number; + min?: number; +} +export interface Common { + Id: string; + Progress: number; + PointsEarnedDuringSession?: number; + LastAccess?: number; + max?: number; + min?: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ICustomizationItem.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ICustomizationItem.d.ts new file mode 100644 index 0000000..8bfeece --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ICustomizationItem.d.ts @@ -0,0 +1,33 @@ +export interface ICustomizationItem { + _id: string; + _name: string; + _parent: string; + _type: string; + _props: Props; + _proto: string; +} +export interface Props { + Name: string; + ShortName: string; + Description: string; + Side: string[]; + BodyPart: string; + AvailableAsDefault?: boolean; + Body: string; + Hands: string; + Feet: string; + Prefab: Prefab; + WatchPrefab: Prefab; + IntegratedArmorVest: boolean; + WatchPosition: Xyz; + WatchRotation: Xyz; +} +export interface Prefab { + path: string; + rcid: string; +} +export interface Xyz { + x: number; + y: number; + z: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IHandbookBase.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IHandbookBase.d.ts new file mode 100644 index 0000000..7d7db07 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IHandbookBase.d.ts @@ -0,0 +1,16 @@ +export interface IHandbookBase { + Categories: Category[]; + Items: HandbookItem[]; +} +export interface Category { + Id: string; + ParentId?: string; + Icon: string; + Color: string; + Order: string; +} +export interface HandbookItem { + Id: string; + ParentId: string; + Price: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IItem.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IItem.d.ts new file mode 100644 index 0000000..2dd2c03 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IItem.d.ts @@ -0,0 +1,108 @@ +export interface Item { + _id: string; + _tpl: string; + parentId?: string; + slotId?: string; + location?: Location | number; + upd?: Upd; +} +export interface Upd { + OriginalStackObjectsCount?: number; + Togglable?: Togglable; + Map?: Map; + Tag?: Tag; + sptPresetId?: string; + FaceShield?: FaceShield; + StackObjectsCount?: number; + UnlimitedCount?: boolean; + Repairable?: Repairable; + FireMode?: FireMode; + SpawnedInSession?: boolean; + Light?: Light; + Key?: Key; + Resource?: Resource; + Sight?: Sight; + MedKit?: MedKit; + FoodDrink?: FoodDrink; + Dogtag?: Dogtag; + BuyRestrictionMax?: number; + BuyRestrictionCurrent?: number; + Foldable?: Foldable; + SideEffect?: SideEffect; + RepairKit?: RepairKit; +} +export interface Togglable { + On: boolean; +} +export interface Map { + Markers: MapMarker[]; +} +export interface MapMarker { + X: number; + Y: number; +} +export interface Tag { + Color: number; + Name: string; +} +export interface FaceShield { + Hits: number; +} +export interface Repairable { + Durability: number; + MaxDurability: number; +} +export interface MedKit { + HpResource: number; +} +export interface Sight { + ScopesCurrentCalibPointIndexes: number[]; + ScopesSelectedModes: number[]; + SelectedScope: number; +} +export interface Foldable { + Folded: boolean; +} +export interface FireMode { + FireMode: string; +} +export interface FoodDrink { + HpPercent: number; +} +export interface Key { + NumberOfUsages: number; +} +export interface Resource { + Value: number; + UnitsConsumed: number; +} +export interface Light { + IsActive: boolean; + SelectedMode: number; +} +export interface Dogtag { + AccountId: string; + ProfileId: string; + Nickname: string; + Side: string; + Level: number; + Time: string; + Status: string; + KillerAccountId: string; + KillerProfileId: string; + KillerName: string; + WeaponName: string; +} +export interface Location { + x: number; + y: number; + r: string | number; + isSearched?: boolean; + rotation?: string; +} +export interface SideEffect { + Value: number; +} +export interface RepairKit { + Resource: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ILocationsBase.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ILocationsBase.d.ts new file mode 100644 index 0000000..2c96af3 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ILocationsBase.d.ts @@ -0,0 +1,10 @@ +export interface ILocationsBase { + locations: Locations; + paths: Path[]; +} +export interface Locations { +} +export interface Path { + Source: string; + Destination: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ILootBase.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ILootBase.d.ts new file mode 100644 index 0000000..e4baac5 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ILootBase.d.ts @@ -0,0 +1,64 @@ +import { Item } from "./IItem"; +export interface ILootBase { + staticAmmo: Record; + staticContainers: Record; + staticLoot: Record; +} +export interface IStaticAmmoDetails { + tpl: string; + relativeProbability: number; +} +export interface IStaticContainerDetails { + staticWeapons: IStaticWeaponProps[]; + staticContainers: IStaticContainerProps[]; + staticForced: IStaticForcedProps[]; +} +export interface IStaticWeaponProps { + Id: string; + IsStatic: boolean; + useGravity: boolean; + randomRotation: boolean; + Position: Xyz; + Rotation: Xyz; + IsGroupPosition: boolean; + GroupPositions: any[]; + Root: string; + Items: Item[]; +} +export interface IStaticContainerProps { + Id: string; + IsStatic: boolean; + useGravity: boolean; + randomRotation: boolean; + Position: Xyz; + Rotation: Xyz; + IsGroupPosition: boolean; + GroupPositions: any[]; + Root: any; + Items: StaticItem[]; +} +export interface Xyz { + x: number; + y: number; + z: number; +} +export interface StaticItem { + _id: any; + _tpl: string; +} +export interface IStaticForcedProps { + containerId: string; + itemTpl: string; +} +export interface IStaticLootDetails { + itemcountDistribution: ItemCountDistribution[]; + itemDistribution: ItemDistribution[]; +} +export interface ItemCountDistribution { + count: number; + relativeProbability: number; +} +export interface ItemDistribution { + tpl: string; + relativeProbability: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IMatch.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IMatch.d.ts new file mode 100644 index 0000000..c30cb48 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IMatch.d.ts @@ -0,0 +1,10 @@ +export interface IMatch { + metrics: Metrics; +} +export interface Metrics { + Keys: number[]; + NetProcessingBins: number[]; + RenderBins: number[]; + GameUpdateBins: number[]; + MemoryMeasureInterval: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IQuest.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IQuest.d.ts new file mode 100644 index 0000000..e1fc888 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IQuest.d.ts @@ -0,0 +1,110 @@ +import { Item } from "./IItem"; +export interface IQuest { + QuestName: string; + _id: string; + canShowNotificationsInGame: boolean; + conditions: Conditions; + description: string; + failMessageText: string; + name: string; + note: string; + traderId: string; + location: string; + image: string; + type: string; + isKey: boolean; + restartable: boolean; + instantComplete: boolean; + secretQuest: boolean; + startedMessageText: string; + successMessageText: string; + templateId: string; + rewards: Rewards; + status: string; + KeyQuest: boolean; + changeQuestMessageText: string; +} +export interface Conditions { + Started: AvailableForConditions[]; + AvailableForFinish: AvailableForConditions[]; + AvailableForStart: AvailableForConditions[]; + Success: AvailableForConditions[]; + Fail: AvailableForConditions[]; +} +export interface AvailableForConditions { + _parent: string; + _props: AvailableForProps; + dynamicLocale: boolean; +} +export interface AvailableForProps { + id: string; + index: number; + parentId: string; + dynamicLocale: boolean; + value?: number; + compareMethod?: string; + visibilityConditions?: VisibilityCondition[]; + target?: string | string[]; + status?: number[]; + onlyFoundInRaid?: boolean; + oneSessionOnly?: boolean; + doNotResetIfCounterCompleted?: boolean; + dogtagLevel?: number; + maxDurability?: number; + minDurability?: number; + counter?: AvailableForCounter; + plantTime?: number; + zoneId?: string; + type?: boolean; +} +export interface AvailableForCounter { + id: string; + conditions: CounterCondition[]; +} +export interface CounterCondition { + _parent: string; + _props: CounterProps; +} +export interface CounterProps { + id: string; + target: string[] | string; + compareMethod?: string; + value?: string; + weapon?: string[]; + equipmentInclusive?: string[][]; + weaponModsInclusive?: string[][]; + status?: string[]; + bodyPart?: string[]; + daytime?: DaytimeCounter; +} +export interface DaytimeCounter { + from: number; + to: number; +} +export interface VisibilityCondition { + id: string; + value: number; + dynamicLocale: boolean; + oneSessionOnly: boolean; +} +export interface Rewards { + AvailableForStart: Reward[]; + AvailableForFinish: Reward[]; + Started: Reward[]; + Success: Reward[]; + Fail: Reward[]; + FailRestartable: Reward[]; + Expired: Reward[]; +} +export interface Reward { + value?: string; + id: string; + type: string; + index: number; + target?: string; + items?: Item[]; + loyaltyLevel?: number; + traderId?: string; + unknown?: boolean; + findInRaid?: boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IRepeatableQuests.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IRepeatableQuests.d.ts new file mode 100644 index 0000000..e23ec73 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/IRepeatableQuests.d.ts @@ -0,0 +1,219 @@ +import { Item } from "./IItem"; +export interface IReward { + index: number; + type: string; + value: number; + target?: string; + items?: Item[]; +} +export interface IRepeatableQuestDatabase { + templates: ITemplates; + rewards: IRewardOptions; + data: IOptions; + samples: ISampleQuests[]; +} +export interface ITemplates { + Elimination: IRepeatableQuest; + Completion: IRepeatableQuest; + Exploration: IRepeatableQuest; +} +export interface IPmcDataRepeatableQuest { + id?: string; + name: string; + activeQuests: IRepeatableQuest[]; + inactiveQuests: IRepeatableQuest[]; + endTime: number; + changeRequirement: TChangeRequirementRecord; +} +export declare type TChangeRequirementRecord = Record; +export interface IChangeRequirement { + changeCost: IChangeCost[]; + changeStandingCost: number; +} +export interface IChangeCost { + templateId: string; + count: number; +} +export interface IRepeatableQuest { + _id: any; + traderId: string; + location: any; + image: string; + type: string; + isKey: boolean; + restartable: boolean; + instantComplete: boolean; + secretQuest: boolean; + canShowNotificationsInGame: boolean; + rewards: IRewards; + conditions: IConditions; + name: string; + note: string; + description: string; + successMessageText: string; + failMessageText: string; + startedMessageText: string; + changeQuestMessageText: string; + templateId: string; + changeCost: IChangeCost[]; + changeStandingCost: number; +} +export interface IRewards { + Started: IReward[]; + Success: IReward[]; + Fail: IReward[]; +} +export interface IConditions { + AvailableForStart: any[]; + AvailableForFinish: IAvailableFor[]; + Fail: any[]; +} +export interface IAvailableFor { + _props: IAvailableForProps; + _parent: string; + dynamicLocale: boolean; +} +export interface IAvailableForProps { + id: string; + parentId: string; + dynamicLocale: boolean; + index: number; + visibilityConditions: IVisibilityCondition[]; + value: number; +} +export interface IVisibilityCondition { + id: string; + oneSessionOnly: boolean; + value: number; + index: number; + dynamicLocale: boolean; +} +export interface IAvailableForPropsCounter extends IAvailableForProps { + type: string; + oneSessionOnly: boolean; + doNotResetIfCounterCompleted: boolean; + counter: ICounter; +} +export interface ICounter { + id: string; + conditions: ICondition[]; +} +export interface ICondition { + _props: IConditionProps; + _parent: string; +} +export interface IConditionProps { + id: string; + dynamicLocale: boolean; +} +export interface IElimination extends IRepeatableQuest { + conditions: IEliminationConditions; +} +export interface IEliminationConditions extends IConditions { + AvailableForFinish: IEliminationAvailableFor[]; +} +export interface IEliminationAvailableFor extends IAvailableFor { + _props: IEliminationAvailableForProps; +} +export interface IEliminationAvailableForProps extends IAvailableForPropsCounter { + counter: IEliminationCounter; +} +export interface IEliminationCounter extends ICounter { + conditions: IEliminationCondition[]; +} +export interface IEliminationCondition extends ICondition { + _props: ILocationConditionProps | IKillConditionProps; +} +export interface IExploration extends IRepeatableQuest { + conditions: IExplorationConditions; +} +export interface IExplorationConditions extends IConditions { + AvailableForFinish: IExplorationAvailableFor[]; +} +export interface IExplorationAvailableFor extends IAvailableFor { + _props: IExplorationAvailableForProps; +} +export interface IExplorationAvailableForProps extends IAvailableForPropsCounter { + counter: IExplorationCounter; +} +export interface IExplorationCounter extends ICounter { + conditions: IExplorationCondition[]; +} +export interface IExplorationCondition extends ICondition { + _props: ILocationConditionProps | IExitStatusConditionProps | IExitNameConditionProps; +} +export interface ICompletion extends IRepeatableQuest { + conditions: ICompletionConditions; +} +export interface ICompletionConditions extends IConditions { + AvailableForFinish: ICompletionAvailableFor[]; +} +export interface ICompletionAvailableFor extends IAvailableFor { + _props: ICompletionAvailableForProps; +} +export interface ICompletionAvailableForProps extends IAvailableForProps { + target: string[]; + minDurability: number; + maxDurability: number; + dogtagLevel: number; + onlyFoundInRaid: boolean; +} +export interface ILocationConditionProps extends IConditionProps { + target: string[]; +} +export interface IKillConditionProps extends IConditionProps { + target: string; + value: number; + savageRole?: string[]; + bodyPart?: string[]; + distance?: IDistanceCheck; +} +export interface IDistanceCheck { + compareMethod: string; + value: number; +} +export interface IExitStatusConditionProps extends IConditionProps { + status: string[]; +} +export interface IExitNameConditionProps extends IConditionProps { + exitName: string; +} +export interface IRewardOptions { + itemsBlacklist: string[]; +} +export interface IOptions { + Completion: ICompletionFilter; +} +export interface ICompletionFilter { + itemsBlacklist: ItemsBlacklist[]; + itemsWhitelist: ItemsWhitelist[]; +} +export interface ItemsBlacklist { + minPlayerLevel: number; + itemIds: string[]; +} +export interface ItemsWhitelist { + minPlayerLevel: number; + itemIds: string[]; +} +export interface ISampleQuests { + _id: string; + traderId: string; + location: string; + image: string; + type: string; + isKey: boolean; + restartable: boolean; + instantComplete: boolean; + secretQuest: boolean; + canShowNotificationsInGame: boolean; + rewards: IRewards; + conditions: IConditions; + name: string; + note: string; + description: string; + successMessageText: string; + failMessageText: string; + startedMessageText: string; + templateId: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ITemplateItem.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ITemplateItem.d.ts new file mode 100644 index 0000000..934ea7d --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ITemplateItem.d.ts @@ -0,0 +1,451 @@ +export interface ITemplateItem { + _id: string; + _name: string; + _parent: string; + _type: string; + _props: Props; + _proto: string; +} +export interface Props { + Name?: string; + ShortName?: string; + Description?: string; + Weight?: number; + BackgroundColor?: string; + Width?: number; + Height?: number; + StackMaxSize?: number; + Rarity?: string; + SpawnChance?: number; + CreditsPrice?: number; + ItemSound?: string; + Prefab?: Prefab; + UsePrefab?: Prefab; + StackObjectsCount?: number; + NotShownInSlot?: boolean; + ExaminedByDefault?: boolean; + ExamineTime?: number; + IsUndiscardable?: boolean; + IsUnsaleable?: boolean; + IsUnbuyable?: boolean; + IsUngivable?: boolean; + IsLockedafterEquip?: boolean; + QuestItem?: boolean; + LootExperience?: number; + ExamineExperience?: number; + HideEntrails?: boolean; + RepairCost?: number; + RepairSpeed?: number; + ExtraSizeLeft?: number; + ExtraSizeRight?: number; + ExtraSizeUp?: number; + ExtraSizeDown?: number; + ExtraSizeForceAdd?: boolean; + MergesWithChildren?: boolean; + CanSellOnRagfair?: boolean; + CanRequireOnRagfair?: boolean; + ConflictingItems?: string[]; + Unlootable?: boolean; + UnlootableFromSlot?: string; + UnlootableFromSide?: string[]; + AnimationVariantsNumber?: number; + DiscardingBlock?: boolean; + RagFairCommissionModifier?: number; + IsAlwaysAvailableForInsurance?: boolean; + DiscardLimit?: number; + MaxResource?: number; + Resource?: number; + DogTagQualities?: boolean; + Grids?: Grid[]; + Slots?: Slot[]; + CanPutIntoDuringTheRaid?: boolean; + CantRemoveFromSlotsDuringRaid?: string[]; + KeyIds?: string[]; + TagColor?: number; + TagName?: string; + Durability?: number; + Accuracy?: number; + Recoil?: number; + Loudness?: number; + EffectiveDistance?: number; + Ergonomics?: number; + Velocity?: number; + RaidModdable?: boolean; + ToolModdable?: boolean; + BlocksFolding?: boolean; + BlocksCollapsible?: boolean; + IsAnimated?: boolean; + HasShoulderContact?: boolean; + SightingRange?: number; + DoubleActionAccuracyPenaltyMult?: number; + ModesCount: any; + DurabilityBurnModificator?: number; + HeatFactor?: number; + CoolFactor?: number; + muzzleModType?: string; + CustomAimPlane?: string; + sightModType?: string; + aimingSensitivity?: number; + SightModesCount?: number; + OpticCalibrationDistances?: number[]; + ScopesCount?: number; + AimSensitivity: any; + Zooms?: number[][]; + CalibrationDistances?: number[][]; + Intensity?: number; + Mask?: string; + MaskSize?: number; + NoiseIntensity?: number; + NoiseScale?: number; + Color?: Color; + DiffuseIntensity?: number; + HasHinge?: boolean; + RampPalette?: string; + DepthFade?: number; + RoughnessCoef?: number; + SpecularCoef?: number; + MainTexColorCoef?: number; + MinimumTemperatureValue?: number; + RampShift?: number; + HeatMin?: number; + ColdMax?: number; + IsNoisy?: boolean; + IsFpsStuck?: boolean; + IsGlitch?: boolean; + IsMotionBlurred?: boolean; + IsPixelated?: boolean; + PixelationBlockCount?: number; + ShiftsAimCamera?: number; + magAnimationIndex?: number; + Cartridges?: Slot[]; + CanFast?: boolean; + CanHit?: boolean; + CanAdmin?: boolean; + LoadUnloadModifier?: number; + CheckTimeModifier?: number; + CheckOverride?: number; + ReloadMagType?: string; + VisibleAmmoRangesString?: string; + MalfunctionChance?: number; + IsShoulderContact?: boolean; + Foldable?: boolean; + Retractable?: boolean; + SizeReduceRight?: number; + CenterOfImpact?: number; + ShotgunDispersion?: number; + IsSilencer?: boolean; + DeviationCurve?: number; + DeviationMax?: number; + SearchSound?: string; + BlocksArmorVest?: boolean; + speedPenaltyPercent?: number; + GridLayoutName?: string; + SpawnFilter?: any[]; + containType?: any[]; + sizeWidth?: number; + sizeHeight?: number; + isSecured?: boolean; + spawnTypes?: string; + lootFilter?: any[]; + spawnRarity?: string; + minCountSpawn?: number; + maxCountSpawn?: number; + openedByKeyID?: any[]; + RigLayoutName?: string; + MaxDurability?: number; + armorZone?: string[]; + armorClass: any; + mousePenalty?: number; + weaponErgonomicPenalty?: number; + BluntThroughput?: number; + ArmorMaterial?: string; + weapClass?: string; + weapUseType?: string; + ammoCaliber?: string; + OperatingResource?: number; + RepairComplexity?: number; + durabSpawnMin?: number; + durabSpawnMax?: number; + isFastReload?: boolean; + RecoilForceUp?: number; + RecoilForceBack?: number; + Convergence?: number; + RecoilAngle?: number; + weapFireType?: string[]; + RecolDispersion?: number; + SingleFireRate?: number; + CanQueueSecondShot?: boolean; + bFirerate?: number; + bEffDist?: number; + bHearDist?: number; + isChamberLoad?: boolean; + chamberAmmoCount?: number; + isBoltCatch?: boolean; + defMagType?: string; + defAmmo?: string; + AdjustCollimatorsToTrajectory?: boolean; + shotgunDispersion?: number; + Chambers?: Slot[]; + CameraRecoil?: number; + CameraSnap?: number; + ReloadMode?: string; + AimPlane?: number; + TacticalReloadStiffnes?: Xyz; + TacticalReloadFixation?: number; + RecoilCenter?: Xyz; + RotationCenter?: Xyz; + RotationCenterNoStock?: Xyz; + FoldedSlot?: string; + CompactHandling?: boolean; + MinRepairDegradation?: number; + MaxRepairDegradation?: number; + IronSightRange?: number; + MustBoltBeOpennedForExternalReload?: boolean; + MustBoltBeOpennedForInternalReload?: boolean; + BoltAction?: boolean; + HipAccuracyRestorationDelay?: number; + HipAccuracyRestorationSpeed?: number; + HipInnaccuracyGain?: number; + ManualBoltCatch?: boolean; + BurstShotsCount?: number; + BaseMalfunctionChance?: number; + AllowJam?: boolean; + AllowFeed?: boolean; + AllowMisfire?: boolean; + AllowSlide?: boolean; + DurabilityBurnRatio?: number; + HeatFactorGun?: number; + CoolFactorGun?: number; + CoolFactorGunMods?: number; + HeatFactorByShot?: number; + AllowOverheat?: boolean; + DoubleActionAccuracyPenalty?: number; + RecoilPosZMult?: number; + MinRepairKitDegradation?: number; + MaxRepairKitDegradation?: number; + BlocksEarpiece?: boolean; + BlocksEyewear?: boolean; + BlocksHeadwear?: boolean; + BlocksFaceCover?: boolean; + Indestructibility?: number; + headSegments?: string[]; + FaceShieldComponent?: boolean; + FaceShieldMask?: string; + MaterialType?: string; + RicochetParams?: Xyz; + DeafStrength?: string; + BlindnessProtection?: number; + Distortion?: number; + CompressorTreshold?: number; + CompressorAttack?: number; + CompressorRelease?: number; + CompressorGain?: number; + CutoffFreq?: number; + Resonance?: number; + CompressorVolume?: number; + AmbientVolume?: number; + DryVolume?: number; + foodUseTime?: number; + foodEffectType?: string; + StimulatorBuffs?: string; + effects_health: any; + effects_damage: any; + MaximumNumberOfUsage?: number; + knifeHitDelay?: number; + knifeHitSlashRate?: number; + knifeHitStabRate?: number; + knifeHitRadius?: number; + knifeHitSlashDam?: number; + knifeHitStabDam?: number; + knifeDurab?: number; + PrimaryDistance?: number; + SecondryDistance?: number; + SlashPenetration?: number; + StabPenetration?: number; + PrimaryConsumption?: number; + SecondryConsumption?: number; + DeflectionConsumption?: number; + AppliedTrunkRotation?: Xyz; + AppliedHeadRotation?: Xyz; + DisplayOnModel?: boolean; + AdditionalAnimationLayer?: number; + StaminaBurnRate?: number; + ColliderScaleMultiplier?: Xyz; + ConfigPathStr?: string; + MaxMarkersCount?: number; + scaleMin?: number; + scaleMax?: number; + medUseTime?: number; + medEffectType?: string; + MaxHpResource?: number; + hpResourceRate?: number; + apResource?: number; + krResource?: number; + MaxOpticZoom?: number; + MaxRepairResource?: number; + TargetItemFilter?: string[]; + RepairQuality?: number; + RepairType?: string; + StackMinRandom?: number; + StackMaxRandom?: number; + ammoType?: string; + InitialSpeed?: number; + BallisticCoeficient?: number; + BulletMassGram?: number; + BulletDiameterMilimeters?: number; + Damage?: number; + ammoAccr?: number; + ammoRec?: number; + ammoDist?: number; + buckshotBullets?: number; + PenetrationPower?: number; + PenetrationPowerDiviation?: number; + ammoHear?: number; + ammoSfx?: string; + MisfireChance?: number; + MinFragmentsCount?: number; + MaxFragmentsCount?: number; + ammoShiftChance?: number; + casingName?: string; + casingEjectPower?: number; + casingMass?: number; + casingSounds?: string; + ProjectileCount?: number; + PenetrationChance?: number; + RicochetChance?: number; + FragmentationChance?: number; + Deterioration?: number; + SpeedRetardation?: number; + Tracer?: boolean; + TracerColor?: string; + TracerDistance?: number; + ArmorDamage?: number; + Caliber?: string; + StaminaBurnPerDamage?: number; + HeavyBleedingDelta?: number; + LightBleedingDelta?: number; + ShowBullet?: boolean; + HasGrenaderComponent?: boolean; + FuzeArmTimeSec?: number; + ExplosionStrength?: number; + MinExplosionDistance?: number; + MaxExplosionDistance?: number; + FragmentsCount?: number; + FragmentType?: string; + ShowHitEffectOnExplode?: boolean; + ExplosionType?: string; + AmmoLifeTimeSec?: number; + Contusion?: Xyz; + ArmorDistanceDistanceDamage?: Xyz; + Blindness?: Xyz; + IsLightAndSoundShot?: boolean; + LightAndSoundShotAngle?: number; + LightAndSoundShotSelfContusionTime?: number; + LightAndSoundShotSelfContusionStrength?: number; + MalfMisfireChance?: number; + MalfFeedChance?: number; + StackSlots?: StackSlot[]; + type?: string; + eqMin?: number; + eqMax?: number; + rate?: number; + ThrowType?: string; + ExplDelay?: number; + Strength?: number; + ContusionDistance?: number; + throwDamMax?: number; + explDelay?: number; + EmitTime?: number; + CanBeHiddenDuringThrow?: boolean; + MinTimeToContactExplode?: number; + ExplosionEffectType?: string; +} +export interface Prefab { + path: string; + rcid: string; +} +export interface Grid { + _name: string; + _id: string; + _parent: string; + _props: GridProps; + _proto: string; +} +export interface GridProps { + filters: GridFilter[]; + cellsH: number; + cellsV: number; + minCount: number; + maxCount: number; + maxWeight: number; + isSortingTable: boolean; +} +export interface GridFilter { + Filter: string[]; + ExcludedFilter: string[]; +} +export interface Slot { + _name: string; + _id: string; + _parent: string; + _props: SlotProps; + _max_count?: number; + _required: boolean; + _mergeSlotWithChildren: boolean; + _proto: string; +} +export interface SlotProps { + filters: SlotFilter[]; +} +export interface SlotFilter { + Shift?: number; + Filter: string[]; + AnimationIndex?: number; +} +export interface Xyz { + x: number; + y: number; + z: number; +} +export interface StackSlot { + _name?: string; + _id: string; + _parent: string; + _max_count: number; + _props: StackSlotProps; + _proto: string; + upd: any; +} +export interface StackSlotProps { + filters: SlotFilter[]; +} +export interface EffectsHealth { + Energy: EffectsHealthProps; + Hydration: EffectsHealthProps; +} +export interface EffectsHealthProps { + value: number; +} +export interface EffectsDamage { + Pain: EffectDamageProps; + LightBleeding: EffectDamageProps; + HeavyBleeding: EffectDamageProps; + Contusion: EffectDamageProps; + RadExposure: EffectDamageProps; + Fracture: EffectDamageProps; + DestroyedPart: EffectDamageProps; +} +export interface EffectDamageProps { + delay: number; + duration: number; + fadeOut: number; + cost?: number; + healthPenaltyMin?: number; + healthPenaltyMax?: number; +} +export interface Color { + r: number; + g: number; + b: number; + a: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ITrader.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ITrader.d.ts new file mode 100644 index 0000000..f0fe2b5 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/common/tables/ITrader.d.ts @@ -0,0 +1,90 @@ +import { Item } from "./IItem"; +export interface ITrader { + assort: ITraderAssort; + base: ITraderBase; + dialogue?: Record; + questassort: Record>; + suits?: ISuit[]; +} +export interface ITraderBase { + refreshAssort: boolean; + _id: string; + avatar: string; + balance_dol: number; + balance_eur: number; + balance_rub: number; + buyer_up: boolean; + currency: string; + customization_seller: boolean; + discount: number; + discount_end: number; + gridHeight: number; + insurance: Insurance; + location: string; + loyaltyLevels: LoyaltyLevel[]; + medic: boolean; + name: string; + nextResupply: number; + nickname: string; + repair: Repair; + sell_category: string[]; + surname: string; + unlockedByDefault: boolean; +} +export interface Insurance { + availability: boolean; + excluded_category: string[]; + max_return_hour: number; + max_storage_time: number; + min_payment: number; + min_return_hour: number; +} +export interface LoyaltyLevel { + buy_price_coef: number; + exchange_price_coef: number; + heal_price_coef: number; + insurance_price_coef: number; + minLevel: number; + minSalesSum: number; + minStanding: number; + repair_price_coef: number; +} +export interface Repair { + availability: boolean; + currency: string; + currency_coefficient: number; + excluded_category: string[]; + excluded_id_list: any[]; + quality: string; +} +export interface ITraderAssort { + nextResupply?: number; + items: Item[]; + barter_scheme: Record; + loyal_level_items: Record; +} +export interface IBarterScheme { + count: number; + _tpl: string; + onlyFunctional?: boolean; +} +export interface ISuit { + _id: string; + tid: string; + suiteId: string; + isActive: boolean; + requirements: Requirements; +} +export interface Requirements { + loyaltyLevel: number; + profileLevel: number; + standing: number; + skillRequirements: string[]; + questRequirements: string[]; + itemRequirements: ItemRequirement[]; +} +export interface ItemRequirement { + count: number; + _tpl: string; + onlyFunctional: boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/customization/IBuyClothingRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/customization/IBuyClothingRequestData.d.ts new file mode 100644 index 0000000..d19b70d --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/customization/IBuyClothingRequestData.d.ts @@ -0,0 +1,10 @@ +export interface IBuyClothingRequestData { + Action: "CustomizationBuy"; + offer: string; + items: ClothingItem[]; +} +export interface ClothingItem { + del: boolean; + id: string; + count: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/customization/IWearClothingRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/customization/IWearClothingRequestData.d.ts new file mode 100644 index 0000000..122d9cf --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/customization/IWearClothingRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IWearClothingRequestData { + Action: "CustomizationWear"; + suites: string[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IFriendRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IFriendRequestData.d.ts new file mode 100644 index 0000000..9c326ac --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IFriendRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IFriendRequestData { + to: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetAllAttachmentsRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetAllAttachmentsRequestData.d.ts new file mode 100644 index 0000000..53d8289 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetAllAttachmentsRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetAllAttachmentsRequestData { + dialogId: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetAllAttachmentsResponse.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetAllAttachmentsResponse.d.ts new file mode 100644 index 0000000..076d414 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetAllAttachmentsResponse.d.ts @@ -0,0 +1,6 @@ +import { Message } from "../profile/IAkiProfile"; +export interface IGetAllAttachmentsResponse { + messages: Message[]; + profiles: any[]; + hasMessagesWithRewards: boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetChatServerListRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetChatServerListRequestData.d.ts new file mode 100644 index 0000000..8f1beac --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetChatServerListRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetChatServerListRequestData { + VersionId: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetFriendListDataResponse.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetFriendListDataResponse.d.ts new file mode 100644 index 0000000..1d0c0e8 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetFriendListDataResponse.d.ts @@ -0,0 +1,16 @@ +import { MemberCategory } from "../../enums/MemberCategory"; +export interface IGetFriendListDataResponse { + Friends: Friend[]; + Ignore: any[]; + InIgnoreList: any[]; +} +export interface Friend { + _id: string; + Info: Info; +} +export interface Info { + Nickname: string; + Side: string; + Level: number; + MemberCategory: MemberCategory; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetMailDialogInfoRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetMailDialogInfoRequestData.d.ts new file mode 100644 index 0000000..eed84b1 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetMailDialogInfoRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetMailDialogInfoRequestData { + dialogId: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetMailDialogListRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetMailDialogListRequestData.d.ts new file mode 100644 index 0000000..f8fbf5d --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetMailDialogListRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IGetMailDialogListRequestData { + limit: number; + offset: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetMailDialogViewRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetMailDialogViewRequestData.d.ts new file mode 100644 index 0000000..43d416e --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetMailDialogViewRequestData.d.ts @@ -0,0 +1,7 @@ +import { MessageType } from "../../enums/MessageType"; +export interface IGetMailDialogViewRequestData { + type: MessageType; + dialogId: string; + limit: number; + time: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetMailDialogViewResponseData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetMailDialogViewResponseData.d.ts new file mode 100644 index 0000000..4f8b946 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IGetMailDialogViewResponseData.d.ts @@ -0,0 +1,7 @@ +import { IPmcData } from "../common/IPmcData"; +import { Message } from "../profile/IAkiProfile"; +export interface IGetMailDialogViewResponseData { + messages: Message[]; + profiles: IPmcData[]; + hasMessagesWithRewards: boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IPinDialogRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IPinDialogRequestData.d.ts new file mode 100644 index 0000000..57b8a00 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IPinDialogRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IPinDialogRequestData { + dialogId: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IRemoveDialogRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IRemoveDialogRequestData.d.ts new file mode 100644 index 0000000..874b828 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/IRemoveDialogRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IRemoveDialogRequestData { + dialogId: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/ISendMessageRequest.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/ISendMessageRequest.d.ts new file mode 100644 index 0000000..dd79deb --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/ISendMessageRequest.d.ts @@ -0,0 +1,7 @@ +import { MessageType } from "../../enums/MessageType"; +export interface ISendMessageRequest { + dialogId: string; + type: MessageType; + text: string; + replyTo: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/ISetDialogReadRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/ISetDialogReadRequestData.d.ts new file mode 100644 index 0000000..2076232 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/dialog/ISetDialogReadRequestData.d.ts @@ -0,0 +1,3 @@ +export interface ISetDialogReadRequestData { + dialogs: string[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/game/IGameConfigResponse.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/game/IGameConfigResponse.d.ts new file mode 100644 index 0000000..eb37a39 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/game/IGameConfigResponse.d.ts @@ -0,0 +1,19 @@ +export interface IGameConfigResponse { + aid: string; + lang: string; + languages: Record; + ndaFree: boolean; + taxonomy: number; + activeProfileId: string; + backend: Backend; + utc_time: number; + totalInGame: number; + reportAvailable: boolean; + twitchEventMember: boolean; +} +export interface Backend { + Trading: string; + Messaging: string; + Main: string; + RagFair: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/game/IGameEmptyCrcRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/game/IGameEmptyCrcRequestData.d.ts new file mode 100644 index 0000000..a3ecad9 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/game/IGameEmptyCrcRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGameEmptyCrcRequestData { + crc: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/game/IVersionValidateRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/game/IVersionValidateRequestData.d.ts new file mode 100644 index 0000000..0aa0fed --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/game/IVersionValidateRequestData.d.ts @@ -0,0 +1,11 @@ +export interface IVersionValidateRequestData { + version: Version; + develop: boolean; +} +export interface Version { + major: string; + minor: string; + game: string; + backend: string; + taxonomy: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/health/IHealthTreatmentRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/health/IHealthTreatmentRequestData.d.ts new file mode 100644 index 0000000..7fb80a8 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/health/IHealthTreatmentRequestData.d.ts @@ -0,0 +1,29 @@ +export interface IHealthTreatmentRequestData { + Action: "RestoreHealth"; + trader: string; + items: Item[]; + difference: Difference; + timestamp: number; +} +export interface Item { + id: string; + count: number; +} +export interface Difference { + BodyParts: BodyParts; + Energy: number; + Hydration: number; +} +export interface BodyParts { + Head: BodyPart; + Chest: BodyPart; + Stomach: BodyPart; + LeftArm: BodyPart; + RightArm: BodyPart; + LeftLeg: BodyPart; + RightLeg: BodyPart; +} +export interface BodyPart { + Health: number; + Effects: string[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/health/IOffraidEatRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/health/IOffraidEatRequestData.d.ts new file mode 100644 index 0000000..8e2b6c3 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/health/IOffraidEatRequestData.d.ts @@ -0,0 +1,7 @@ +import { IBaseInteractionRequestData } from "../common/request/IBaseInteractionRequestData"; +export interface IOffraidEatRequestData extends IBaseInteractionRequestData { + Action: "Eat"; + item: string; + count: number; + time: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/health/IOffraidHealRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/health/IOffraidHealRequestData.d.ts new file mode 100644 index 0000000..c242300 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/health/IOffraidHealRequestData.d.ts @@ -0,0 +1,18 @@ +import { IBaseInteractionRequestData } from "../common/request/IBaseInteractionRequestData"; +export interface IOffraidHealRequestData extends IBaseInteractionRequestData { + Action: "Heal"; + item: string; + part: BodyPart; + count: number; + time: number; +} +export declare enum BodyPart { + Head = 0, + Chest = 1, + Stomach = 2, + LeftArm = 3, + RightArm = 4, + LeftLeg = 5, + RightLeg = 6, + Common = 7 +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/health/ISyncHealthRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/health/ISyncHealthRequestData.d.ts new file mode 100644 index 0000000..20e32f6 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/health/ISyncHealthRequestData.d.ts @@ -0,0 +1,21 @@ +export interface ISyncHealthRequestData { + Health: Health; + IsAlive: boolean; + Hydration?: number; + Energy?: number; + Temperature?: number; +} +export interface Health { + Head?: BodyPartHealth; + Chest?: BodyPartHealth; + Stomach?: BodyPartHealth; + LeftArm?: BodyPartHealth; + RightArm?: BodyPartHealth; + LeftLeg?: BodyPartHealth; + RightLeg?: BodyPartHealth; +} +export interface BodyPartHealth { + Maximum: number; + Current: number; + Effects: Record; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/HideoutUpgradeCompleteRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/HideoutUpgradeCompleteRequestData.d.ts new file mode 100644 index 0000000..8583e8d --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/HideoutUpgradeCompleteRequestData.d.ts @@ -0,0 +1,5 @@ +export interface HideoutUpgradeCompleteRequestData { + Action: string; + areaType: number; + timestamp: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutArea.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutArea.d.ts new file mode 100644 index 0000000..d9fd2bf --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutArea.d.ts @@ -0,0 +1,40 @@ +export interface IHideoutArea { + _id: string; + type: number; + enabled: boolean; + needsFuel: boolean; + takeFromSlotLocked: boolean; + craftGivesExp: boolean; + stages: Record; +} +export interface Stage { + requirements: Requirement[]; + bonuses: StageBonus[]; + slots: number; + constructionTime: number; + description: string; +} +export interface Requirement { + areaType?: number; + requiredLevel?: number; + type: string; + templateId?: string; + count?: number; + isFunctional?: boolean; + traderId?: string; + loyaltyLevel?: number; + skillName?: string; + skillLevel?: number; +} +export interface StageBonus { + value: number; + passive: boolean; + production: boolean; + visible: boolean; + skillType?: string; + type: string; + filter?: string[]; + icon?: string; + id?: string; + templateId?: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutContinousProductionStartRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutContinousProductionStartRequestData.d.ts new file mode 100644 index 0000000..dba83eb --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutContinousProductionStartRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IHideoutContinousProductionStartRequestData { + Action: "HideoutContinuousProductionStart"; + recipeId: string; + timestamp: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutProduction.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutProduction.d.ts new file mode 100644 index 0000000..ce878be --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutProduction.d.ts @@ -0,0 +1,20 @@ +export interface IHideoutProduction { + _id: string; + areaType: number; + requirements: Requirement[]; + productionTime: number; + boosters: any; + endProduct: string; + continuous: boolean; + count: number; + productionLimitCount: number; +} +export interface Requirement { + templateId?: string; + count?: number; + isFunctional?: boolean; + type: string; + areaType?: number; + requiredLevel?: number; + resource?: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutPutItemInRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutPutItemInRequestData.d.ts new file mode 100644 index 0000000..8326c55 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutPutItemInRequestData.d.ts @@ -0,0 +1,10 @@ +export interface IHideoutPutItemInRequestData { + Action: "HideoutPutItemsInAreaSlots"; + areaType: number; + items: Record; + timestamp: number; +} +export interface ItemDetails { + count: number; + id: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutScavCase.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutScavCase.d.ts new file mode 100644 index 0000000..25abcf3 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutScavCase.d.ts @@ -0,0 +1,21 @@ +export interface IHideoutScavCase { + _id: string; + ProductionTime: number; + Requirements: Requirement[]; + EndProducts: EndProducts; +} +export interface Requirement { + templateId: string; + count: number; + isFunctional: boolean; + type: string; +} +export interface EndProducts { + Common: MinMax; + Rare: MinMax; + Superrare: MinMax; +} +export interface MinMax { + min: string; + max: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutScavCaseStartRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutScavCaseStartRequestData.d.ts new file mode 100644 index 0000000..72fda86 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutScavCaseStartRequestData.d.ts @@ -0,0 +1,15 @@ +export interface IHideoutScavCaseStartRequestData { + Action: "HideoutScavCaseProductionStart"; + recipeId: string; + items: HideoutItem[]; + tools: Tool[]; + timestamp: number; +} +export interface HideoutItem { + id: string; + count: number; +} +export interface Tool { + id: string; + count: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutSettingsBase.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutSettingsBase.d.ts new file mode 100644 index 0000000..8e45939 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutSettingsBase.d.ts @@ -0,0 +1,6 @@ +export interface IHideoutSettingsBase { + generatorSpeedWithoutFuel: number; + generatorFuelFlowRate: number; + airFilterUnitFlowRate: number; + gpuBoostRate: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutSingleProductionStartRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutSingleProductionStartRequestData.d.ts new file mode 100644 index 0000000..1ed542a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutSingleProductionStartRequestData.d.ts @@ -0,0 +1,10 @@ +export interface IHideoutSingleProductionStartRequestData { + Action: "HideoutSingleProductionStart"; + recipeId: string; + items: Item[]; + timestamp: number; +} +export interface Item { + id: string; + count: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutTakeItemOutRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutTakeItemOutRequestData.d.ts new file mode 100644 index 0000000..83a740a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutTakeItemOutRequestData.d.ts @@ -0,0 +1,6 @@ +export interface IHideoutTakeItemOutRequestData { + Action: "HideoutTakeItemsFromAreaSlots"; + areaType: number; + slots: number[]; + timestamp: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutTakeProductionRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutTakeProductionRequestData.d.ts new file mode 100644 index 0000000..a6847ef --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutTakeProductionRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IHideoutTakeProductionRequestData { + Action: "HideoutTakeProduction"; + recipeId: string; + timestamp: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutToggleAreaRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutToggleAreaRequestData.d.ts new file mode 100644 index 0000000..cdea513 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutToggleAreaRequestData.d.ts @@ -0,0 +1,6 @@ +export interface IHideoutToggleAreaRequestData { + Action: "HideoutToggleArea"; + areaType: number; + enabled: boolean; + timestamp: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutUpgradeCompleteRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutUpgradeCompleteRequestData.d.ts new file mode 100644 index 0000000..545311e --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutUpgradeCompleteRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IHideoutUpgradeCompleteRequestData { + Action: "HideoutUpgradeComplete"; + areaType: number; + timestamp: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutUpgradeRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutUpgradeRequestData.d.ts new file mode 100644 index 0000000..dfbfdca --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/hideout/IHideoutUpgradeRequestData.d.ts @@ -0,0 +1,10 @@ +export interface IHideoutUpgradeRequestData { + Action: "HideoutUpgrade"; + areaType: number; + items: HideoutItem[]; + timestamp: number; +} +export interface HideoutItem { + count: number; + id: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/httpResponse/IGetBodyResponseData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/httpResponse/IGetBodyResponseData.d.ts new file mode 100644 index 0000000..b5dc5c1 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/httpResponse/IGetBodyResponseData.d.ts @@ -0,0 +1,5 @@ +export interface IGetBodyResponseData { + err: number; + errmsg: any; + (data: Type): Type; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/httpResponse/INullResponseData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/httpResponse/INullResponseData.d.ts new file mode 100644 index 0000000..a3ae838 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/httpResponse/INullResponseData.d.ts @@ -0,0 +1,5 @@ +export interface INullResponseData { + err: number; + errmsg: any; + data: null; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inRaid/IRegisterPlayerRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inRaid/IRegisterPlayerRequestData.d.ts new file mode 100644 index 0000000..e2d9cf1 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inRaid/IRegisterPlayerRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IRegisterPlayerRequestData { + crc: number; + locationId: string; + variantId: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inRaid/ISaveProgressRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inRaid/ISaveProgressRequestData.d.ts new file mode 100644 index 0000000..6930261 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inRaid/ISaveProgressRequestData.d.ts @@ -0,0 +1,8 @@ +import { IPmcData } from "../common/IPmcData"; +import { ISyncHealthRequestData } from "../health/ISyncHealthRequestData"; +export interface ISaveProgressRequestData { + exit: string; + profile: IPmcData; + isPlayerScav: boolean; + health: ISyncHealthRequestData; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/insurance/IGetInsuranceCostRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/insurance/IGetInsuranceCostRequestData.d.ts new file mode 100644 index 0000000..0e32e96 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/insurance/IGetInsuranceCostRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IGetInsuranceCostRequestData { + traders: string[]; + items: string[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/insurance/IInsureRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/insurance/IInsureRequestData.d.ts new file mode 100644 index 0000000..f657bb7 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/insurance/IInsureRequestData.d.ts @@ -0,0 +1,6 @@ +import { IBaseInteractionRequestData } from "../common/request/IBaseInteractionRequestData"; +export interface IInsureRequestData extends IBaseInteractionRequestData { + Action: "Insure"; + tid: string; + items: string[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IAddItemRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IAddItemRequestData.d.ts new file mode 100644 index 0000000..53db97a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IAddItemRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IAddItemRequestData { + tid: string; + items: any[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryAddRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryAddRequestData.d.ts new file mode 100644 index 0000000..462e0de --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryAddRequestData.d.ts @@ -0,0 +1,6 @@ +import { Container, IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryAddRequestData extends IInventoryBaseActionRequestData { + Action: "Add"; + item: string; + container: Container; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryBaseActionRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryBaseActionRequestData.d.ts new file mode 100644 index 0000000..b45e459 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryBaseActionRequestData.d.ts @@ -0,0 +1,27 @@ +import { IBaseInteractionRequestData } from "../common/request/IBaseInteractionRequestData"; +export interface IInventoryBaseActionRequestData extends IBaseInteractionRequestData { +} +export interface To { + id: string; + container: string; + location?: ToLocation | number; +} +export interface ToLocation { + x: number; + y: number; + r: string; + rotation?: string; + isSearched: boolean; +} +export interface Container { + id: string; + container: string; + location: Location | number; +} +export interface Location { + x: number; + y: number; + r: string; + rotation?: string; + isSearched: boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryBindRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryBindRequestData.d.ts new file mode 100644 index 0000000..ff35066 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryBindRequestData.d.ts @@ -0,0 +1,6 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryBindRequestData extends IInventoryBaseActionRequestData { + Action: "Bind"; + item: string; + index: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryCreateMarkerRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryCreateMarkerRequestData.d.ts new file mode 100644 index 0000000..1e1ecef --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryCreateMarkerRequestData.d.ts @@ -0,0 +1,12 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryCreateMarkerRequestData extends IInventoryBaseActionRequestData { + Action: "CreateMapMarker"; + item: string; + mapMarker: MapMarker; +} +export interface MapMarker { + Type: string; + X: number; + Y: number; + Note: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryDeleteMarkerRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryDeleteMarkerRequestData.d.ts new file mode 100644 index 0000000..0657e1b --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryDeleteMarkerRequestData.d.ts @@ -0,0 +1,7 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryDeleteMarkerRequestData extends IInventoryBaseActionRequestData { + Action: "DeleteMapMarker"; + item: string; + X: number; + Y: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryEditMarkerRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryEditMarkerRequestData.d.ts new file mode 100644 index 0000000..e2857e1 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryEditMarkerRequestData.d.ts @@ -0,0 +1,14 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryEditMarkerRequestData extends IInventoryBaseActionRequestData { + Action: "EditMapMarker"; + item: string; + X: number; + Y: number; + mapMarker: MapMarker; +} +export interface MapMarker { + Type: string; + X: number; + Y: number; + Note: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryExamineRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryExamineRequestData.d.ts new file mode 100644 index 0000000..614711f --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryExamineRequestData.d.ts @@ -0,0 +1,10 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryExamineRequestData extends IInventoryBaseActionRequestData { + Action: "Examine"; + item: string; + fromOwner: IFromOwner; +} +export interface IFromOwner { + id: string; + type: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryFoldRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryFoldRequestData.d.ts new file mode 100644 index 0000000..a5fb2a1 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryFoldRequestData.d.ts @@ -0,0 +1,6 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryFoldRequestData extends IInventoryBaseActionRequestData { + Action: "Fold"; + item: string; + value: boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryMergeRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryMergeRequestData.d.ts new file mode 100644 index 0000000..3fcfa35 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryMergeRequestData.d.ts @@ -0,0 +1,6 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryMergeRequestData extends IInventoryBaseActionRequestData { + Action: "Merge"; + item: string; + with: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryMoveRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryMoveRequestData.d.ts new file mode 100644 index 0000000..b767908 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryMoveRequestData.d.ts @@ -0,0 +1,6 @@ +import { IInventoryBaseActionRequestData, To } from "./IInventoryBaseActionRequestData"; +export interface IInventoryMoveRequestData extends IInventoryBaseActionRequestData { + Action: "Move"; + item: string; + to: To; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryReadEncyclopediaRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryReadEncyclopediaRequestData.d.ts new file mode 100644 index 0000000..5487b20 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryReadEncyclopediaRequestData.d.ts @@ -0,0 +1,5 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryReadEncyclopediaRequestData extends IInventoryBaseActionRequestData { + Action: "ReadEncyclopedia"; + ids: string[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryRemoveRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryRemoveRequestData.d.ts new file mode 100644 index 0000000..07d1a52 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryRemoveRequestData.d.ts @@ -0,0 +1,5 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryRemoveRequestData extends IInventoryBaseActionRequestData { + Action: "Remove"; + item: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventorySortRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventorySortRequestData.d.ts new file mode 100644 index 0000000..a0b7928 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventorySortRequestData.d.ts @@ -0,0 +1,20 @@ +import { Upd } from "../common/tables/IItem"; +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventorySortRequestData extends IInventoryBaseActionRequestData { + Action: "ApplyInventoryChanges"; + changedItems: ChangedItem[]; +} +export interface ChangedItem { + _id: string; + _tpl: string; + parentId: string; + slotId: string; + location: Location; + upd: Upd; +} +export interface Location { + x: number; + y: number; + r: string; + isSearched: boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventorySplitRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventorySplitRequestData.d.ts new file mode 100644 index 0000000..730ae71 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventorySplitRequestData.d.ts @@ -0,0 +1,7 @@ +import { Container, IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventorySplitRequestData extends IInventoryBaseActionRequestData { + Action: "Split"; + item: string; + container: Container; + count: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventorySwapRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventorySwapRequestData.d.ts new file mode 100644 index 0000000..1b0464d --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventorySwapRequestData.d.ts @@ -0,0 +1,11 @@ +import { OwnerInfo } from "../common/request/IBaseInteractionRequestData"; +import { IInventoryBaseActionRequestData, To } from "./IInventoryBaseActionRequestData"; +export interface IInventorySwapRequestData extends IInventoryBaseActionRequestData { + Action: "Swap"; + item: string; + to: To; + item2: string; + to2: To; + fromOwner2: OwnerInfo; + toOwner2: OwnerInfo; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryTagRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryTagRequestData.d.ts new file mode 100644 index 0000000..f021661 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryTagRequestData.d.ts @@ -0,0 +1,7 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryTagRequestData extends IInventoryBaseActionRequestData { + Action: "Tag"; + item: string; + TagName: string; + TagColor: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryToggleRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryToggleRequestData.d.ts new file mode 100644 index 0000000..0955440 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryToggleRequestData.d.ts @@ -0,0 +1,6 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryToggleRequestData extends IInventoryBaseActionRequestData { + Action: "Toggle"; + item: string; + value: boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryTransferRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryTransferRequestData.d.ts new file mode 100644 index 0000000..cf4391b --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/inventory/IInventoryTransferRequestData.d.ts @@ -0,0 +1,7 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryTransferRequestData extends IInventoryBaseActionRequestData { + Action: "Transfer"; + item: string; + with: string; + count: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/itemEvent/IEmptyItemEventRouterResponse.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/itemEvent/IEmptyItemEventRouterResponse.d.ts new file mode 100644 index 0000000..689fe75 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/itemEvent/IEmptyItemEventRouterResponse.d.ts @@ -0,0 +1,4 @@ +import { IItemEventRouterBase } from "./IItemEventRouterBase"; +export interface IEmptyItemEventRouterResponse extends IItemEventRouterBase { + profileChanges: ""; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/itemEvent/IItemEventRouterBase.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/itemEvent/IItemEventRouterBase.d.ts new file mode 100644 index 0000000..31e62fe --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/itemEvent/IItemEventRouterBase.d.ts @@ -0,0 +1,67 @@ +import { Skills } from "../common/IPmcData"; +import { Item, Upd } from "../common/tables/IItem"; +import { IQuest } from "../common/tables/IQuest"; +import { IPmcDataRepeatableQuest } from "../common/tables/IRepeatableQuests"; +import { IRagfairOffer } from "../ragfair/IRagfairOffer"; +export interface IItemEventRouterBase { + warnings: Warning[]; + profileChanges: TProfileChanges | ""; +} +export declare type TProfileChanges = Record; +export interface Warning { + index: number; + err: string; + errmsg: string; +} +export interface ProfileChange { + _id: string; + experience: number; + quests: IQuest[]; + ragFairOffers: IRagfairOffer[]; + builds: BuildChange[]; + items: ItemChanges; + production: Record; + skills: Skills; + traderRelations: Record; + repeatableQuests?: IPmcDataRepeatableQuest[]; +} +export interface BuildChange { + id: string; + name: string; + root: string; + items: Item[]; +} +export interface ItemChanges { + new: Product[]; + change: Product[]; + del: Product[]; +} +export interface Production { + Progress: number; + StartTimestamp: number; + ProductionTime: number; + inProgress: boolean; + RecipeId: string; + Products: Product[]; +} +export interface Product { + _id: string; + _tpl?: string; + parentId?: string; + slotId?: string; + location?: ItemChangeLocation; + upd?: Upd; +} +export interface ItemChangeLocation { + x: number; + y: number; + r: number; + isSearched?: boolean; +} +export interface TraderRelations { + salesSum?: number; + standing?: number; + loyalty?: number; + unlocked?: boolean; + disabled?: boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/itemEvent/IItemEventRouterRequest.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/itemEvent/IItemEventRouterRequest.d.ts new file mode 100644 index 0000000..515b49a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/itemEvent/IItemEventRouterRequest.d.ts @@ -0,0 +1,21 @@ +export interface IItemEventRouterRequest { + data: Daum[]; + tm: number; + reload: number; +} +export interface Daum { + Action: string; + item: string; + to: To; +} +export interface To { + id: string; + container: string; + location?: Location; +} +export interface Location { + x: number; + y: number; + r: string; + isSearched: boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/itemEvent/IItemEventRouterResponse.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/itemEvent/IItemEventRouterResponse.d.ts new file mode 100644 index 0000000..72a9b5b --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/itemEvent/IItemEventRouterResponse.d.ts @@ -0,0 +1,3 @@ +import { IItemEventRouterBase } from "./IItemEventRouterBase"; +export interface IItemEventRouterResponse extends IItemEventRouterBase { +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IChangeRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IChangeRequestData.d.ts new file mode 100644 index 0000000..f0a7838 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IChangeRequestData.d.ts @@ -0,0 +1,4 @@ +import { ILoginRequestData } from "./ILoginRequestData"; +export interface IChangeRequestData extends ILoginRequestData { + change: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IGetMiniProfileRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IGetMiniProfileRequestData.d.ts new file mode 100644 index 0000000..a14c7c9 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IGetMiniProfileRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IGetMiniProfileRequestData { + username: string; + password: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/launcher/ILoginRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/launcher/ILoginRequestData.d.ts new file mode 100644 index 0000000..e965813 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/launcher/ILoginRequestData.d.ts @@ -0,0 +1,4 @@ +export interface ILoginRequestData { + username: string; + password: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IMiniProfile.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IMiniProfile.d.ts new file mode 100644 index 0000000..c12661a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IMiniProfile.d.ts @@ -0,0 +1,14 @@ +export interface IMiniProfile { + username: string; + nickname: string; + side: string; + currlvl: number; + currexp: number; + prevexp: number; + nextlvl: number; + maxlvl: number; + akiData: AkiData; +} +export interface AkiData { + version: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IRegisterData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IRegisterData.d.ts new file mode 100644 index 0000000..61a8bbe --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IRegisterData.d.ts @@ -0,0 +1,4 @@ +import { ILoginRequestData } from "./ILoginRequestData"; +export interface IRegisterData extends ILoginRequestData { + edition: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IRemoveProfileData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IRemoveProfileData.d.ts new file mode 100644 index 0000000..d31c9ac --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/launcher/IRemoveProfileData.d.ts @@ -0,0 +1,2 @@ +import { ILoginRequestData } from "./ILoginRequestData"; +export declare type IRemoveProfileData = ILoginRequestData; diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/location/IGetLocationRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/location/IGetLocationRequestData.d.ts new file mode 100644 index 0000000..04e84d9 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/location/IGetLocationRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IGetLocationRequestData { + crc: number; + locationId: string; + variantId: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/match/IEndOfflineRaidRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/match/IEndOfflineRaidRequestData.d.ts new file mode 100644 index 0000000..811e9a2 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/match/IEndOfflineRaidRequestData.d.ts @@ -0,0 +1,6 @@ +export interface IEndOfflineRaidRequestData { + crc: number; + exitStatus: string; + exitName: any; + raidSeconds: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/match/IGetProfileRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/match/IGetProfileRequestData.d.ts new file mode 100644 index 0000000..86b5bbd --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/match/IGetProfileRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetProfileRequestData { + profileId: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/match/IStartOffineRaidRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/match/IStartOffineRaidRequestData.d.ts new file mode 100644 index 0000000..84bccc8 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/match/IStartOffineRaidRequestData.d.ts @@ -0,0 +1,27 @@ +export interface IStartOfflineRaidRequestData { + locationName: string; + entryPoint: string; + startTime: number; + dateTime: string; + gameSettings: GameSettings; +} +export interface GameSettings { + timeAndWeatherSettings: TimeAndWeatherSettings; + botsSettings: BotsSettings; + wavesSettings: WavesSettings; +} +export interface TimeAndWeatherSettings { + isRandomTime: boolean; + isRandomWeather: boolean; +} +export interface BotsSettings { + isEnabled: boolean; + isScavWars: boolean; + botAmount: string; +} +export interface WavesSettings { + botDifficulty: string; + isBosses: boolean; + isTaggedAndCursed: boolean; + wavesBotAmount: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/notes/INoteActionData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/notes/INoteActionData.d.ts new file mode 100644 index 0000000..610657f --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/notes/INoteActionData.d.ts @@ -0,0 +1,10 @@ +import { IBaseInteractionRequestData } from "../common/request/IBaseInteractionRequestData"; +export interface INoteActionData extends IBaseInteractionRequestData { + Action: string; + index: number; + note: INote; +} +export interface INote { + Time: number; + Text: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/notifier/INotifier.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/notifier/INotifier.d.ts new file mode 100644 index 0000000..8c48260 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/notifier/INotifier.d.ts @@ -0,0 +1,14 @@ +export interface INotifierChannel { + "server": string; + "channel_id": string; + "url": string; + "notifierServer": string; + "ws": string; +} +import { Message } from "../profile/IAkiProfile"; +export interface INotification { + type: "RagfairOfferSold" | "new_message" | "ping"; + eventId: string; + dialogId?: string; + message?: Message; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/notifier/ISelectProfileRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/notifier/ISelectProfileRequestData.d.ts new file mode 100644 index 0000000..2bc3d1e --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/notifier/ISelectProfileRequestData.d.ts @@ -0,0 +1,3 @@ +export interface ISelectProfileRequestData { + uid: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/player/IPlayerIncrementSkillLevelRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/player/IPlayerIncrementSkillLevelRequestData.d.ts new file mode 100644 index 0000000..dcd14a2 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/player/IPlayerIncrementSkillLevelRequestData.d.ts @@ -0,0 +1,21 @@ +import { Skills } from "../common/IPmcData"; +export interface IPlayerIncrementSkillLevelRequestData { + _id: string; + experience: number; + quests: any[]; + ragFairOffers: any[]; + builds: any[]; + items: Items; + production: Production; + skills: Skills; + traderRelations: TraderRelations; +} +export interface Items { + new: any[]; + change: any[]; + del: any[]; +} +export interface Production { +} +export interface TraderRelations { +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts new file mode 100644 index 0000000..99c61f1 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts @@ -0,0 +1,25 @@ +export interface IPresetBuildActionRequestData { + Action: string; + id: string; + name: string; + root: string; + items: Item[]; +} +export interface Item { + _id: string; + _tpl: string; + upd?: Upd; + parentId?: string; + slotId?: string; +} +export interface Upd { + Repairable: Repairable; + FireMode: FireMode; +} +export interface Repairable { + MaxDurability: number; + Durability: number; +} +export interface FireMode { + FireMode: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/profile/IAkiProfile.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/profile/IAkiProfile.d.ts new file mode 100644 index 0000000..3e0b319 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/profile/IAkiProfile.d.ts @@ -0,0 +1,167 @@ +import { MessageType } from "../../enums/MessageType"; +import { IPmcData } from "../common/IPmcData"; +import { Item } from "../common/tables/IItem"; +export interface IAkiProfile { + info: Info; + characters: Characters; + suits: string[]; + weaponbuilds: WeaponBuild[]; + dialogues: Record; + aki: Aki; + vitality: Vitality; + inraid: Inraid; + insurance: Insurance[]; +} +export interface Info { + id: string; + username: string; + password: string; + wipe: boolean; + edition: string; +} +export interface Characters { + pmc: IPmcData; + scav: IPmcData; +} +export interface WeaponBuild { + id: string; + name: string; + root: string; + items: Item[]; +} +export interface Dialogue { + _id: string; + messages: Message[]; + pinned: boolean; + new: number; + attachmentsNew: number; +} +export interface DialogueInfo { + _id: string; + type: MessageType; + message: MessagePreview; + pinned: boolean; + new: number; + attachmentsNew: number; +} +export interface Message { + _id: string; + uid: string; + type: MessageType; + dt: number; + localDateTime: number; + UtcDateTime?: number; + Member?: IUpdatableChatMember; + templateId: string; + text?: string; + hasRewards: boolean; + rewardCollected: boolean; + items: Items; + maxStorageTime?: number; + systemData?: ISystemData; +} +export interface MessagePreview { + uid: string; + type: MessageType; + dt: number; + templateId: string; + text?: string; +} +export interface Items { + stash?: string; + data?: Item[]; +} +export interface ISystemData { + date?: string; + time?: string; + location?: string; + buyerNickname?: string; + soldItem?: string; + itemCount?: number; +} +export interface IUpdatableChatMember { + Nickname: string; + Side: string; + Level: number; + MemberCategory: string; + Ignored: boolean; + Banned: boolean; +} +export interface DateTime { + date: string; + time: string; +} +export interface Aki { + version: string; +} +export interface Vitality { + health: Health; + effects: Effects; +} +export interface Health { + Hydration: number; + Energy: number; + Temperature: number; + Head: number; + Chest: number; + Stomach: number; + LeftArm: number; + RightArm: number; + LeftLeg: number; + RightLeg: number; +} +export interface Effects { + Head: Head; + Chest: Chest; + Stomach: Stomach; + LeftArm: LeftArm; + RightArm: RightArm; + LeftLeg: LeftLeg; + RightLeg: RightLeg; +} +export interface Head { +} +export interface Chest { +} +export interface Stomach { +} +export interface LeftArm { + Fracture?: number; +} +export interface RightArm { + Fracture?: number; +} +export interface LeftLeg { + Fracture?: number; +} +export interface RightLeg { + Fracture?: number; +} +export interface Inraid { + location: string; + character: string; +} +export interface Insurance { + scheduledTime: number; + traderId: string; + messageContent: MessageContent; + items: Item[]; +} +export interface MessageContent { + ragfair?: MessageContentRagfair; + text?: string; + templateId: string; + type: MessageType; + maxStorageTime?: number; + systemData?: MessageContentData; +} +export interface MessageContentRagfair { + offerId: string; + count: number; + handbookId: string; +} +export interface MessageContentData { + date: string; + time: string; + location: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/profile/IProfileChangeNicknameRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/profile/IProfileChangeNicknameRequestData.d.ts new file mode 100644 index 0000000..4a61196 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/profile/IProfileChangeNicknameRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IProfileChangeNicknameRequestData { + nickname: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/profile/IProfileChangeVoiceRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/profile/IProfileChangeVoiceRequestData.d.ts new file mode 100644 index 0000000..91058ce --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/profile/IProfileChangeVoiceRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IProfileChangeVoiceRequestData { + voice: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/profile/IProfileCreateRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/profile/IProfileCreateRequestData.d.ts new file mode 100644 index 0000000..93cc656 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/profile/IProfileCreateRequestData.d.ts @@ -0,0 +1,6 @@ +export interface IProfileCreateRequestData { + side: string; + nickname: string; + headId: string; + voiceId: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/profile/ISearchFriendRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/profile/ISearchFriendRequestData.d.ts new file mode 100644 index 0000000..e63e386 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/profile/ISearchFriendRequestData.d.ts @@ -0,0 +1,3 @@ +export interface ISearchFriendRequestData { + nickname: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/profile/ISearchFriendResponse.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/profile/ISearchFriendResponse.d.ts new file mode 100644 index 0000000..96d88b2 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/profile/ISearchFriendResponse.d.ts @@ -0,0 +1,9 @@ +export interface ISearchFriendResponse { + _id: string; + Info: Info; +} +export interface Info { + Nickname: string; + Side: string; + Level: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/profile/IValidateNicknameRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/profile/IValidateNicknameRequestData.d.ts new file mode 100644 index 0000000..9cca7e7 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/profile/IValidateNicknameRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IValidateNicknameRequestData { + nickname: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/quests/IAcceptQuestRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/quests/IAcceptQuestRequestData.d.ts new file mode 100644 index 0000000..0e4821a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/quests/IAcceptQuestRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IAcceptQuestRequestData { + Action: "QuestAccept"; + qid: string; + type: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/quests/ICompleteQuestRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/quests/ICompleteQuestRequestData.d.ts new file mode 100644 index 0000000..cc67404 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/quests/ICompleteQuestRequestData.d.ts @@ -0,0 +1,5 @@ +export interface ICompleteQuestRequestData { + Action: string; + qid: string; + removeExcessItems: boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/quests/IHandoverQuestRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/quests/IHandoverQuestRequestData.d.ts new file mode 100644 index 0000000..63f10a8 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/quests/IHandoverQuestRequestData.d.ts @@ -0,0 +1,10 @@ +export interface IHandoverQuestRequestData { + Action: "QuestHandover"; + qid: string; + conditionId: string; + items: Item[]; +} +export interface Item { + id: string; + count: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/quests/IListQuestsRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/quests/IListQuestsRequestData.d.ts new file mode 100644 index 0000000..91f0b8c --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/quests/IListQuestsRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IListQuestsRequestData { + completed: boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/quests/IRepeatableQuestChangeRequest.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/quests/IRepeatableQuestChangeRequest.d.ts new file mode 100644 index 0000000..015f58e --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/quests/IRepeatableQuestChangeRequest.d.ts @@ -0,0 +1,4 @@ +export interface IRepeatableQuestChangeRequest { + Action: "RepeatableQuestChange"; + qid: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IAddOfferRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IAddOfferRequestData.d.ts new file mode 100644 index 0000000..465ee02 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IAddOfferRequestData.d.ts @@ -0,0 +1,13 @@ +export interface IAddOfferRequestData { + Action: string; + sellInOnePiece: boolean; + items: string[]; + requirements: Requirement[]; +} +export interface Requirement { + _tpl: string; + count: number; + level: number; + side: number; + onlyFunctional: boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IExtendOfferRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IExtendOfferRequestData.d.ts new file mode 100644 index 0000000..2a4a876 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IExtendOfferRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IExtendOfferRequestData { + offerId: string; + renewalTime: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IGetItemPriceResult.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IGetItemPriceResult.d.ts new file mode 100644 index 0000000..676322a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IGetItemPriceResult.d.ts @@ -0,0 +1,5 @@ +export interface IGetItemPriceResult { + avg: number; + min: number; + max: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IGetMarketPriceRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IGetMarketPriceRequestData.d.ts new file mode 100644 index 0000000..00f8f17 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IGetMarketPriceRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetMarketPriceRequestData { + templateId: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IGetOffersResult.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IGetOffersResult.d.ts new file mode 100644 index 0000000..1c11422 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IGetOffersResult.d.ts @@ -0,0 +1,7 @@ +import { IRagfairOffer } from "./IRagfairOffer"; +export interface IGetOffersResult { + categories: Record; + offers: IRagfairOffer[]; + offersCount: number; + selectedCategory: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IRagfairOffer.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IRagfairOffer.d.ts new file mode 100644 index 0000000..63f655e --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IRagfairOffer.d.ts @@ -0,0 +1,42 @@ +import { MemberCategory } from "../../enums/MemberCategory"; +import { Item } from "../common/tables/IItem"; +export interface IRagfairOffer { + sellResult?: SellResult[]; + _id: string; + items: Item[]; + requirements: OfferRequirement[]; + root: string; + intId: number; + itemsCost: number; + requirementsCost: number; + startTime: number; + endTime: number; + sellInOnePiece: boolean; + name?: string; + shortName?: string; + loyaltyLevel: number; + locked: boolean; + unlimitedCount: boolean; + summaryCost: number; + user: IRagfairOfferUser; + notAvailable: boolean; + CurrentItemCount: number; + priority: boolean; +} +export interface OfferRequirement { + _tpl: string; + count: number; + onlyFunctional: boolean; +} +export interface IRagfairOfferUser { + id: string; + nickname: string; + rating: number; + memberType: MemberCategory; + avatar: string; + isRatingGrowing: boolean; +} +export interface SellResult { + sellTime: number; + amount: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IRemoveOfferRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IRemoveOfferRequestData.d.ts new file mode 100644 index 0000000..d926615 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/IRemoveOfferRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IRemoveOfferRequestData { + Action: string; + offerId: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/ISearchRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/ISearchRequestData.d.ts new file mode 100644 index 0000000..08e7fd3 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/ragfair/ISearchRequestData.d.ts @@ -0,0 +1,32 @@ +export interface ISearchRequestData { + page: number; + limit: number; + sortType: number; + sortDirection: number; + currency: number; + priceFrom: number; + priceTo: number; + quantityFrom: number; + quantityTo: number; + conditionFrom: number; + conditionTo: number; + oneHourExpiration: boolean; + removeBartering: boolean; + offerOwnerType: OfferOwnerType; + onlyFunctional: boolean; + updateOfferCount: boolean; + handbookId: string; + linkedSearchId: string; + neededSearchId: string; + buildItems: BuildItems; + buildCount: number; + tm: number; + reload: number; +} +export declare enum OfferOwnerType { + ANYOWNERTYPE = 0, + TRADEROWNERTYPE = 1, + PLAYEROWNERTYPE = 2 +} +export interface BuildItems { +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/repair/IBaseRepairActionDataRequest.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/repair/IBaseRepairActionDataRequest.d.ts new file mode 100644 index 0000000..e645fb3 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/repair/IBaseRepairActionDataRequest.d.ts @@ -0,0 +1,3 @@ +export interface IBaseRepairActionDataRequest { + Action: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/repair/IRepairActionDataRequest.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/repair/IRepairActionDataRequest.d.ts new file mode 100644 index 0000000..263d400 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/repair/IRepairActionDataRequest.d.ts @@ -0,0 +1,10 @@ +import { IBaseRepairActionDataRequest } from "./IBaseRepairActionDataRequest"; +export interface IRepairActionDataRequest extends IBaseRepairActionDataRequest { + Action: "Repair"; + repairKitsInfo: RepairKitsInfo[]; + target: string; +} +export interface RepairKitsInfo { + _id: string; + count: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/repair/ITraderRepairActionDataRequest.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/repair/ITraderRepairActionDataRequest.d.ts new file mode 100644 index 0000000..e3d469d --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/repair/ITraderRepairActionDataRequest.d.ts @@ -0,0 +1,10 @@ +import { IBaseRepairActionDataRequest } from "./IBaseRepairActionDataRequest"; +export interface ITraderRepairActionDataRequest extends IBaseRepairActionDataRequest { + Action: "TraderRepair"; + tid: string; + repairItems: RepairItem[]; +} +export interface RepairItem { + _id: string; + count: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/trade/IProcessBaseTradeRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/trade/IProcessBaseTradeRequestData.d.ts new file mode 100644 index 0000000..a9ef757 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/trade/IProcessBaseTradeRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IProcessBaseTradeRequestData { + Action: string; + type: string; + tid: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/trade/IProcessBuyTradeRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/trade/IProcessBuyTradeRequestData.d.ts new file mode 100644 index 0000000..a9e4c17 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/trade/IProcessBuyTradeRequestData.d.ts @@ -0,0 +1,14 @@ +import { IProcessBaseTradeRequestData } from "./IProcessBaseTradeRequestData"; +export interface IProcessBuyTradeRequestData extends IProcessBaseTradeRequestData { + Action: "buy_from_trader" | "TradingConfirm" | "RestoreHealth" | ""; + type: string; + tid: string; + item_id: string; + count: number; + scheme_id: number; + scheme_items: SchemeItem[]; +} +export interface SchemeItem { + id: string; + count: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/trade/IProcessRagfairTradeRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/trade/IProcessRagfairTradeRequestData.d.ts new file mode 100644 index 0000000..889dfd1 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/trade/IProcessRagfairTradeRequestData.d.ts @@ -0,0 +1,13 @@ +export interface IProcessRagfairTradeRequestData { + Action: string; + offers: Offer[]; +} +export interface Offer { + id: string; + count: number; + items: Item[]; +} +export interface Item { + id: string; + count: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/trade/IProcessSellTradeRequestData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/trade/IProcessSellTradeRequestData.d.ts new file mode 100644 index 0000000..f1d555f --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/trade/IProcessSellTradeRequestData.d.ts @@ -0,0 +1,12 @@ +import { IProcessBaseTradeRequestData } from "./IProcessBaseTradeRequestData"; +export interface IProcessSellTradeRequestData extends IProcessBaseTradeRequestData { + Action: "sell_to_trader"; + type: string; + tid: string; + items: Item[]; +} +export interface Item { + id: string; + count: number; + scheme_id: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/weather/IWeatherData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/weather/IWeatherData.d.ts new file mode 100644 index 0000000..ecc96ce --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/weather/IWeatherData.d.ts @@ -0,0 +1,20 @@ +export interface IWeatherData { + acceleration: number; + time: string; + date: string; + weather: IWeather; +} +export interface IWeather { + pressure: number; + temp: number; + fog: string; + rain_intensity: number; + rain: any; + wind_gustiness: number; + wind_direction: any; + wind_speed: number; + cloud: number; + time: string; + date: string; + timestamp: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/eft/wishlist/IWishlistActionData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/eft/wishlist/IWishlistActionData.d.ts new file mode 100644 index 0000000..9217864 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/eft/wishlist/IWishlistActionData.d.ts @@ -0,0 +1,4 @@ +export interface IWishlistActionData { + Action: string; + templateId: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/enums/BaseClasses.d.ts b/TypeScript/14AfterDBLoadHook/types/models/enums/BaseClasses.d.ts new file mode 100644 index 0000000..e733bca --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/enums/BaseClasses.d.ts @@ -0,0 +1,84 @@ +export declare enum BaseClasses { + WEAPON = "5422acb9af1c889c16000029", + ARMOR = "5448e54d4bdc2dcc718b4568", + VEST = "5448e5284bdc2dcb718b4567", + BACKPACK = "5448e53e4bdc2d60728b4567", + VISORS = "5448e5724bdc2ddf718b4568", + FOOD = "5448e8d04bdc2ddf718b4569", + DRINK = "5448e8d64bdc2dce718b4568", + BARTER_ITEM = "5448eb774bdc2d0a728b4567", + INFO = "5448ecbe4bdc2d60728b4568", + MEDKIT = "5448f39d4bdc2d0a728b4568", + DRUGS = "5448f3a14bdc2d27728b4569", + STIMULATOR = "5448f3a64bdc2d60728b456a", + MEDICAL = "5448f3ac4bdc2dce718b4569", + MEDICAL_SUPPLIES = "57864c8c245977548867e7f1", + MOD = "5448fe124bdc2da5018b4567", + FUNCTIONAL_MOD = "550aa4154bdc2dd8348b456b", + FUEL = "5d650c3e815116009f6201d2", + GEAR_MOD = "55802f3e4bdc2de7118b4584", + STOCK = "55818a594bdc2db9688b456a", + FOREGRIP = "55818af64bdc2d5b648b4570", + MASTER_MOD = "55802f4a4bdc2ddb688b4569", + MOUNT = "55818b224bdc2dde698b456f", + MUZZLE = "5448fe394bdc2d0d028b456c", + SIGHTS = "5448fe7a4bdc2d6f028b456b", + MEDS = "543be5664bdc2dd4348b4569", + MONEY = "543be5dd4bdc2deb348b4569", + KEY = "543be5e94bdc2df1348b4568", + KEY_MECHANICAL = "5c99f98d86f7745c314214b3", + KEYCARD = "5c164d2286f774194c5e69fa", + EQUIPMENT = "543be5f84bdc2dd4348b456a", + THROW_WEAPON = "543be6564bdc2df4348b4568", + FOOD_DRINK = "543be6674bdc2df1348b4569", + PISTOL = "5447b5cf4bdc2d65278b4567", + SMG = "5447b5e04bdc2d62278b4567", + ASSAULT_RIFLE = "5447b5f14bdc2d61278b4567", + ASSAULT_CARBINE = "5447b5fc4bdc2d87278b4567", + SHOTGUN = "5447b6094bdc2dc3278b4567", + MARKSMAN_RIFLE = "5447b6194bdc2d67278b4567", + SNIPER_RIFLE = "5447b6254bdc2dc3278b4568", + MACHINE_GUN = "5447bed64bdc2d97278b4568", + GRENADE_LAUNCHER = "5447bedf4bdc2d87278b4568", + SPECIAL_WEAPON = "5447bee84bdc2dc3278b4569", + SPEC_ITEM = "5447e0e74bdc2d3c308b4567", + KNIFE = "5447e1d04bdc2dff2f8b4567", + AMMO = "5485a8684bdc2da71d8b4567", + AMMO_BOX = "543be5cb4bdc2deb348b4568", + LOOT_CONTAINER = "566965d44bdc2d814c8b4571", + MOD_CONTAINER = "5448bf274bdc2dfc2f8b456a", + SEARCHABLE_ITEM = "566168634bdc2d144c8b456c", + STASH = "566abbb64bdc2d144c8b457d", + SORTING_TABLE = "6050cac987d3f925bf016837", + LOCKABLE_CONTAINER = "5671435f4bdc2d96058b4569", + SIMPLE_CONTAINER = "5795f317245977243854e041", + INVENTORY = "55d720f24bdc2d88028b456d", + STATIONARY_CONTAINER = "567583764bdc2d98058b456e", + POCKETS = "557596e64bdc2dc2118b4571", + ARMBAND = "5b3f15d486f77432d0509248", + DOG_TAG_USEC = "59f32c3b86f77472a31742f0", + DOG_TAG_BEAR = "59f32bb586f774757e1e8442", + JEWELRY = "57864a3d24597754843f8721", + ELECTRONICS = "57864a66245977548f04a81f", + BUILDING_MATERIAL = "57864ada245977548638de91", + TOOL = "57864bb7245977548b3b66c2", + HOUSEHOLD_GOODS = "57864c322459775490116fbf", + LUBRICANT = "57864e4c24597754843f8723", + BATTERY = "57864ee62459775490116fc1", + ASSAULT_SCOPE = "55818add4bdc2d5b648b456f", + REFLEX_SIGHT = "55818ad54bdc2ddc698b4569", + TACTICAL_COMBO = "55818b164bdc2ddc698b456c", + MAGAZINE = "5448bc234bdc2d3c308b4569", + LIGHT_LASER = "55818b0e4bdc2dde698b456e", + FLASH_HIDER = "550aa4bf4bdc2dd6348b456b", + COLLIMATOR = "55818ad54bdc2ddc698b4569", + COMPACT_COLLIMATOR = "55818acf4bdc2dde698b456b", + COMPENSATOR = "550aa4af4bdc2dd4348b456e", + OPTIC_SCOPE = "55818ae44bdc2dde698b456c", + SPECIAL_SCOPE = "55818aeb4bdc2ddc698b456a", + OTHER = "590c745b86f7743cc433c5f2", + SILENCER = "550aa4cd4bdc2dd8348b456c", + PORTABLE_RANGE_FINDER = "61605ddea09d851a0a0c1bbc", + ITEM = "54009119af1c881c07000029", + CYLINDER_MAGAZINE = "610720f290b75a49ff2e5e25" +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/enums/ConfigTypes.d.ts b/TypeScript/14AfterDBLoadHook/types/models/enums/ConfigTypes.d.ts new file mode 100644 index 0000000..1c49e62 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/enums/ConfigTypes.d.ts @@ -0,0 +1,19 @@ +export declare enum ConfigTypes { + AIRDROP = "aki-airdrop", + BOT = "aki-bot", + CORE = "aki-core", + HEALTH = "aki-health", + HIDEOUT = "aki-hideout", + HTTP = "aki-http", + IN_RAID = "aki-inraid", + INSURANCE = "aki-insurance", + INVENTORY = "aki-inventory", + LOCALE = "aki-locale", + LOCATION = "aki-location", + MATCH = "aki-match", + QUEST = "aki-quest", + RAGFAIR = "aki-ragfair", + REPAIR = "aki-repair", + TRADER = "aki-trader", + WEATHER = "aki-weather" +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/enums/ELocationName.d.ts b/TypeScript/14AfterDBLoadHook/types/models/enums/ELocationName.d.ts new file mode 100644 index 0000000..b56cc08 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/enums/ELocationName.d.ts @@ -0,0 +1,11 @@ +export declare enum ELocationName { + FACTORY_DAY = "factory4_day", + BIGMAP = "bigmap", + WOODS = "Woods", + SHORELINE = "Shoreline", + INTERCHANGE = "Interchange", + LIGHTHOUSE = "Lighthouse", + LABORATORY = "laboratory", + RESERVE = "RezervBase", + ANY = "any" +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/enums/EquipmentSlots.d.ts b/TypeScript/14AfterDBLoadHook/types/models/enums/EquipmentSlots.d.ts new file mode 100644 index 0000000..35c18ff --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/enums/EquipmentSlots.d.ts @@ -0,0 +1,16 @@ +export declare enum EquipmentSlots { + HEADWEAR = "Headwear", + EARPIECE = "Earpiece", + FACE_COVER = "FaceCover", + ARMOR_VEST = "ArmorVest", + EYEWEAR = "Eyewear", + ARM_BAND = "ArmBand", + TACTICAL_VEST = "TacticalVest", + POCKETS = "Pockets", + BACKPACK = "Backpack", + SECURED_CONTAINER = "SecuredContainer", + FIRST_PRIMARY_WEAPON = "FirstPrimaryWeapon", + SECOND_PRIMARY_WEAPON = "SecondPrimaryWeapon", + HOLSTER = "Holster", + SCABBARD = "Scabbard" +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/enums/HideoutAreas.d.ts b/TypeScript/14AfterDBLoadHook/types/models/enums/HideoutAreas.d.ts new file mode 100644 index 0000000..b44a20a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/enums/HideoutAreas.d.ts @@ -0,0 +1,25 @@ +export declare enum HideoutAreas { + NOTSET = -1, + VENTS = 0, + SECURITY = 1, + LAVATORY = 2, + STASH = 3, + GENERATOR = 4, + HEATING = 5, + WATER_COLLECTOR = 6, + MEDSTATION = 7, + NUTRITION_UNIT = 8, + REST_SPACE = 9, + WORKBENCH = 10, + INTEL_CENTER = 11, + SHOOTING_RANGE = 12, + LIBRARY = 13, + SCAV_CASE = 14, + ILLUMINATION = 15, + PLACE_OF_FAME = 16, + AIR_FILTERING = 17, + SOLAR_POWER = 18, + BOOZE_GENERATOR = 19, + BITCOIN_FARM = 20, + CHRISTMAS_TREE = 21 +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/enums/MemberCategory.d.ts b/TypeScript/14AfterDBLoadHook/types/models/enums/MemberCategory.d.ts new file mode 100644 index 0000000..3bd9a21 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/enums/MemberCategory.d.ts @@ -0,0 +1,13 @@ +export declare enum MemberCategory { + Default = 0, + Developer = 1, + UniqueId = 2, + Trader = 4, + Group = 8, + System = 16, + ChatModerator = 32, + ChatModeratorWithPermanentBan = 64, + UnitTest = 128, + Sherpa = 256, + Emissary = 512 +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/enums/MessageType.d.ts b/TypeScript/14AfterDBLoadHook/types/models/enums/MessageType.d.ts new file mode 100644 index 0000000..1b0c649 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/enums/MessageType.d.ts @@ -0,0 +1,16 @@ +export declare enum MessageType { + USER_MESSAGE = 1, + NPC_TRADER = 2, + AUCTION_MESSAGE = 3, + FLEAMARKET_MESSAGE = 4, + ADMIN_MESSAGE = 5, + GROUP_CHAT_MESSAGE = 6, + SYSTEM_MESSAGE = 7, + INSURANCE_RETURN = 8, + GLOBAL_CHAT = 9, + QUEST_START = 10, + QUEST_FAIL = 11, + QUEST_SUCCESS = 12, + MESSAGE_WITH_ITEMS = 13, + INITIAL_SUPPORT = 14 +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/enums/Money.d.ts b/TypeScript/14AfterDBLoadHook/types/models/enums/Money.d.ts new file mode 100644 index 0000000..0d39613 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/enums/Money.d.ts @@ -0,0 +1,5 @@ +export declare enum Money { + ROUBLES = "5449016a4bdc2d6f028b456f", + EUROS = "569668774bdc2da2298b4568", + DOLLARS = "5696686a4bdc2da3298b456a" +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/enums/QuestStatus.d.ts b/TypeScript/14AfterDBLoadHook/types/models/enums/QuestStatus.d.ts new file mode 100644 index 0000000..6335c73 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/enums/QuestStatus.d.ts @@ -0,0 +1,10 @@ +export declare enum QuestStatus { + Locked = 0, + AvailableForStart = 1, + Started = 2, + AvailableForFinish = 3, + Success = 4, + Fail = 5, + FailRestartable = 6, + MarkedAsFailed = 7 +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/enums/Traders.d.ts b/TypeScript/14AfterDBLoadHook/types/models/enums/Traders.d.ts new file mode 100644 index 0000000..163cd71 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/enums/Traders.d.ts @@ -0,0 +1,10 @@ +export declare enum Traders { + PRAPOR = "54cb50c76803fa8b248b4571", + THERAPIST = "54cb57776803fa99248b456e", + FENCE = "579dc571d53a0658a154fbec", + SKIER = "58330581ace78e27b8b10cee", + PEACEKEEPER = "5935c25fb3acc3127c3d8cd9", + MECHANIC = "5a7c2eca46aef81a7ca2145d", + RAGMAN = "5ac3b934156ae10c4430e83c", + JAEGER = "5c0647fdd443bc2504c2d371" +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/external/IAfterDBLoadMod.d.ts b/TypeScript/14AfterDBLoadHook/types/models/external/IAfterDBLoadMod.d.ts new file mode 100644 index 0000000..7f08b9e --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/external/IAfterDBLoadMod.d.ts @@ -0,0 +1,4 @@ +import { DependencyContainer } from "./tsyringe"; +export interface IAfterDBLoadMod { + loadAfterDbInit(container: DependencyContainer): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/external/mod.d.ts b/TypeScript/14AfterDBLoadHook/types/models/external/mod.d.ts new file mode 100644 index 0000000..47939e9 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/external/mod.d.ts @@ -0,0 +1,5 @@ +import { DependencyContainer } from "./tsyringe"; +export interface IMod { + load(container: DependencyContainer): void; + delayedLoad(container: DependencyContainer): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/external/tsyringe.d.ts b/TypeScript/14AfterDBLoadHook/types/models/external/tsyringe.d.ts new file mode 100644 index 0000000..56a7e58 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/external/tsyringe.d.ts @@ -0,0 +1,2 @@ +import type { DependencyContainer } from "tsyringe"; +export type { DependencyContainer }; diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/bindings/Route.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/bindings/Route.d.ts new file mode 100644 index 0000000..1b29d7d --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/bindings/Route.d.ts @@ -0,0 +1,3 @@ +export interface IRoute { + aki: any; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IBotCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IBotCallbacks.d.ts new file mode 100644 index 0000000..2c42813 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IBotCallbacks.d.ts @@ -0,0 +1,10 @@ +import { IGenerateBotsRequestData } from "../../eft/bot/IGenerateBotsRequestData"; +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IBotBase } from "../../eft/common/tables/IBotBase"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +export interface IBotCallbacks { + getBotLimit(url: string, info: IEmptyRequestData, sessionID: string): string; + getBotDifficulty(url: string, info: IEmptyRequestData, sessionID: string): string; + generateBots(url: string, info: IGenerateBotsRequestData, sessionID: string): IGetBodyResponseData; + getBotCap(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IBundleCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IBundleCallbacks.d.ts new file mode 100644 index 0000000..7e37c6e --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IBundleCallbacks.d.ts @@ -0,0 +1,5 @@ +export interface IBundleCallbacks { + sendBundle(sessionID: string, req: any, resp: any, body: any): any; + getBundles(url: string, info: any, sessionID: string): string; + getBundle(url: string, info: any, sessionID: string): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ICustomizationCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ICustomizationCallbacks.d.ts new file mode 100644 index 0000000..d10027f --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ICustomizationCallbacks.d.ts @@ -0,0 +1,12 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IBuyClothingRequestData } from "../../eft/customization/IBuyClothingRequestData"; +import { IWearClothingRequestData } from "../../eft/customization/IWearClothingRequestData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { ISuit } from "../../eft/common/tables/ITrader"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +export interface ICustomizationCallbacks { + getSuits(url: string, info: any, sessionID: string): IGetBodyResponseData; + getTraderSuits(url: string, info: any, sessionID: string): IGetBodyResponseData; + wearClothing(pmcData: IPmcData, body: IWearClothingRequestData, sessionID: string): IItemEventRouterResponse; + buyClothing(pmcData: IPmcData, body: IBuyClothingRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IDataCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IDataCallbacks.d.ts new file mode 100644 index 0000000..a098560 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IDataCallbacks.d.ts @@ -0,0 +1,26 @@ +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IGlobals } from "../../eft/common/IGlobals"; +import { IQuest } from "../../eft/common/tables/IQuest"; +import { IHideoutArea } from "../../eft/hideout/IHideoutArea"; +import { IHideoutProduction } from "../../eft/hideout/IHideoutProduction"; +import { IHideoutScavCase } from "../../eft/hideout/IHideoutScavCase"; +import { IHideoutSettingsBase } from "../../eft/hideout/IHideoutSettingsBase"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { ILanguageBase } from "../server/ILocaleBase"; +import { ISettingsBase } from "../server/ISettingsBase"; +export interface IDataCallbacks { + getSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getGlobals(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getTemplateItems(url: string, info: IEmptyRequestData, sessionID: string): string; + getTemplateHandbook(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getTemplateSuits(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getTemplateCharacter(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getTemplateQuests(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getHideoutSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getHideoutAreas(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + gethideoutProduction(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getHideoutScavcase(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getLocalesLanguages(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getLocalesMenu(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getLocalesGlobal(url: string, info: IEmptyRequestData, sessionID: string): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IDialogueCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IDialogueCallbacks.d.ts new file mode 100644 index 0000000..fe2115a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IDialogueCallbacks.d.ts @@ -0,0 +1,34 @@ +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { INullResponseData } from "../../eft/httpResponse/INullResponseData"; +import { IGetMailDialogViewRequestData } from "../../eft/dialog/IGetMailDialogViewRequestData"; +import { IGetMailDialogInfoRequestData } from "../../eft/dialog/IGetMailDialogInfoRequestData"; +import { IRemoveDialogRequestData } from "../../eft/dialog/IRemoveDialogRequestData"; +import { IGetMailDialogListRequestData } from "../../eft/dialog/IGetMailDialogListRequestData"; +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IFriendRequestData } from "../../eft/dialog/IFriendRequestData"; +import { IPinDialogRequestData } from "../../eft/dialog/IPinDialogRequestData"; +import { ISetDialogReadRequestData } from "../../eft/dialog/ISetDialogReadRequestData"; +import { IGetAllAttachmentsRequestData } from "../../eft/dialog/IGetAllAttachmentsRequestData"; +import { IGetChatServerListRequestData } from "../../eft/dialog/IGetChatServerListRequestData"; +import { IGetFriendListDataResponse } from "../../eft/dialog/IGetFriendListDataResponse"; +import { ISendMessageRequest } from "../../eft/dialog/ISendMessageRequest"; +import { IGetMailDialogViewResponseData } from "../../eft/dialog/IGetMailDialogViewResponseData"; +import { IGetAllAttachmentsResponse } from "../../eft/dialog/IGetAllAttachmentsResponse"; +import { DialogueInfo } from "../../eft/profile/IAkiProfile"; +export interface IDialogueCallbacks { + getFriendList(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getChatServerList(url: string, info: IGetChatServerListRequestData, sessionID: string): IGetBodyResponseData; + getMailDialogList(url: string, info: IGetMailDialogListRequestData, sessionID: string): IGetBodyResponseData; + getMailDialogView(url: string, info: IGetMailDialogViewRequestData, sessionID: string): IGetBodyResponseData; + getMailDialogInfo(url: string, info: IGetMailDialogInfoRequestData, sessionID: string): IGetBodyResponseData; + removeDialog(url: string, info: IRemoveDialogRequestData, sessionID: string): IGetBodyResponseData; + pinDialog(url: string, info: IPinDialogRequestData, sessionID: string): IGetBodyResponseData; + unpinDialog(url: string, info: IPinDialogRequestData, sessionID: string): IGetBodyResponseData; + setRead(url: string, info: ISetDialogReadRequestData, sessionID: string): IGetBodyResponseData; + getAllAttachments(url: string, info: IGetAllAttachmentsRequestData, sessionID: string): IGetBodyResponseData; + listOutbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + listInbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + friendRequest(url: string, request: IFriendRequestData, sessionID: string): INullResponseData; + sendMessage(url: string, request: ISendMessageRequest, sessionID: string): IGetBodyResponseData; + update(): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IGameCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IGameCallbacks.d.ts new file mode 100644 index 0000000..38ebc5f --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IGameCallbacks.d.ts @@ -0,0 +1,16 @@ +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IGameEmptyCrcRequestData } from "../../eft/game/IGameEmptyCrcRequestData"; +import { IVersionValidateRequestData } from "../../eft/game/IVersionValidateRequestData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { INullResponseData } from "../../eft/httpResponse/INullResponseData"; +import { IGameConfigResponse } from "../../eft/game/IGameConfigResponse"; +export interface IGameCallbacks { + versionValidate(url: string, info: IVersionValidateRequestData, sessionID: string): INullResponseData; + gameStart(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + gameLogout(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getGameConfig(url: string, info: IGameEmptyCrcRequestData, sessionID: string): IGetBodyResponseData; + getServer(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + validateGameVersion(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + gameKeepalive(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getVersion(url: string, info: IEmptyRequestData, sessionID: string): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IHandbookCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IHandbookCallbacks.d.ts new file mode 100644 index 0000000..5857a3e --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IHandbookCallbacks.d.ts @@ -0,0 +1,3 @@ +export interface IHandbookCallbacks { + load(): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IHealthCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IHealthCallbacks.d.ts new file mode 100644 index 0000000..d238c7a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IHealthCallbacks.d.ts @@ -0,0 +1,13 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IAkiProfile } from "../../eft/profile/IAkiProfile"; +import { ISyncHealthRequestData } from "../../eft/health/ISyncHealthRequestData"; +import { IOffraidEatRequestData } from "../../eft/health/IOffraidEatRequestData"; +import { IOffraidHealRequestData } from "../../eft/health/IOffraidHealRequestData"; +import { IHealthTreatmentRequestData } from "../../eft/health/IHealthTreatmentRequestData"; +export interface IHealthCallbacks { + onLoad(sessionID: string): IAkiProfile; + syncHealth(url: string, info: ISyncHealthRequestData, sessionID: string): any; + offraidEat(pmcData: IPmcData, body: IOffraidEatRequestData, sessionID: string): any; + offraidHeal(pmcData: IPmcData, body: IOffraidHealRequestData, sessionID: string): any; + healthTreatment(pmcData: IPmcData, info: IHealthTreatmentRequestData, sessionID: string): any; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IHideoutCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IHideoutCallbacks.d.ts new file mode 100644 index 0000000..e9badb6 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IHideoutCallbacks.d.ts @@ -0,0 +1,23 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IHideoutUpgradeRequestData } from "../../eft/hideout/IHideoutUpgradeRequestData"; +import { IHideoutUpgradeCompleteRequestData } from "../../eft/hideout/IHideoutUpgradeCompleteRequestData"; +import { IHideoutScavCaseStartRequestData } from "../../eft/hideout/IHideoutScavCaseStartRequestData"; +import { IHideoutPutItemInRequestData } from "../../eft/hideout/IHideoutPutItemInRequestData"; +import { IHideoutTakeItemOutRequestData } from "../../eft/hideout/IHideoutTakeItemOutRequestData"; +import { IHideoutToggleAreaRequestData } from "../../eft/hideout/IHideoutToggleAreaRequestData"; +import { IHideoutSingleProductionStartRequestData } from "../../eft/hideout/IHideoutSingleProductionStartRequestData"; +import { IHideoutContinousProductionStartRequestData } from "../../eft/hideout/IHideoutContinousProductionStartRequestData"; +import { IHideoutTakeProductionRequestData } from "../../eft/hideout/IHideoutTakeProductionRequestData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +export interface IHideoutCallbacks { + upgrade(pmcData: IPmcData, body: IHideoutUpgradeRequestData, sessionID: string): IItemEventRouterResponse; + upgradeComplete(pmcData: IPmcData, body: IHideoutUpgradeCompleteRequestData, sessionID: string): IItemEventRouterResponse; + putItemsInAreaSlots(pmcData: IPmcData, body: IHideoutPutItemInRequestData, sessionID: string): IItemEventRouterResponse; + takeItemsFromAreaSlots(pmcData: IPmcData, body: IHideoutTakeItemOutRequestData, sessionID: string): IItemEventRouterResponse; + toggleArea(pmcData: IPmcData, body: IHideoutToggleAreaRequestData, sessionID: string): IItemEventRouterResponse; + singleProductionStart(pmcData: IPmcData, body: IHideoutSingleProductionStartRequestData, sessionID: string): IItemEventRouterResponse; + scavCaseProductionStart(pmcData: IPmcData, body: IHideoutScavCaseStartRequestData, sessionID: string): IItemEventRouterResponse; + continuousProductionStart(pmcData: IPmcData, body: IHideoutContinousProductionStartRequestData, sessionID: string): IItemEventRouterResponse; + takeProduction(pmcData: IPmcData, body: IHideoutTakeProductionRequestData, sessionID: string): IItemEventRouterResponse; + update(timeSinceLastRun: number): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IHttpCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IHttpCallbacks.d.ts new file mode 100644 index 0000000..3ecd945 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IHttpCallbacks.d.ts @@ -0,0 +1,5 @@ +export interface IHttpCallbacks { + load(): void; + sendImage(sessionID: string, req: any, resp: any, body: any): void; + getImage(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IInraidCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IInraidCallbacks.d.ts new file mode 100644 index 0000000..e959b98 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IInraidCallbacks.d.ts @@ -0,0 +1,14 @@ +import { INullResponseData } from "../../eft/httpResponse/INullResponseData"; +import { IAkiProfile } from "../../eft/profile/IAkiProfile"; +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IRegisterPlayerRequestData } from "../../eft/inRaid/IRegisterPlayerRequestData"; +import { ISaveProgressRequestData } from "../../eft/inRaid/ISaveProgressRequestData"; +export interface IInraidCallbacks { + onLoad(sessionID: string): IAkiProfile; + registerPlayer(url: string, info: IRegisterPlayerRequestData, sessionID: string): INullResponseData; + saveProgress(url: string, info: ISaveProgressRequestData, sessionID: string): INullResponseData; + getRaidEndState(): string; + getRaidMenuSettings(url: string, info: IEmptyRequestData, sessionID: string): string; + getWeaponDurability(url: string, info: any, sessionID: string): string; + getAirdropConfig(url: string, info: any, sessionID: string): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IInsuranceCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IInsuranceCallbacks.d.ts new file mode 100644 index 0000000..082112d --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IInsuranceCallbacks.d.ts @@ -0,0 +1,10 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IAkiProfile } from "../../eft/profile/IAkiProfile"; +import { IGetInsuranceCostRequestData } from "../../eft/insurance/IGetInsuranceCostRequestData"; +import { IInsureRequestData } from "../../eft/insurance/IInsureRequestData"; +export interface IInsuranceCallbacks { + onLoad(sessionID: string): IAkiProfile; + getInsuranceCost(url: string, info: IGetInsuranceCostRequestData, sessionID: string): any; + insure(pmcData: IPmcData, body: IInsureRequestData, sessionID: string): any; + update(secondsSinceLastRun: number): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IInventoryCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IInventoryCallbacks.d.ts new file mode 100644 index 0000000..e53f7d0 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IInventoryCallbacks.d.ts @@ -0,0 +1,36 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IInventoryFoldRequestData } from "../../eft/inventory/IInventoryFoldRequestData"; +import { IInventorySplitRequestData } from "../../eft/inventory/IInventorySplitRequestData"; +import { IInventoryMoveRequestData } from "../../eft/inventory/IInventoryMoveRequestData"; +import { IInventoryMergeRequestData } from "../../eft/inventory/IInventoryMergeRequestData"; +import { IInventoryRemoveRequestData } from "../../eft/inventory/IInventoryRemoveRequestData"; +import { IInventoryTransferRequestData } from "../../eft/inventory/IInventoryTransferRequestData"; +import { IInventorySwapRequestData } from "../../eft/inventory/IInventorySwapRequestData"; +import { IInventoryToggleRequestData } from "../../eft/inventory/IInventoryToggleRequestData"; +import { IInventoryTagRequestData } from "../../eft/inventory/IInventoryTagRequestData"; +import { IInventoryBindRequestData } from "../../eft/inventory/IInventoryBindRequestData"; +import { IInventoryExamineRequestData } from "../../eft/inventory/IInventoryExamineRequestData"; +import { IInventoryReadEncyclopediaRequestData } from "../../eft/inventory/IInventoryReadEncyclopediaRequestData"; +import { IInventorySortRequestData } from "../../eft/inventory/IInventorySortRequestData"; +import { IInventoryCreateMarkerRequestData } from "../../eft/inventory/IInventoryCreateMarkerRequestData"; +import { IInventoryDeleteMarkerRequestData } from "../../eft/inventory/IInventoryDeleteMarkerRequestData"; +import { IInventoryEditMarkerRequestData } from "../../eft/inventory/IInventoryEditMarkerRequestData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +export interface IInventoryCallbacks { + moveItem(pmcData: IPmcData, body: IInventoryMoveRequestData, sessionID: string): IItemEventRouterResponse; + removeItem(pmcData: IPmcData, body: IInventoryRemoveRequestData, sessionID: string): IItemEventRouterResponse; + splitItem(pmcData: IPmcData, body: IInventorySplitRequestData, sessionID: string): IItemEventRouterResponse; + mergeItem(pmcData: IPmcData, body: IInventoryMergeRequestData, sessionID: string): IItemEventRouterResponse; + transferItem(pmcData: IPmcData, body: IInventoryTransferRequestData, sessionID: string): IItemEventRouterResponse; + swapItem(pmcData: IPmcData, body: IInventorySwapRequestData, sessionID: string): IItemEventRouterResponse; + foldItem(pmcData: IPmcData, body: IInventoryFoldRequestData, sessionID: string): IItemEventRouterResponse; + toggleItem(pmcData: IPmcData, body: IInventoryToggleRequestData, sessionID: string): IItemEventRouterResponse; + tagItem(pmcData: IPmcData, body: IInventoryTagRequestData, sessionID: string): IItemEventRouterResponse; + bindItem(pmcData: IPmcData, body: IInventoryBindRequestData, sessionID: string): IItemEventRouterResponse; + examineItem(pmcData: IPmcData, body: IInventoryExamineRequestData, sessionID: string): IItemEventRouterResponse; + readEncyclopedia(pmcData: IPmcData, body: IInventoryReadEncyclopediaRequestData, sessionID: string): IItemEventRouterResponse; + sortInventory(pmcData: IPmcData, body: IInventorySortRequestData, sessionID: string): IItemEventRouterResponse; + createMapMarker(pmcData: IPmcData, body: IInventoryCreateMarkerRequestData, sessionID: string): IItemEventRouterResponse; + deleteMapMarker(pmcData: IPmcData, body: IInventoryDeleteMarkerRequestData, sessionID: string): IItemEventRouterResponse; + editMapMarker(pmcData: IPmcData, body: IInventoryEditMarkerRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IItemEventCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IItemEventCallbacks.d.ts new file mode 100644 index 0000000..59db771 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IItemEventCallbacks.d.ts @@ -0,0 +1,6 @@ +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { IItemEventRouterRequest } from "../../eft/itemEvent/IItemEventRouterRequest"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +export interface IItemEventCallbacks { + handleEvents(url: string, info: IItemEventRouterRequest, sessionID: string): IGetBodyResponseData; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ILauncherCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ILauncherCallbacks.d.ts new file mode 100644 index 0000000..52dfec6 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ILauncherCallbacks.d.ts @@ -0,0 +1,20 @@ +import { IRegisterData } from "../../eft/launcher/IRegisterData"; +import { IRemoveProfileData } from "../../eft/launcher/IRemoveProfileData"; +import { ILoginRequestData } from "../../eft/launcher/ILoginRequestData"; +import { IChangeRequestData } from "../../eft/launcher/IChangeRequestData"; +import { IGetMiniProfileRequestData } from "../../eft/launcher/IGetMiniProfileRequestData.js"; +export interface ILauncherCallbacks { + connect(): string; + login(url: string, info: ILoginRequestData, sessionID: string): string; + register(url: string, info: IRegisterData, sessionID: string): "FAILED" | "OK"; + get(url: string, info: ILoginRequestData, sessionID: string): string; + changeUsername(url: string, info: IChangeRequestData, sessionID: string): "FAILED" | "OK"; + changePassword(url: string, info: IChangeRequestData, sessionID: string): "FAILED" | "OK"; + wipe(url: string, info: IRegisterData, sessionID: string): "FAILED" | "OK"; + getMiniProfile(url: string, info: IGetMiniProfileRequestData, sessionID: string): string; + getAllMiniProfiles(url: string, info: any, sessionID: string): string; + getServerVersion(): string; + ping(url: string, info: any, sessionID: string): string; + removeProfile(url: string, info: IRemoveProfileData, sessionID: string): string; + getCompatibleTarkovVersion(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ILocationCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ILocationCallbacks.d.ts new file mode 100644 index 0000000..71656a4 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ILocationCallbacks.d.ts @@ -0,0 +1,8 @@ +import { IGetLocationRequestData } from "../../eft/location/IGetLocationRequestData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { ILocationsGenerateAllResponse } from "../../eft/common/ILocationsSourceDestinationBase"; +import { ILocationBase } from "../../eft/common/ILocationBase"; +export interface ILocationCallbacks { + getLocationData(url: string, info: any, sessionID: string): IGetBodyResponseData; + getLocation(url: string, info: IGetLocationRequestData, sessionID: string): IGetBodyResponseData; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IMatchCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IMatchCallbacks.d.ts new file mode 100644 index 0000000..fcbf173 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IMatchCallbacks.d.ts @@ -0,0 +1,25 @@ +import { IStartOfflineRaidRequestData } from "../../eft/match/IStartOffineRaidRequestData"; +import { IEndOfflineRaidRequestData } from "../../eft/match/IEndOfflineRaidRequestData"; +import { INullResponseData } from "../../eft/httpResponse/INullResponseData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { IPmcData } from "../../eft/common/IPmcData"; +export interface IMatchCallbacks { + updatePing(url: string, info: any, sessionID: string): INullResponseData; + exitMatch(url: string, info: any, sessionID: string): INullResponseData; + exitToMenu(url: string, info: any, sessionID: string): INullResponseData; + startGroupSearch(url: string, info: any, sessionID: string): INullResponseData; + stopGroupSearch(url: string, info: any, sessionID: string): INullResponseData; + sendGroupInvite(url: string, info: any, sessionID: string): INullResponseData; + acceptGroupInvite(url: string, info: any, sessionID: string): INullResponseData; + cancelGroupInvite(url: string, info: any, sessionID: string): INullResponseData; + putMetrics(url: string, info: any, sessionID: string): INullResponseData; + getProfile(url: string, info: any, sessionID: string): IGetBodyResponseData; + serverAvailable(url: string, info: any, sessionID: string): IGetBodyResponseData | IGetBodyResponseData; + joinMatch(url: string, info: any, sessionID: string): IGetBodyResponseData; + getMetrics(url: string, info: any, sessionID: string): IGetBodyResponseData; + getGroupStatus(url: string, info: any, sessionID: string): IGetBodyResponseData; + createGroup(url: string, info: any, sessionID: string): IGetBodyResponseData; + deleteGroup(url: string, info: any, sessionID: string): INullResponseData; + startOfflineRaid(url: string, info: IStartOfflineRaidRequestData, sessionID: string): INullResponseData; + endOfflineRaid(url: string, info: IEndOfflineRaidRequestData, sessionID: string): INullResponseData; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IModCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IModCallbacks.d.ts new file mode 100644 index 0000000..1a4cd7b --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IModCallbacks.d.ts @@ -0,0 +1,6 @@ +export interface IModCallbacks { + load(): void; + sendBundle(sessionID: string, req: any, resp: any, body: any): void; + getBundles(url: string, info: any, sessionID: string): string; + getBundle(url: string, info: any, sessionID: string): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/INoteCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/INoteCallbacks.d.ts new file mode 100644 index 0000000..8453a4f --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/INoteCallbacks.d.ts @@ -0,0 +1,8 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { INoteActionData } from "../../eft/notes/INoteActionData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +export interface INoteCallbacks { + addNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse; + editNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse; + deleteNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/INotifierCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/INotifierCallbacks.d.ts new file mode 100644 index 0000000..a211310 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/INotifierCallbacks.d.ts @@ -0,0 +1,17 @@ +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { INotifierChannel } from "../../eft/notifier/INotifier"; +import { ISelectProfileRequestData } from "../../eft/notifier/ISelectProfileRequestData"; +export interface INotifierCallbacks { + /** + * If we don't have anything to send, it's ok to not send anything back + * because notification requests can be long-polling. In fact, we SHOULD wait + * until we actually have something to send because otherwise we'd spam the client + * and the client would abort the connection due to spam. + */ + sendNotification(sessionID: string, req: any, resp: any, data: any): void; + getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData; + createNotifierChannel(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + selectProfile(url: string, info: ISelectProfileRequestData, sessionID: string): IGetBodyResponseData; + notify(url: string, info: any, sessionID: string): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IPresetBuildCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IPresetBuildCallbacks.d.ts new file mode 100644 index 0000000..97c6487 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IPresetBuildCallbacks.d.ts @@ -0,0 +1,10 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IPresetBuildActionRequestData } from "../../eft/presetBuild/IPresetBuildActionRequestData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { WeaponBuild } from "../../eft/profile/IAkiProfile"; +export interface IPresetBuildCallbacks { + getHandbookUserlist(url: string, info: any, sessionID: string): IGetBodyResponseData; + saveBuild(pmcData: IPmcData, body: IPresetBuildActionRequestData, sessionID: string): IItemEventRouterResponse; + removeBuild(pmcData: IPmcData, body: IPresetBuildActionRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IPresetCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IPresetCallbacks.d.ts new file mode 100644 index 0000000..4169857 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IPresetCallbacks.d.ts @@ -0,0 +1,3 @@ +export interface IPresetCallbacks { + load(): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IProfileCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IProfileCallbacks.d.ts new file mode 100644 index 0000000..9d4d2df --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IProfileCallbacks.d.ts @@ -0,0 +1,21 @@ +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { INullResponseData } from "../../eft/httpResponse/INullResponseData"; +import { IProfileChangeNicknameRequestData } from "../../eft/profile/IProfileChangeNicknameRequestData"; +import { IProfileChangeVoiceRequestData } from "../../eft/profile/IProfileChangeVoiceRequestData"; +import { IProfileCreateRequestData } from "../../eft/profile/IProfileCreateRequestData"; +import { IValidateNicknameRequestData } from "../../eft/profile/IValidateNicknameRequestData"; +import { ISearchFriendRequestData } from "../../eft/profile/ISearchFriendRequestData"; +import { ISearchFriendResponse } from "../../eft/profile/ISearchFriendResponse"; +export interface IProfileCallbacks { + onLoad(sessionID: string): any; + createProfile(url: string, info: IProfileCreateRequestData, sessionID: string): IGetBodyResponseData; + getProfileData(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + regenerateScav(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + changeVoice(url: string, info: IProfileChangeVoiceRequestData, sessionID: string): INullResponseData; + changeNickname(url: string, info: IProfileChangeNicknameRequestData, sessionID: string): IGetBodyResponseData; + validateNickname(url: string, info: IValidateNicknameRequestData, sessionID: string): IGetBodyResponseData; + getReservedNickname(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getProfileStatus(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + searchFriend(url: string, info: ISearchFriendRequestData, sessionID: string): IGetBodyResponseData; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IQuestCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IQuestCallbacks.d.ts new file mode 100644 index 0000000..1c4d0c3 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IQuestCallbacks.d.ts @@ -0,0 +1,19 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IAcceptQuestRequestData } from "../../eft/quests/IAcceptQuestRequestData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { IListQuestsRequestData } from "../../eft/quests/IListQuestsRequestData"; +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { ICompleteQuestRequestData } from "../../eft/quests/ICompleteQuestRequestData"; +import { IHandoverQuestRequestData } from "../../eft/quests/IHandoverQuestRequestData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +import { IQuest } from "../../eft/common/tables/IQuest"; +import { IPmcDataRepeatableQuest } from "../../eft/common/tables/IRepeatableQuests"; +import { IRepeatableQuestChangeRequest } from "../../eft/quests/IRepeatableQuestChangeRequest"; +export interface IQuestCallbacks { + changeRepeatableQuest(pmcData: IPmcData, body: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse; + acceptQuest(pmcData: IPmcData, body: IAcceptQuestRequestData, sessionID: string): IItemEventRouterResponse; + completeQuest(pmcData: IPmcData, body: ICompleteQuestRequestData, sessionID: string): IItemEventRouterResponse; + handoverQuest(pmcData: IPmcData, body: IHandoverQuestRequestData, sessionID: string): IItemEventRouterResponse; + listQuests(url: string, info: IListQuestsRequestData, sessionID: string): IGetBodyResponseData; + activityPeriods(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IRagfairCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IRagfairCallbacks.d.ts new file mode 100644 index 0000000..9282bd4 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IRagfairCallbacks.d.ts @@ -0,0 +1,21 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { ISearchRequestData } from "../../eft/ragfair/ISearchRequestData"; +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IGetMarketPriceRequestData } from "../../eft/ragfair/IGetMarketPriceRequestData"; +import { IAddOfferRequestData } from "../../eft/ragfair/IAddOfferRequestData"; +import { IRemoveOfferRequestData } from "../../eft/ragfair/IRemoveOfferRequestData"; +import { IExtendOfferRequestData } from "../../eft/ragfair/IExtendOfferRequestData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +import { IGetItemPriceResult } from "../../eft/ragfair/IGetItemPriceResult"; +export interface IRagfairCallbacks { + load(): void; + search(url: string, info: ISearchRequestData, sessionID: string): IGetBodyResponseData; + getMarketPrice(url: string, info: IGetMarketPriceRequestData, sessionID: string): IGetBodyResponseData; + getItemPrices(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + addOffer(pmcData: IPmcData, info: IAddOfferRequestData, sessionID: string): IItemEventRouterResponse; + removeOffer(pmcData: IPmcData, info: IRemoveOfferRequestData, sessionID: string): IItemEventRouterResponse; + extendOffer(pmcData: IPmcData, info: IExtendOfferRequestData, sessionID: string): IItemEventRouterResponse; + update(timeSinceLastRun: number): boolean; + updatePlayer(timeSinceLastRun: number): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IRepairCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IRepairCallbacks.d.ts new file mode 100644 index 0000000..e8183c9 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IRepairCallbacks.d.ts @@ -0,0 +1,8 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +import { IRepairActionDataRequest } from "../../eft/repair/IRepairActionDataRequest"; +import { ITraderRepairActionDataRequest } from "../../eft/repair/ITraderRepairActionDataRequest"; +export interface IRepairCallbacks { + traderRepair(pmcData: IPmcData, body: ITraderRepairActionDataRequest, sessionID: string): IItemEventRouterResponse; + repair(pmcData: IPmcData, body: IRepairActionDataRequest, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ISaveCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ISaveCallbacks.d.ts new file mode 100644 index 0000000..1ad3b82 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ISaveCallbacks.d.ts @@ -0,0 +1,4 @@ +export interface ISaveCallbacks { + load(): void; + update(secondsSinceLastRun: number): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ITradeCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ITradeCallbacks.d.ts new file mode 100644 index 0000000..2f41d54 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ITradeCallbacks.d.ts @@ -0,0 +1,8 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IProcessRagfairTradeRequestData } from "../../eft/trade/IProcessRagfairTradeRequestData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +import { IProcessBaseTradeRequestData } from "../../eft/trade/IProcessBaseTradeRequestData"; +export interface ITradeCallbacks { + processTrade(pmcData: IPmcData, body: IProcessBaseTradeRequestData, sessionID: string): IItemEventRouterResponse; + processRagfairTrade(pmcData: IPmcData, body: IProcessRagfairTradeRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ITraderCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ITraderCallbacks.d.ts new file mode 100644 index 0000000..e0d7d06 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/ITraderCallbacks.d.ts @@ -0,0 +1,11 @@ +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IBarterScheme, ITraderAssort, ITraderBase } from "../../eft/common/tables/ITrader"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +export interface ITraderCallbacks { + load(): void; + getTraderSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getProfilePurchases(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData>; + getTrader(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getAssort(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + update(): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IWeatherCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IWeatherCallbacks.d.ts new file mode 100644 index 0000000..9ac72ae --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IWeatherCallbacks.d.ts @@ -0,0 +1,5 @@ +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +export interface IWeatherCallbacks { + getWeather(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IWishlistCallbacks.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IWishlistCallbacks.d.ts new file mode 100644 index 0000000..e5d519c --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/callbacks/IWishlistCallbacks.d.ts @@ -0,0 +1,7 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IWishlistActionData } from "../../eft/wishlist/IWishlistActionData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +export interface IWishlistCallbacks { + addToWishlist(pmcData: IPmcData, body: IWishlistActionData, sessionID: string): IItemEventRouterResponse; + removeFromWishlist(pmcData: IPmcData, body: IWishlistActionData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/config/IAirdropConfig.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IAirdropConfig.d.ts new file mode 100644 index 0000000..f4aee89 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IAirdropConfig.d.ts @@ -0,0 +1,20 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IAirdropConfig extends IBaseConfig { + kind: "aki-airdrop"; + airdropChancePercent: AirdropChancePercent; + airdropMinOpenHeight: number; + airdropMaxOpenHeight: number; + planeMinFlyHeight: number; + planeMaxFlyHeight: number; + planeVolume: number; + airdropMinStartTimeSeconds: number; + airdropMaxStartTimeSeconds: number; +} +export interface AirdropChancePercent { + bigmap: number; + woods: number; + lighthouse: number; + shoreline: number; + interchange: number; + reserve: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/config/IBaseConfig.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IBaseConfig.d.ts new file mode 100644 index 0000000..8b6ba88 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IBaseConfig.d.ts @@ -0,0 +1,3 @@ +export interface IBaseConfig { + kind: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/config/IBotConfig.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IBotConfig.d.ts new file mode 100644 index 0000000..5fb9d93 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IBotConfig.d.ts @@ -0,0 +1,114 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IBotConfig extends IBaseConfig { + kind: "aki-bot"; + presetBatch: PresetBatch; + bosses: string[]; + durability: Durability; + lootNValue: LootNvalue; + revenge: Record; + pmc: PmcConfig; + showTypeInNickname: boolean; + maxBotCap: number; +} +export interface PresetBatch { + assault: number; + bossBully: number; + bossGluhar: number; + bossKilla: number; + bossKojaniy: number; + bossSanitar: number; + bossTagilla: number; + bossTest: number; + cursedAssault: number; + followerBully: number; + followerGluharAssault: number; + followerGluharScout: number; + followerGluharSecurity: number; + followerGluharSnipe: number; + followerKojaniy: number; + followerSanitar: number; + followerTagilla: number; + followerTest: number; + marksman: number; + pmcBot: number; + sectantPriest: number; + sectantWarrior: number; + gifter: number; + test: number; + exUsec: number; +} +export interface Durability { + default: DefaultDurability; + pmc: PmcDurability; + boss: BotDurability; + follower: BotDurability; + assault: BotDurability; + cursedassault: BotDurability; + marksman: BotDurability; + pmcbot: BotDurability; + exusec: BotDurability; + sectantpriest: BotDurability; + sectantwarrior: BotDurability; +} +export interface DefaultDurability { + armor: DefaultArmor; + weapon: WeaponDurability; +} +export interface DefaultArmor { + maxDelta: number; + minDelta: number; +} +export interface WeaponDurability { + lowestMax: number; + highestMax: number; + maxDelta: number; + minDelta: number; +} +export interface PmcDurability { + armor: PmcDurabilityArmor; + weapon: WeaponDurability; +} +export interface PmcDurabilityArmor { + lowestMaxPercent: number; + highestMaxPercent: number; + maxDelta: number; + minDelta: number; +} +export interface BotDurability { + armor: ArmorDurability; + weapon: WeaponDurability; +} +export interface ArmorDurability { + maxDelta: number; + minDelta: number; +} +export interface LootNvalue { + scav: number; + pmc: number; +} +export interface PmcConfig { + dynamicLoot: DynamicLoot; + cartridgeBlacklist: string[]; + difficulty: string; + isUsec: number; + chanceSameSideIsHostilePercent: number; + usecType: string; + bearType: string; + maxBackpackLootTotalRub: number; + maxPocketLootTotalRub: number; + maxVestLootTotalRub: number; + types: Types; + enemyTypes: string[]; +} +export interface DynamicLoot { + whitelist: string[]; + blacklist: string[]; + spawnLimits: Record; + moneyStackLimits: Record; +} +export interface Types { + assault: number; + cursedAssault: number; + pmcBot: number; + exUsec: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/config/ICoreConfig.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/config/ICoreConfig.d.ts new file mode 100644 index 0000000..cfcaf61 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/config/ICoreConfig.d.ts @@ -0,0 +1,7 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface ICoreConfig extends IBaseConfig { + kind: "aki-core"; + akiVersion: string; + projectName: string; + compatibleTarkovVersion: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/config/IHealthConfig.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IHealthConfig.d.ts new file mode 100644 index 0000000..fdbf656 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IHealthConfig.d.ts @@ -0,0 +1,14 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IHealthConfig extends IBaseConfig { + kind: "aki-health"; + healthMultipliers: HealthMultipliers; + save: Save; +} +export interface HealthMultipliers { + death: number; + blacked: number; +} +export interface Save { + health: boolean; + effects: boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/config/IHideoutConfig.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IHideoutConfig.d.ts new file mode 100644 index 0000000..4658fa6 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IHideoutConfig.d.ts @@ -0,0 +1,27 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IHideoutConfig extends IBaseConfig { + kind: "aki-hideout"; + runIntervalSeconds: number; + scavCase: ScavCase; + fuelDrainRateMultipler: number; +} +export interface ScavCase { + rewardParentBlacklist: string[]; + rewardItemBlacklist: any[]; + ammoRewards: AmmoRewards; + moneyRewards: MoneyRewards; +} +export interface AmmoRewards { + giveMultipleOfTen: boolean; + minAmount: number; +} +export interface MoneyRewards { + enabled: boolean; + rub: MinMax; + usd: MinMax; + eur: MinMax; +} +export interface MinMax { + min: number; + max: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/config/IHttpConfig.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IHttpConfig.d.ts new file mode 100644 index 0000000..c41d035 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IHttpConfig.d.ts @@ -0,0 +1,6 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IHttpConfig extends IBaseConfig { + kind: "aki-http"; + ip: string; + port: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/config/IInRaidConfig.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IInRaidConfig.d.ts new file mode 100644 index 0000000..baaf083 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IInRaidConfig.d.ts @@ -0,0 +1,21 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IInRaidConfig extends IBaseConfig { + kind: "aki-inraid"; + MIAOnRaidEnd: boolean; + raidMenuSettings: RaidMenuSettings; + save: Save; + carExtracts: string[]; + carExtractBaseStandingGain: number; + scavExtractGain: number; +} +export interface RaidMenuSettings { + aiAmount: string; + aiDifficulty: string; + bossEnabled: boolean; + scavWars: boolean; + taggedAndCursed: boolean; +} +export interface Save { + loot: boolean; + durability: boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/config/IInsuranceConfig.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IInsuranceConfig.d.ts new file mode 100644 index 0000000..6e9c744 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IInsuranceConfig.d.ts @@ -0,0 +1,7 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IInsuranceConfig extends IBaseConfig { + kind: "aki-insurance"; + insuranceMultiplier: Record; + returnChancePercent: Record; + runIntervalSeconds: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/config/IInventoryConfig.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IInventoryConfig.d.ts new file mode 100644 index 0000000..ffffa41 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IInventoryConfig.d.ts @@ -0,0 +1,5 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IInventoryConfig extends IBaseConfig { + kind: "aki-inventory"; + newItemsMarkedFound: boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/config/ILocaleConfig.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/config/ILocaleConfig.d.ts new file mode 100644 index 0000000..fe9abf7 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/config/ILocaleConfig.d.ts @@ -0,0 +1,5 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface ILocaleConfig extends IBaseConfig { + kind: "aki-locale"; + desiredLocale: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/config/ILocationConfig.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/config/ILocationConfig.d.ts new file mode 100644 index 0000000..0551d57 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/config/ILocationConfig.d.ts @@ -0,0 +1,24 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface ILocationConfig extends IBaseConfig { + kind: "aki-location"; + looseLootMultiplier: LootMultiplier; + staticLootMultiplier: LootMultiplier; +} +export interface LootMultiplier { + bigmap: number; + develop: number; + factory4_day: number; + factory4_night: number; + interchange: number; + laboratory: number; + rezervbase: number; + shoreline: number; + woods: number; + hideout: number; + lighthouse: number; + privatearea: number; + suburbs: number; + tarkovstreets: number; + terminal: number; + town: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/config/IMatchConfig.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IMatchConfig.d.ts new file mode 100644 index 0000000..92c4d77 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IMatchConfig.d.ts @@ -0,0 +1,5 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IMatchConfig extends IBaseConfig { + kind: "aki-match"; + enabled: boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/config/IQuestConfig.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IQuestConfig.d.ts new file mode 100644 index 0000000..be4a97b --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IQuestConfig.d.ts @@ -0,0 +1,77 @@ +import { ELocationName } from "../../enums/ELocationName"; +import { IBaseConfig } from "./IBaseConfig"; +export interface IQuestConfig extends IBaseConfig { + kind: "aki-quest"; + redeemTime: number; + repeatableQuests: IRepeatableQuestConfig[]; +} +export interface IRepeatableQuestConfig { + name: string; + types: string[]; + resetTime: number; + numQuests: number; + minPlayerLevel: number; + rewardScaling: IRewardScaling; + locations: Record; + traderWhitelist: ITraderWhitelist[]; + questConfig: IQuestConfig; +} +export interface IRewardScaling { + levels: number[]; + experience: number[]; + roubles: number[]; + items: number[]; + reputation: number[]; + rewardSpread: number; +} +export interface ITraderWhitelist { + traderId: string; + questTypes: string[]; +} +export interface IQuestConfig { + Exploration: IExploration; + Completion: ICompletion; + Elimination: IElimination; +} +export interface IExploration { + maxExtracts: number; + specificExits: ISpecificExits; +} +export interface ISpecificExits { + probability: number; + passageRequirementWhitelist: string[]; +} +export interface ICompletion { + minRequestedAmount: number; + maxRequestedAmount: number; + minRequestedBulletAmount: number; + maxRequestedBulletAmount: number; + useWhitelist: boolean; + useBlacklist: boolean; +} +export interface IElimination { + targets: ITarget[]; + bodyPartProb: number; + bodyParts: IBodyPart[]; + specificLocationProb: number; + distLocationBlacklist: string[]; + distProb: number; + maxDist: number; + minDist: number; + maxKills: number; + minKills: number; +} +export interface IProbabilityObject { + key: string; + relativeProbability: number; + data?: any; +} +export interface ITarget extends IProbabilityObject { + data: IBossInfo; +} +export interface IBossInfo { + isBoss: boolean; +} +export interface IBodyPart extends IProbabilityObject { + data: string[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/config/IRagfairConfig.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IRagfairConfig.d.ts new file mode 100644 index 0000000..2d151ca --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IRagfairConfig.d.ts @@ -0,0 +1,59 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IRagfairConfig extends IBaseConfig { + kind: "aki-ragfair"; + runIntervalSeconds: number; + sell: Sell; + traders: Record; + dynamic: Dynamic; +} +export interface Sell { + fees: boolean; + chance: Chance; + time: Time; + reputation: Reputation; +} +export interface Chance { + base: number; + overprices: number; + underpriced: number; +} +export interface Time { + base: number; + min: number; + max: number; +} +export interface Reputation { + gain: number; + loss: number; +} +export interface Dynamic { + expiredOfferThreshold: number; + offerItemCount: MinMax; + price: MinMax; + endTimeSeconds: MinMax; + condition: Condition; + stackablePercent: MinMax; + nonStackableCount: MinMax; + rating: MinMax; + currencies: Record; + showAsSingleStack: string[]; + blacklist: Blacklist; +} +export interface MinMax { + min: number; + max: number; +} +export interface Condition { + conditionChance: number; + min: number; + max: number; +} +export interface Blacklist { + /** + * show/hide trader items that are blacklisted by bsg + */ + traderItems: boolean; + custom: string[]; + enableBsgList: boolean; + enableQuestList: boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IRepairConfig.d.ts new file mode 100644 index 0000000..4966eb5 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IRepairConfig.d.ts @@ -0,0 +1,5 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IRepairConfig extends IBaseConfig { + kind: "aki-repair"; + priceMultiplier: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/config/ITraderConfig.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/config/ITraderConfig.d.ts new file mode 100644 index 0000000..dab73e3 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/config/ITraderConfig.d.ts @@ -0,0 +1,15 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface ITraderConfig extends IBaseConfig { + kind: "aki-trader"; + updateTime: UpdateTime[]; + updateTimeDefault: number; + fenceAssortSize: number; + fenceMaxPresetsCount: number; + fencePresetPriceMult: number; + minDurabilityForSale: number; + fenceItemIgnoreList: string[]; +} +export interface UpdateTime { + traderId: string; + seconds: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/config/IWeatherConfig.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IWeatherConfig.d.ts new file mode 100644 index 0000000..c52cab3 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IWeatherConfig.d.ts @@ -0,0 +1,21 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IWeatherConfig extends IBaseConfig { + kind: "aki-weather"; + acceleration: number; + weather: Weather; +} +export interface Weather { + clouds: MinMax; + windSpeed: MinMax; + windDirection: MinMax; + windGustiness: MinMax; + rain: MinMax; + rainIntensity: MinMax; + fog: MinMax; + temp: MinMax; + pressure: MinMax; +} +export interface MinMax { + min: number; + max: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/controllers/IBotController.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/controllers/IBotController.d.ts new file mode 100644 index 0000000..010e208 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/controllers/IBotController.d.ts @@ -0,0 +1,13 @@ +import { IGenerateBotsRequestData } from "../../eft/bot/IGenerateBotsRequestData"; +import { IBotBase } from "../../eft/common/tables/IBotBase"; +import { IBotCore } from "../../eft/common/tables/IBotCore"; +import { Difficulty } from "../../eft/common/tables/IBotType"; +export interface IBotController { + getBotLimit(type: string): number; + getBotDifficulty(type: string, difficulty: string): IBotCore | Difficulty; + isBotPmc(botRole: string): boolean; + isBotBoss(botRole: string): boolean; + isBotFollower(botRole: string): boolean; + generate(info: IGenerateBotsRequestData, playerScav: boolean): IBotBase[]; + getBotCap(): number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/generators/IBotGenerator.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/generators/IBotGenerator.d.ts new file mode 100644 index 0000000..f3e8586 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/generators/IBotGenerator.d.ts @@ -0,0 +1,10 @@ +import { Inventory as PmcInventory } from "../../eft/common/IPmcData"; +import { Inventory, Chances, Generation } from "../../eft/common/tables/IBotType"; +export interface IBotGenerator { + generateInventory(templateInventory: Inventory, equipmentChances: Chances, generation: Generation, botRole: string, isPmc: boolean): PmcInventory; +} +export interface IExhaustableArray { + getRandomValue(): T; + getFirstValue(): T; + hasValues(): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/generators/ILocationGenerator.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/generators/ILocationGenerator.d.ts new file mode 100644 index 0000000..530ceca --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/generators/ILocationGenerator.d.ts @@ -0,0 +1,6 @@ +import { IStaticContainerProps, IStaticLootDetails, IStaticAmmoDetails, IStaticForcedProps } from "../../eft/common/tables/ILootBase"; +import { ILooseLoot, SpawnpointTemplate } from "../../eft/common/ILooseLoot"; +export interface ILocationGenerator { + generateContainerLoot(containerIn: IStaticContainerProps, staticForced: IStaticForcedProps[], staticLootDist: Record, staticAmmoDist: Record, locationName: string): IStaticContainerProps; + generateDynamicLoot(dynamicLootDist: ILooseLoot, staticAmmoDist: Record, locationName: string): SpawnpointTemplate[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/generators/IPMCLootGenerator.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/generators/IPMCLootGenerator.d.ts new file mode 100644 index 0000000..a9db89b --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/generators/IPMCLootGenerator.d.ts @@ -0,0 +1,4 @@ +export interface IPMCLootGenerator { + generatePMCPocketLootPool(): string[]; + generatePMCBackpackLootPool(): string[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/generators/IRagfairAssortGenerator.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/generators/IRagfairAssortGenerator.d.ts new file mode 100644 index 0000000..6670540 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/generators/IRagfairAssortGenerator.d.ts @@ -0,0 +1,4 @@ +import { Item } from "../../eft/common/tables/IItem"; +export interface IRagfairAssortGenerator { + getAssortItems(): Item[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/generators/IRagfairOfferGenerator.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/generators/IRagfairOfferGenerator.d.ts new file mode 100644 index 0000000..30b4be5 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/generators/IRagfairOfferGenerator.d.ts @@ -0,0 +1,6 @@ +import { IBarterScheme } from "../../eft/common/tables/ITrader"; +import { IRagfairOffer } from "../../eft/ragfair/IRagfairOffer"; +import { Item } from "../../eft/common/tables/IItem"; +export interface IRagfairOfferGenerator { + createOffer(userID: string, time: number, items: Item[], barterScheme: IBarterScheme[], loyalLevel: number, price: number, sellInOnePiece: boolean): IRagfairOffer; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/logging/LogBackgroundColor.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/logging/LogBackgroundColor.d.ts new file mode 100644 index 0000000..87e08a9 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/logging/LogBackgroundColor.d.ts @@ -0,0 +1,11 @@ +export declare enum LogBackgroundColor { + default = "", + black = "blackBG", + red = "redBG", + green = "greenBG", + yellow = "yellowBG", + blue = "blueBG", + magenta = "magentaBG", + cyan = "cyanBG", + white = "whiteBG" +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/logging/LogTextColor.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/logging/LogTextColor.d.ts new file mode 100644 index 0000000..7147ae3 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/logging/LogTextColor.d.ts @@ -0,0 +1,11 @@ +export declare enum LogTextColor { + black = "black", + red = "red", + green = "green", + yellow = "yellow", + blue = "blue", + magenta = "magenta", + cyan = "cyan", + white = "white", + gray = "" +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/logging/SptLogger.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/logging/SptLogger.d.ts new file mode 100644 index 0000000..ea1b3d8 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/logging/SptLogger.d.ts @@ -0,0 +1,7 @@ +export interface SptLogger { + error: (msg: string | Record) => void; + warn: (msg: string | Record) => void; + succ?: (msg: string | Record) => void; + info: (msg: string | Record) => void; + debug: (msg: string | Record) => void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/mod/IMod.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/mod/IMod.d.ts new file mode 100644 index 0000000..e6eec79 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/mod/IMod.d.ts @@ -0,0 +1,10 @@ +export declare namespace ModLoader { + interface IMod { + name: string; + version: string; + main?: string; + author?: string; + license: string; + dependencies?: Record; + } +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/mod/IModLoader.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/mod/IModLoader.d.ts new file mode 100644 index 0000000..40a5e19 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/mod/IModLoader.d.ts @@ -0,0 +1,7 @@ +import { DependencyContainer } from "tsyringe"; +export interface IModLoader { + load(container: DependencyContainer): void; + getBundles(local: boolean): string; + getBundle(key: string, local: boolean): void; + getModPath(mod: string): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/mod/IPackageJsonData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/mod/IPackageJsonData.d.ts new file mode 100644 index 0000000..99e4ef9 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/mod/IPackageJsonData.d.ts @@ -0,0 +1,12 @@ +export interface IPackageJsonData { + incompatibilities?: string[]; + dependencies?: string[]; + modDependencies?: Record; + name: string; + author: string; + version: string; + akiVersion: string; + licence: string; + main: string; + contributors: string[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/ragfair/IRagfairServerPrices.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/ragfair/IRagfairServerPrices.d.ts new file mode 100644 index 0000000..c7d246a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/ragfair/IRagfairServerPrices.d.ts @@ -0,0 +1,4 @@ +export interface IRagfairServerPrices { + static: Record; + dynamic: Record; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/server/IDatabaseTables.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/server/IDatabaseTables.d.ts new file mode 100644 index 0000000..e0d3fdd --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/server/IDatabaseTables.d.ts @@ -0,0 +1,52 @@ +import { IGlobals } from "../../eft/common/IGlobals"; +import { IBotBase } from "../../eft/common/tables/IBotBase"; +import { IBotCore } from "../../eft/common/tables/IBotCore"; +import { IBotType } from "../../eft/common/tables/IBotType"; +import { ICustomizationItem } from "../../eft/common/tables/ICustomizationItem"; +import { IHandbookBase } from "../../eft/common/tables/IHandbookBase"; +import { ILootBase } from "../../eft/common/tables/ILootBase"; +import { IMatch } from "../../eft/common/tables/IMatch"; +import { IQuest } from "../../eft/common/tables/IQuest"; +import { IRepeatableQuestDatabase } from "../../eft/common/tables/IRepeatableQuests"; +import { ITemplateItem } from "../../eft/common/tables/ITemplateItem"; +import { ITrader } from "../../eft/common/tables/ITrader"; +import { IHideoutArea } from "../../eft/hideout/IHideoutArea"; +import { IHideoutProduction } from "../../eft/hideout/IHideoutProduction"; +import { IHideoutScavCase } from "../../eft/hideout/IHideoutScavCase"; +import { IHideoutSettingsBase } from "../../eft/hideout/IHideoutSettingsBase"; +import { ILocaleBase } from "./ILocaleBase"; +import { ILocations } from "./ILocations"; +import { IServerBase } from "./IServerBase"; +import { ISettingsBase } from "./ISettingsBase"; +export interface IDatabaseTables { + bots?: { + types: Record; + base: IBotBase; + core: IBotCore; + }; + hideout?: { + areas: IHideoutArea[]; + production: IHideoutProduction[]; + scavcase: IHideoutScavCase[]; + settings: IHideoutSettingsBase; + }; + locales?: ILocaleBase; + locations?: ILocations; + loot?: ILootBase; + match?: IMatch; + templates?: { + character: string[]; + items: Record; + quests: IQuest[]; + repeatableQuests: IRepeatableQuestDatabase; + clientItems: Record; + handbook: IHandbookBase; + customization: Record; + profiles: any; + prices: Record; + }; + traders?: Record; + globals?: IGlobals; + server?: IServerBase; + settings?: ISettingsBase; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/server/IHttpServer.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/server/IHttpServer.d.ts new file mode 100644 index 0000000..c828399 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/server/IHttpServer.d.ts @@ -0,0 +1,12 @@ +/// +/// +import http, { ServerResponse } from "http"; +import { INotification } from "../../eft/notifier/INotifier"; +export interface IHttpServer { + load(): void; + getCookies(req: http.IncomingMessage): any; + sendFile(resp: ServerResponse, file: any): void; + isConnectionWebSocket(sessionID: string): boolean; + sendResponse(sessionID: string, req: any, resp: any, body: Buffer): void; + sendMessage(sessionID: string, output: INotification): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/server/ILocaleBase.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/server/ILocaleBase.d.ts new file mode 100644 index 0000000..8887c06 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/server/ILocaleBase.d.ts @@ -0,0 +1,61 @@ +export interface ILocaleBase { + global: Record; + menu: Record; + languages: ILanguageBase[]; +} +export interface ILocaleGlobalBase { + interface: Record; + enum: any[]; + mail: Record; + quest: Record; + preset: Record; + handbook: Record; + season: Record; + customization: Record; + repeatableQuest: Record; + templates: ILocaleTemplateBase; + locations: ILocaleLocationsBase; + banners: ILocaleBannersBase; + trading: ILocaleTradingBase; +} +export interface ILocaleQuest { + name: string; + description: string; + note: string; + failMessageText: string; + startedMessageText: string; + successMessageText: string; + conditions: Record; + location: string; +} +export interface ILocalePreset { + Name: string; +} +export interface ILocaleTemplateBase { + templates: Record; +} +export interface ILocaleLocationsBase { + locations: Record; +} +export interface ILocaleBannersBase { + locations: Record; +} +export interface ILocaleProps { + Name: string; + ShortName: string; + Description: string; +} +export interface ILocaleTradingBase { + locations: Record; +} +export interface ILocaleTradingProps { + FullName: string; + FirstName: string; + Nickname: string; + Location: string; + Description: string; +} +export interface ILanguageBase { + ShortName: string; + Name: string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/server/ILocations.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/server/ILocations.d.ts new file mode 100644 index 0000000..18f0262 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/server/ILocations.d.ts @@ -0,0 +1,26 @@ +import { ILocationBase } from "../../eft/common/ILocationBase"; +import { ILooseLoot } from "../../eft/common/ILooseLoot"; +import { ILocationsBase } from "../../eft/common/tables/ILocationsBase"; +export interface ILocations { + bigmap?: ILocationData; + develop?: ILocationData; + factory4_day?: ILocationData; + factory4_night?: ILocationData; + hideout?: ILocationData; + interchange?: ILocationData; + laboratory?: ILocationData; + lighthouse?: ILocationData; + privatearea?: ILocationData; + rezervbase?: ILocationData; + shoreline?: ILocationData; + suburbs?: ILocationData; + tarkovstreets?: ILocationData; + terminal?: ILocationData; + town?: ILocationData; + woods?: ILocationData; + base?: ILocationsBase; +} +export interface ILocationData { + base: ILocationBase; + looseLoot?: ILooseLoot; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/server/IServerBase.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/server/IServerBase.d.ts new file mode 100644 index 0000000..d033db3 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/server/IServerBase.d.ts @@ -0,0 +1,4 @@ +export interface IServerBase { + ip: string; + port: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/server/ISettingsBase.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/server/ISettingsBase.d.ts new file mode 100644 index 0000000..c067cda --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/server/ISettingsBase.d.ts @@ -0,0 +1,43 @@ +export interface ISettingsBase { + config: Config; +} +export interface Config { + AFKTimeoutSeconds: number; + AdditionalRandomDelaySeconds: number; + ClientSendRateLimit: number; + CriticalRetriesCount: number; + DefaultRetriesCount: number; + FirstCycleDelaySeconds: number; + FramerateLimit: FramerateLimit; + GroupStatusInterval: number; + KeepAliveInterval: number; + Mark502and504AsNonImportant: boolean; + MemoryManagementSettings: MemoryManagementSettings; + NVidiaHighlights: boolean; + NextCycleDelaySeconds: number; + PingServerResultSendInterval: number; + PingServersInterval: number; + ReleaseProfiler: ReleaseProfiler; + SecondCycleDelaySeconds: number; + TurnOffLogging: boolean; + WeaponOverlapDistanceCulling: number; + WebDiagnosticsEnabled: boolean; +} +export interface FramerateLimit { + MaxFramerateGameLimit: number; + MaxFramerateLobbyLimit: number; + MinFramerateLimit: number; +} +export interface MemoryManagementSettings { + AggressiveGC: boolean; + GigabytesRequiredToDisableGCDuringRaid: number; + HeapPreAllocationEnabled: boolean; + HeapPreAllocationMB: number; + OverrideRamCleanerSettings: boolean; + RamCleanerEnabled: boolean; +} +export interface ReleaseProfiler { + Enabled: boolean; + MaxRecords: number; + RecordTriggerValue: number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/services/CustomPreset.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/services/CustomPreset.d.ts new file mode 100644 index 0000000..f07382e --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/services/CustomPreset.d.ts @@ -0,0 +1,5 @@ +import { Preset } from "../../eft/common/IGlobals"; +export interface CustomPreset { + key: string; + preset: Preset; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/services/CustomTraderAssortData.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/services/CustomTraderAssortData.d.ts new file mode 100644 index 0000000..265a26a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/services/CustomTraderAssortData.d.ts @@ -0,0 +1,6 @@ +import { ITraderAssort } from "../../eft/common/tables/ITrader"; +import { Traders } from "../../enums/Traders"; +export interface CustomTraderAssortData { + traderId: Traders; + assorts: ITraderAssort; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/utils/IAsyncQueue.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/utils/IAsyncQueue.d.ts new file mode 100644 index 0000000..2be801a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/utils/IAsyncQueue.d.ts @@ -0,0 +1,4 @@ +import { ICommand } from "./ICommand"; +export interface IAsyncQueue { + waitFor(command: ICommand): Promise; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/utils/ICommand.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/utils/ICommand.d.ts new file mode 100644 index 0000000..696bb83 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/utils/ICommand.d.ts @@ -0,0 +1,4 @@ +export interface ICommand { + uuid: string; + cmd: () => Promise; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/utils/ILogger.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/utils/ILogger.d.ts new file mode 100644 index 0000000..2af3fac --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/utils/ILogger.d.ts @@ -0,0 +1,13 @@ +import { Daum } from "../../eft/itemEvent/IItemEventRouterRequest"; +import { LogBackgroundColor } from "../logging/LogBackgroundColor"; +import { LogTextColor } from "../logging/LogTextColor"; +export interface ILogger { + writeToLogFile(data: string | Daum): void; + log(data: string | Record | Error, color: string, backgroundColor?: string): void; + logWithColor(data: string | Record, textColor: LogTextColor, backgroundColor?: LogBackgroundColor): void; + error(data: string): void; + warning(data: string): void; + success(data: string): void; + info(data: string): void; + debug(data: string | Record, onlyShowInConsole?: boolean): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/utils/IUuidGenerator.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/utils/IUuidGenerator.d.ts new file mode 100644 index 0000000..3870469 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/utils/IUuidGenerator.d.ts @@ -0,0 +1,3 @@ +export interface IUUidGenerator { + generate(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/HttpRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/HttpRouter.d.ts new file mode 100644 index 0000000..f75a47d --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/HttpRouter.d.ts @@ -0,0 +1,16 @@ +/// +import { IncomingMessage } from "http"; +import { DynamicRouter, Router, StaticRouter } from "../di/Router"; +export declare class HttpRouter { + protected staticRouters: StaticRouter[]; + protected dynamicRoutes: DynamicRouter[]; + constructor(staticRouters: StaticRouter[], dynamicRoutes: DynamicRouter[]); + protected groupBy(list: T[], keyGetter: (t: T) => string): Map; + getResponse(req: IncomingMessage, info: any, sessionID: string): string; + protected handleRoute(url: string, info: any, sessionID: string, wrapper: ResponseWrapper, routers: Router[], dynamic: boolean): boolean; +} +declare class ResponseWrapper { + output: string; + constructor(output: string); +} +export {}; diff --git a/TypeScript/14AfterDBLoadHook/types/routers/ImageRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/ImageRouter.d.ts new file mode 100644 index 0000000..ab03977 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/ImageRouter.d.ts @@ -0,0 +1,13 @@ +/// +import { IncomingMessage, ServerResponse } from "http"; +import { IHttpServer } from "../models/spt/server/IHttpServer"; +import { ImageRouteService } from "../services/mod/image/ImageRouteService"; +import { VFS } from "../utils/VFS"; +export declare class ImageRouter { + protected vfs: VFS; + protected imageRouteService: ImageRouteService; + constructor(vfs: VFS, imageRouteService: ImageRouteService); + addRoute(key: string, valueToAdd: string): void; + sendImage(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any, httpServer: IHttpServer): void; + getImage(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/ItemEventRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/ItemEventRouter.d.ts new file mode 100644 index 0000000..b1ac5d9 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/ItemEventRouter.d.ts @@ -0,0 +1,17 @@ +import { JsonUtil } from "../utils/JsonUtil"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IItemEventRouterRequest } from "../models/eft/itemEvent/IItemEventRouterRequest"; +import { ProfileHelper } from "../helpers/ProfileHelper"; +import { ItemEventRouterDefinition } from "../di/Router"; +import { ILogger } from "../models/spt/utils/ILogger"; +export declare class ItemEventRouter { + protected logger: ILogger; + protected jsonUtil: JsonUtil; + protected profileHelper: ProfileHelper; + protected itemEventRouters: ItemEventRouterDefinition[]; + constructor(logger: ILogger, jsonUtil: JsonUtil, profileHelper: ProfileHelper, itemEventRouters: ItemEventRouterDefinition[]); + protected output: IItemEventRouterResponse; + handleEvents(info: IItemEventRouterRequest, sessionID: string): IItemEventRouterResponse; + getOutput(sessionID: string): IItemEventRouterResponse; + protected resetOutput(sessionID: string): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/dynamic/BotDynamicRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/dynamic/BotDynamicRouter.d.ts new file mode 100644 index 0000000..6d0ab4b --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/dynamic/BotDynamicRouter.d.ts @@ -0,0 +1,6 @@ +import { BotCallbacks } from "../../callbacks/BotCallbacks"; +import { DynamicRouter } from "../../di/Router"; +export declare class BotDynamicRouter extends DynamicRouter { + protected botCallbacks: BotCallbacks; + constructor(botCallbacks: BotCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/dynamic/BundleDynamicRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/dynamic/BundleDynamicRouter.d.ts new file mode 100644 index 0000000..a765410 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/dynamic/BundleDynamicRouter.d.ts @@ -0,0 +1,6 @@ +import { BundleCallbacks } from "../../callbacks/BundleCallbacks"; +import { DynamicRouter } from "../../di/Router"; +export declare class BundleDynamicRouter extends DynamicRouter { + protected bundleCallbacks: BundleCallbacks; + constructor(bundleCallbacks: BundleCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/dynamic/CustomizationDynamicRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/dynamic/CustomizationDynamicRouter.d.ts new file mode 100644 index 0000000..2db7cc5 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/dynamic/CustomizationDynamicRouter.d.ts @@ -0,0 +1,6 @@ +import { CustomizationCallbacks } from "../../callbacks/CustomizationCallbacks"; +import { DynamicRouter } from "../../di/Router"; +export declare class CustomizationDynamicRouter extends DynamicRouter { + protected customizationCallbacks: CustomizationCallbacks; + constructor(customizationCallbacks: CustomizationCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/dynamic/DataDynamicRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/dynamic/DataDynamicRouter.d.ts new file mode 100644 index 0000000..836ed8d --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/dynamic/DataDynamicRouter.d.ts @@ -0,0 +1,6 @@ +import { DataCallbacks } from "../../callbacks/DataCallbacks"; +import { DynamicRouter } from "../../di/Router"; +export declare class DataDynamicRouter extends DynamicRouter { + protected dataCallbacks: DataCallbacks; + constructor(dataCallbacks: DataCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/dynamic/HttpDynamicRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/dynamic/HttpDynamicRouter.d.ts new file mode 100644 index 0000000..a152b4d --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/dynamic/HttpDynamicRouter.d.ts @@ -0,0 +1,6 @@ +import { DynamicRouter } from "../../di/Router"; +import { ImageRouter } from "../ImageRouter"; +export declare class HttpDynamicRouter extends DynamicRouter { + protected imageRouter: ImageRouter; + constructor(imageRouter: ImageRouter); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/dynamic/InraidDynamicRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/dynamic/InraidDynamicRouter.d.ts new file mode 100644 index 0000000..7c0561f --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/dynamic/InraidDynamicRouter.d.ts @@ -0,0 +1,7 @@ +import { InraidCallbacks } from "../../callbacks/InraidCallbacks"; +import { DynamicRouter } from "../../di/Router"; +export declare class InraidDynamicRouter extends DynamicRouter { + protected inraidCallbacks: InraidCallbacks; + constructor(inraidCallbacks: InraidCallbacks); + getTopLevelRoute(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/dynamic/LocationDynamicRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/dynamic/LocationDynamicRouter.d.ts new file mode 100644 index 0000000..b8e5cdf --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/dynamic/LocationDynamicRouter.d.ts @@ -0,0 +1,7 @@ +import { LocationCallbacks } from "../../callbacks/LocationCallbacks"; +import { DynamicRouter } from "../../di/Router"; +export declare class LocationDynamicRouter extends DynamicRouter { + protected locationCallbacks: LocationCallbacks; + constructor(locationCallbacks: LocationCallbacks); + getTopLevelRoute(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/dynamic/NotifierDynamicRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/dynamic/NotifierDynamicRouter.d.ts new file mode 100644 index 0000000..83c60c5 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/dynamic/NotifierDynamicRouter.d.ts @@ -0,0 +1,6 @@ +import { NotifierCallbacks } from "../../callbacks/NotifierCallbacks"; +import { DynamicRouter } from "../../di/Router"; +export declare class NotifierDynamicRouter extends DynamicRouter { + protected notifierCallbacks: NotifierCallbacks; + constructor(notifierCallbacks: NotifierCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/dynamic/TraderDynamicRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/dynamic/TraderDynamicRouter.d.ts new file mode 100644 index 0000000..5b7cc1b --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/dynamic/TraderDynamicRouter.d.ts @@ -0,0 +1,6 @@ +import { TraderCallbacks } from "../../callbacks/TraderCallbacks"; +import { DynamicRouter } from "../../di/Router"; +export declare class TraderDynamicRouter extends DynamicRouter { + protected traderCallbacks: TraderCallbacks; + constructor(traderCallbacks: TraderCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/item_events/CustomizationItemEventRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/item_events/CustomizationItemEventRouter.d.ts new file mode 100644 index 0000000..e78445e --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/item_events/CustomizationItemEventRouter.d.ts @@ -0,0 +1,10 @@ +import { IPmcData } from "../../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../../models/eft/itemEvent/IItemEventRouterResponse"; +import { CustomizationCallbacks } from "../../callbacks/CustomizationCallbacks"; +import { HandledRoute, ItemEventRouterDefinition } from "../../di/Router"; +export declare class CustomizationItemEventRouter extends ItemEventRouterDefinition { + protected customizationCallbacks: CustomizationCallbacks; + constructor(customizationCallbacks: CustomizationCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/item_events/HealthItemEventRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/item_events/HealthItemEventRouter.d.ts new file mode 100644 index 0000000..99847c6 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/item_events/HealthItemEventRouter.d.ts @@ -0,0 +1,10 @@ +import { IPmcData } from "../../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../../models/eft/itemEvent/IItemEventRouterResponse"; +import { HealthCallbacks } from "../../callbacks/HealthCallbacks"; +import { HandledRoute, ItemEventRouterDefinition } from "../../di/Router"; +export declare class HealthItemEventRouter extends ItemEventRouterDefinition { + protected healthCallbacks: HealthCallbacks; + constructor(healthCallbacks: HealthCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/item_events/HideoutItemEventRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/item_events/HideoutItemEventRouter.d.ts new file mode 100644 index 0000000..e1e98af --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/item_events/HideoutItemEventRouter.d.ts @@ -0,0 +1,10 @@ +import { IPmcData } from "../../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../../models/eft/itemEvent/IItemEventRouterResponse"; +import { HideoutCallbacks } from "../../callbacks/HideoutCallbacks"; +import { HandledRoute, ItemEventRouterDefinition } from "../../di/Router"; +export declare class HideoutItemEventRouter extends ItemEventRouterDefinition { + protected hideoutCallbacks: HideoutCallbacks; + constructor(hideoutCallbacks: HideoutCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/item_events/InsuranceItemEventRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/item_events/InsuranceItemEventRouter.d.ts new file mode 100644 index 0000000..a922cc0 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/item_events/InsuranceItemEventRouter.d.ts @@ -0,0 +1,10 @@ +import { IPmcData } from "../../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../../models/eft/itemEvent/IItemEventRouterResponse"; +import { InsuranceCallbacks } from "../../callbacks/InsuranceCallbacks"; +import { HandledRoute, ItemEventRouterDefinition } from "../../di/Router"; +export declare class InsuranceItemEventRouter extends ItemEventRouterDefinition { + protected insuranceCallbacks: InsuranceCallbacks; + constructor(insuranceCallbacks: InsuranceCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/item_events/InventoryItemEventRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/item_events/InventoryItemEventRouter.d.ts new file mode 100644 index 0000000..2619bb9 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/item_events/InventoryItemEventRouter.d.ts @@ -0,0 +1,10 @@ +import { IPmcData } from "../../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../../models/eft/itemEvent/IItemEventRouterResponse"; +import { InventoryCallbacks } from "../../callbacks/InventoryCallbacks"; +import { HandledRoute, ItemEventRouterDefinition } from "../../di/Router"; +export declare class InventoryItemEventRouter extends ItemEventRouterDefinition { + protected inventoryCallbacks: InventoryCallbacks; + constructor(inventoryCallbacks: InventoryCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/item_events/NoteItemEventRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/item_events/NoteItemEventRouter.d.ts new file mode 100644 index 0000000..59bf598 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/item_events/NoteItemEventRouter.d.ts @@ -0,0 +1,10 @@ +import { IPmcData } from "../../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../../models/eft/itemEvent/IItemEventRouterResponse"; +import { NoteCallbacks } from "../../callbacks/NoteCallbacks"; +import { HandledRoute, ItemEventRouterDefinition } from "../../di/Router"; +export declare class NoteItemEventRouter extends ItemEventRouterDefinition { + protected noteCallbacks: NoteCallbacks; + constructor(noteCallbacks: NoteCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/item_events/PresetBuildItemEventRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/item_events/PresetBuildItemEventRouter.d.ts new file mode 100644 index 0000000..277db44 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/item_events/PresetBuildItemEventRouter.d.ts @@ -0,0 +1,10 @@ +import { IPmcData } from "../../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../../models/eft/itemEvent/IItemEventRouterResponse"; +import { PresetBuildCallbacks } from "../../callbacks/PresetBuildCallbacks"; +import { HandledRoute, ItemEventRouterDefinition } from "../../di/Router"; +export declare class PresetBuildItemEventRouter extends ItemEventRouterDefinition { + protected presetBuildCallbacks: PresetBuildCallbacks; + constructor(presetBuildCallbacks: PresetBuildCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/item_events/QuestItemEventRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/item_events/QuestItemEventRouter.d.ts new file mode 100644 index 0000000..a092aa6 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/item_events/QuestItemEventRouter.d.ts @@ -0,0 +1,12 @@ +import { QuestCallbacks } from "../../callbacks/QuestCallbacks"; +import { HandledRoute, ItemEventRouterDefinition } from "../../di/Router"; +import { IPmcData } from "../../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../../models/eft/itemEvent/IItemEventRouterResponse"; +import { ILogger } from "../../models/spt/utils/ILogger"; +export declare class QuestItemEventRouter extends ItemEventRouterDefinition { + protected logger: ILogger; + protected questCallbacks: QuestCallbacks; + constructor(logger: ILogger, questCallbacks: QuestCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(eventAction: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/item_events/RagfairItemEventRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/item_events/RagfairItemEventRouter.d.ts new file mode 100644 index 0000000..9216cc5 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/item_events/RagfairItemEventRouter.d.ts @@ -0,0 +1,10 @@ +import { IPmcData } from "../../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../../models/eft/itemEvent/IItemEventRouterResponse"; +import { RagfairCallbacks } from "../../callbacks/RagfairCallbacks"; +import { HandledRoute, ItemEventRouterDefinition } from "../../di/Router"; +export declare class RagfairItemEventRouter extends ItemEventRouterDefinition { + protected ragfairCallbacks: RagfairCallbacks; + constructor(ragfairCallbacks: RagfairCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/item_events/RepairItemEventRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/item_events/RepairItemEventRouter.d.ts new file mode 100644 index 0000000..5196ba9 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/item_events/RepairItemEventRouter.d.ts @@ -0,0 +1,10 @@ +import { IPmcData } from "../../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../../models/eft/itemEvent/IItemEventRouterResponse"; +import { RepairCallbacks } from "../../callbacks/RepairCallbacks"; +import { HandledRoute, ItemEventRouterDefinition } from "../../di/Router"; +export declare class RepairItemEventRouter extends ItemEventRouterDefinition { + protected repairCallbacks: RepairCallbacks; + constructor(repairCallbacks: RepairCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/item_events/TradeItemEventRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/item_events/TradeItemEventRouter.d.ts new file mode 100644 index 0000000..a43bb0a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/item_events/TradeItemEventRouter.d.ts @@ -0,0 +1,10 @@ +import { IPmcData } from "../../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../../models/eft/itemEvent/IItemEventRouterResponse"; +import { TradeCallbacks } from "../../callbacks/TradeCallbacks"; +import { HandledRoute, ItemEventRouterDefinition } from "../../di/Router"; +export declare class TradeItemEventRouter extends ItemEventRouterDefinition { + protected tradeCallbacks: TradeCallbacks; + constructor(tradeCallbacks: TradeCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/item_events/WishlistItemEventRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/item_events/WishlistItemEventRouter.d.ts new file mode 100644 index 0000000..38497fb --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/item_events/WishlistItemEventRouter.d.ts @@ -0,0 +1,10 @@ +import { IPmcData } from "../../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../../models/eft/itemEvent/IItemEventRouterResponse"; +import { WishlistCallbacks } from "../../callbacks/WishlistCallbacks"; +import { HandledRoute, ItemEventRouterDefinition } from "../../di/Router"; +export declare class WishlistItemEventRouter extends ItemEventRouterDefinition { + protected wishlistCallbacks: WishlistCallbacks; + constructor(wishlistCallbacks: WishlistCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/save_load/HealthSaveLoadRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/save_load/HealthSaveLoadRouter.d.ts new file mode 100644 index 0000000..114f5b2 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/save_load/HealthSaveLoadRouter.d.ts @@ -0,0 +1,7 @@ +import { IAkiProfile } from "../../models/eft/profile/IAkiProfile"; +import { HandledRoute, SaveLoadRouter } from "../../di/Router"; +export declare class HealthSaveLoadRouter extends SaveLoadRouter { + constructor(); + getHandledRoutes(): HandledRoute[]; + handleLoad(profile: IAkiProfile): IAkiProfile; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/save_load/InraidSaveLoadRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/save_load/InraidSaveLoadRouter.d.ts new file mode 100644 index 0000000..4c00b40 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/save_load/InraidSaveLoadRouter.d.ts @@ -0,0 +1,7 @@ +import { IAkiProfile } from "../../models/eft/profile/IAkiProfile"; +import { HandledRoute, SaveLoadRouter } from "../../di/Router"; +export declare class InraidSaveLoadRouter extends SaveLoadRouter { + constructor(); + getHandledRoutes(): HandledRoute[]; + handleLoad(profile: IAkiProfile): IAkiProfile; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/save_load/InsuranceSaveLoadRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/save_load/InsuranceSaveLoadRouter.d.ts new file mode 100644 index 0000000..30ce98e --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/save_load/InsuranceSaveLoadRouter.d.ts @@ -0,0 +1,7 @@ +import { IAkiProfile } from "../../models/eft/profile/IAkiProfile"; +import { HandledRoute, SaveLoadRouter } from "../../di/Router"; +export declare class InsuranceSaveLoadRouter extends SaveLoadRouter { + constructor(); + getHandledRoutes(): HandledRoute[]; + handleLoad(profile: IAkiProfile): IAkiProfile; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/save_load/ProfileSaveLoadRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/save_load/ProfileSaveLoadRouter.d.ts new file mode 100644 index 0000000..16c7619 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/save_load/ProfileSaveLoadRouter.d.ts @@ -0,0 +1,7 @@ +import { IAkiProfile } from "../../models/eft/profile/IAkiProfile"; +import { HandledRoute, SaveLoadRouter } from "../../di/Router"; +export declare class ProfileSaveLoadRouter extends SaveLoadRouter { + constructor(); + getHandledRoutes(): HandledRoute[]; + handleLoad(profile: IAkiProfile): IAkiProfile; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/serializers/BundleSerializer.d.ts new file mode 100644 index 0000000..912db83 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/serializers/BundleSerializer.d.ts @@ -0,0 +1,11 @@ +import { Serializer } from "../../di/Serializer"; +import { BundleLoader } from "../../loaders/BundleLoader"; +import { IHttpServer } from "../../models/spt/server/IHttpServer"; +import { ILogger } from "../../models/spt/utils/ILogger"; +export declare class BundleSerializer extends Serializer { + protected logger: ILogger; + protected bundleLoader: BundleLoader; + constructor(logger: ILogger, bundleLoader: BundleLoader); + serialize(sessionID: string, req: any, resp: any, body: any, httpServer: IHttpServer): void; + canHandle(route: string): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/serializers/ImageSerializer.d.ts new file mode 100644 index 0000000..0e040d4 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/serializers/ImageSerializer.d.ts @@ -0,0 +1,9 @@ +import { IHttpServer } from "../../models/spt/server/IHttpServer"; +import { Serializer } from "../../di/Serializer"; +import { ImageRouter } from "../ImageRouter"; +export declare class ImageSerializer extends Serializer { + protected imageRouter: ImageRouter; + constructor(imageRouter: ImageRouter); + serialize(sessionID: string, req: any, resp: any, body: any, httpServer: IHttpServer): void; + canHandle(route: string): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/serializers/NotifySerializer.d.ts new file mode 100644 index 0000000..1779ac9 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/serializers/NotifySerializer.d.ts @@ -0,0 +1,11 @@ +import { NotifierController } from "../../controllers/NotifierController"; +import { Serializer } from "../../di/Serializer"; +import { HttpServerHelper } from "../../helpers/HttpServerHelper"; +import { IHttpServer } from "../../models/spt/server/IHttpServer"; +export declare class NotifySerializer extends Serializer { + protected notifierController: NotifierController; + protected httpServerHelper: HttpServerHelper; + constructor(notifierController: NotifierController, httpServerHelper: HttpServerHelper); + serialize(_sessionID: string, req: any, resp: any, body: any, httpServer: IHttpServer): void; + canHandle(route: string): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/BotStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/BotStaticRouter.d.ts new file mode 100644 index 0000000..aeea220 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/BotStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { BotCallbacks } from "../../callbacks/BotCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class BotStaticRouter extends StaticRouter { + protected botCallbacks: BotCallbacks; + constructor(botCallbacks: BotCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/BundleStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/BundleStaticRouter.d.ts new file mode 100644 index 0000000..fb682fc --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/BundleStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { BundleCallbacks } from "../../callbacks/BundleCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class BundleStaticRouter extends StaticRouter { + protected bundleCallbacks: BundleCallbacks; + constructor(bundleCallbacks: BundleCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/CustomizationStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/CustomizationStaticRouter.d.ts new file mode 100644 index 0000000..21bc4bb --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/CustomizationStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { CustomizationCallbacks } from "../../callbacks/CustomizationCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class CustomizationStaticRouter extends StaticRouter { + protected customizationCallbacks: CustomizationCallbacks; + constructor(customizationCallbacks: CustomizationCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/DataStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/DataStaticRouter.d.ts new file mode 100644 index 0000000..84ba7fd --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/DataStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { DataCallbacks } from "../../callbacks/DataCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class DataStaticRouter extends StaticRouter { + protected dataCallbacks: DataCallbacks; + constructor(dataCallbacks: DataCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/DialogStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/DialogStaticRouter.d.ts new file mode 100644 index 0000000..546cdf1 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/DialogStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { DialogueCallbacks } from "../../callbacks/DialogueCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class DialogStaticRouter extends StaticRouter { + protected dialogueCallbacks: DialogueCallbacks; + constructor(dialogueCallbacks: DialogueCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/GameStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/GameStaticRouter.d.ts new file mode 100644 index 0000000..a9a7496 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/GameStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { GameCallbacks } from "../../callbacks/GameCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class GameStaticRouter extends StaticRouter { + protected gameCallbacks: GameCallbacks; + constructor(gameCallbacks: GameCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/HealthStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/HealthStaticRouter.d.ts new file mode 100644 index 0000000..863fd5e --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/HealthStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { HealthCallbacks } from "../../callbacks/HealthCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class HealthStaticRouter extends StaticRouter { + protected healthCallbacks: HealthCallbacks; + constructor(healthCallbacks: HealthCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/InraidStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/InraidStaticRouter.d.ts new file mode 100644 index 0000000..b29ad23 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/InraidStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { InraidCallbacks } from "../../callbacks/InraidCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class InraidStaticRouter extends StaticRouter { + protected inraidCallbacks: InraidCallbacks; + constructor(inraidCallbacks: InraidCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/InsuranceStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/InsuranceStaticRouter.d.ts new file mode 100644 index 0000000..5676499 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/InsuranceStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { InsuranceCallbacks } from "../../callbacks/InsuranceCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class InsuranceStaticRouter extends StaticRouter { + protected insuranceCallbacks: InsuranceCallbacks; + constructor(insuranceCallbacks: InsuranceCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/ItemEventStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/ItemEventStaticRouter.d.ts new file mode 100644 index 0000000..c30a7fc --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/ItemEventStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { ItemEventCallbacks } from "../../callbacks/ItemEventCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class ItemEventStaticRouter extends StaticRouter { + protected itemEventCallbacks: ItemEventCallbacks; + constructor(itemEventCallbacks: ItemEventCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/LauncherStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/LauncherStaticRouter.d.ts new file mode 100644 index 0000000..0040cbd --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/LauncherStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { LauncherCallbacks } from "../../callbacks/LauncherCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class LauncherStaticRouter extends StaticRouter { + protected launcherCallbacks: LauncherCallbacks; + constructor(launcherCallbacks: LauncherCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/LocationStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/LocationStaticRouter.d.ts new file mode 100644 index 0000000..b6de956 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/LocationStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { LocationCallbacks } from "../../callbacks/LocationCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class LocationStaticRouter extends StaticRouter { + protected locationCallbacks: LocationCallbacks; + constructor(locationCallbacks: LocationCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/MatchStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/MatchStaticRouter.d.ts new file mode 100644 index 0000000..9920a92 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/MatchStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { MatchCallbacks } from "../../callbacks/MatchCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class MatchStaticRouter extends StaticRouter { + protected matchCallbacks: MatchCallbacks; + constructor(matchCallbacks: MatchCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/NotifierStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/NotifierStaticRouter.d.ts new file mode 100644 index 0000000..8f1f5cc --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/NotifierStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { NotifierCallbacks } from "../../callbacks/NotifierCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class NotifierStaticRouter extends StaticRouter { + protected notifierCallbacks: NotifierCallbacks; + constructor(notifierCallbacks: NotifierCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/PresetStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/PresetStaticRouter.d.ts new file mode 100644 index 0000000..a9e7458 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/PresetStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { PresetBuildCallbacks } from "../../callbacks/PresetBuildCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class PresetStaticRouter extends StaticRouter { + protected presetCallbacks: PresetBuildCallbacks; + constructor(presetCallbacks: PresetBuildCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/ProfileStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/ProfileStaticRouter.d.ts new file mode 100644 index 0000000..83403f2 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/ProfileStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { ProfileCallbacks } from "../../callbacks/ProfileCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class ProfileStaticRouter extends StaticRouter { + protected profileCallbacks: ProfileCallbacks; + constructor(profileCallbacks: ProfileCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/QuestStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/QuestStaticRouter.d.ts new file mode 100644 index 0000000..8f7ca0a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/QuestStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { QuestCallbacks } from "../../callbacks/QuestCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class QuestStaticRouter extends StaticRouter { + protected questCallbacks: QuestCallbacks; + constructor(questCallbacks: QuestCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/RagfairStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/RagfairStaticRouter.d.ts new file mode 100644 index 0000000..6c41467 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/RagfairStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { RagfairCallbacks } from "../../callbacks/RagfairCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class RagfairStaticRouter extends StaticRouter { + protected ragfairCallbacks: RagfairCallbacks; + constructor(ragfairCallbacks: RagfairCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/TraderStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/TraderStaticRouter.d.ts new file mode 100644 index 0000000..41728a1 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/TraderStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { TraderCallbacks } from "../../callbacks/TraderCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class TraderStaticRouter extends StaticRouter { + protected traderCallbacks: TraderCallbacks; + constructor(traderCallbacks: TraderCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/routers/static/WeatherStaticRouter.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/static/WeatherStaticRouter.d.ts new file mode 100644 index 0000000..72ed851 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/routers/static/WeatherStaticRouter.d.ts @@ -0,0 +1,6 @@ +import { WeatherCallbacks } from "../../callbacks/WeatherCallbacks"; +import { StaticRouter } from "../../di/Router"; +export declare class WeatherStaticRouter extends StaticRouter { + protected weatherCallbacks: WeatherCallbacks; + constructor(weatherCallbacks: WeatherCallbacks); +} diff --git a/TypeScript/14AfterDBLoadHook/types/servers/ConfigServer.d.ts b/TypeScript/14AfterDBLoadHook/types/servers/ConfigServer.d.ts new file mode 100644 index 0000000..a079be8 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/servers/ConfigServer.d.ts @@ -0,0 +1,14 @@ +import { JsonUtil } from "../utils/JsonUtil"; +import { VFS } from "../utils/VFS"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigTypes } from "../models/enums/ConfigTypes"; +export declare class ConfigServer { + protected logger: ILogger; + protected vfs: VFS; + protected jsonUtil: JsonUtil; + protected configs: Record; + constructor(logger: ILogger, vfs: VFS, jsonUtil: JsonUtil); + getConfig(configType: ConfigTypes): T; + getConfigByString(configType: string): T; + initialize(): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/servers/DatabaseServer.d.ts b/TypeScript/14AfterDBLoadHook/types/servers/DatabaseServer.d.ts new file mode 100644 index 0000000..aa152d0 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/servers/DatabaseServer.d.ts @@ -0,0 +1,6 @@ +import { IDatabaseTables } from "../models/spt/server/IDatabaseTables"; +export declare class DatabaseServer { + protected tableData: IDatabaseTables; + getTables(): IDatabaseTables; + setTables(any: any): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/servers/HttpServer.d.ts b/TypeScript/14AfterDBLoadHook/types/servers/HttpServer.d.ts new file mode 100644 index 0000000..5234966 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/servers/HttpServer.d.ts @@ -0,0 +1,49 @@ +/// +/// +import http, { ServerResponse } from "http"; +import { Serializer } from "../di/Serializer"; +import { HttpServerHelper } from "../helpers/HttpServerHelper"; +import { NotifierHelper } from "../helpers/NotifierHelper"; +import { INotification } from "../models/eft/notifier/INotifier"; +import { IHttpConfig } from "../models/spt/config/IHttpConfig"; +import { IHttpServer } from "../models/spt/server/IHttpServer"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { HttpRouter } from "../routers/HttpRouter"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +import { JsonUtil } from "../utils/JsonUtil"; +import { RandomUtil } from "../utils/RandomUtil"; +import { ConfigServer } from "./ConfigServer"; +import { DatabaseServer } from "./DatabaseServer"; +export declare class HttpServer implements IHttpServer { + protected httpRouter: HttpRouter; + protected logger: ILogger; + protected randomUtil: RandomUtil; + protected jsonUtil: JsonUtil; + protected httpResponse: HttpResponseUtil; + protected databaseServer: DatabaseServer; + protected notifierHelper: NotifierHelper; + protected httpServerHelper: HttpServerHelper; + protected serializers: Serializer[]; + protected configServer: ConfigServer; + constructor(httpRouter: HttpRouter, // TODO: delay required + logger: ILogger, randomUtil: RandomUtil, jsonUtil: JsonUtil, httpResponse: HttpResponseUtil, databaseServer: DatabaseServer, notifierHelper: NotifierHelper, httpServerHelper: HttpServerHelper, serializers: Serializer[], configServer: ConfigServer); + protected buffers: {}; + protected onReceive: {}; + protected onRespond: {}; + protected httpConfig: IHttpConfig; + protected webSockets: {}; + protected websocketPingHandler: any; + getCookies(req: http.IncomingMessage): any; + resetBuffer(sessionID: string): void; + putInBuffer(sessionID: any, data: any, bufLength: number): boolean; + getFromBuffer(sessionID: string): any; + sendZlibJson(resp: any, output: any, sessionID: string): void; + sendMessage(sessionID: string, output: INotification): void; + sendFile(resp: ServerResponse, file: any): void; + isConnectionWebSocket(sessionID: string): boolean; + sendResponse(sessionID: string, req: any, resp: any, body: Buffer): void; + handleRequest(req: http.IncomingMessage, resp: http.ServerResponse): void; + load(): void; + protected getRandomisedMessage(): string; + wsOnConnection(ws: any, req: any): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/servers/RagfairServer.d.ts b/TypeScript/14AfterDBLoadHook/types/servers/RagfairServer.d.ts new file mode 100644 index 0000000..60c92b5 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/servers/RagfairServer.d.ts @@ -0,0 +1,31 @@ +import { RagfairOfferGenerator } from "../generators/RagfairOfferGenerator"; +import { IRagfairOffer } from "../models/eft/ragfair/IRagfairOffer"; +import { IRagfairConfig } from "../models/spt/config/IRagfairConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { RagfairCategoriesService } from "../services/RagfairCategoriesService"; +import { RagfairOfferService } from "../services/RagfairOfferService"; +import { RagfairRequiredItemsService } from "../services/RagfairRequiredItemsService"; +import { ConfigServer } from "./ConfigServer"; +export declare class RagfairServer { + protected logger: ILogger; + protected ragfairOfferGenerator: RagfairOfferGenerator; + protected ragfairOfferService: RagfairOfferService; + protected ragfairCategoriesService: RagfairCategoriesService; + protected ragfairRequiredItemsService: RagfairRequiredItemsService; + protected configServer: ConfigServer; + protected ragfairConfig: IRagfairConfig; + constructor(logger: ILogger, ragfairOfferGenerator: RagfairOfferGenerator, ragfairOfferService: RagfairOfferService, ragfairCategoriesService: RagfairCategoriesService, ragfairRequiredItemsService: RagfairRequiredItemsService, configServer: ConfigServer); + load(): void; + update(): void; + getCategories(): Record; + /** + * Disable/Hide an offer from flea + * @param offerId + */ + hideOffer(offerId: string): void; + getOffer(offerID: string): IRagfairOffer; + getOffers(): IRagfairOffer[]; + removeOfferStack(offerID: string, amount: number): void; + doesOfferExist(offerId: string): boolean; + addPlayerOffers(): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/servers/SaveServer.d.ts b/TypeScript/14AfterDBLoadHook/types/servers/SaveServer.d.ts new file mode 100644 index 0000000..cb28f49 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/servers/SaveServer.d.ts @@ -0,0 +1,28 @@ +import { IAkiProfile, Info } from "../models/eft/profile/IAkiProfile"; +import { HashUtil } from "../utils/HashUtil"; +import { JsonUtil } from "../utils/JsonUtil"; +import { VFS } from "../utils/VFS"; +import { SaveLoadRouter } from "../di/Router"; +import { ILogger } from "../models/spt/utils/ILogger"; +export declare class SaveServer { + protected vfs: VFS; + protected saveLoadRouters: SaveLoadRouter[]; + protected jsonUtil: JsonUtil; + protected hashUtil: HashUtil; + protected logger: ILogger; + protected profileFilepath: string; + protected profiles: {}; + protected onSave: {}; + protected saveMd5: {}; + constructor(vfs: VFS, saveLoadRouters: SaveLoadRouter[], jsonUtil: JsonUtil, hashUtil: HashUtil, logger: ILogger); + load(): void; + save(): void; + getProfile(sessionId: string): IAkiProfile; + getProfiles(): Record; + deleteProfileById(sessionID: string): boolean; + createProfile(profileInfo: Info): void; + addProfile(profileDetails: IAkiProfile): void; + loadProfile(sessionID: string): void; + saveProfile(sessionID: string): void; + removeProfile(sessionID: string): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/CustomHandbookItemService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/CustomHandbookItemService.d.ts new file mode 100644 index 0000000..1c25b99 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/CustomHandbookItemService.d.ts @@ -0,0 +1,13 @@ +import { HandbookItem } from "../models/eft/common/tables/IHandbookBase"; +import { ILogger } from "../models/spt/utils/ILogger"; +export declare class CustomHandbookItemService { + protected logger: ILogger; + private customHandbookItems; + constructor(logger: ILogger); + /** + * Add handbook item + * @param handbookItem item to add + */ + add(handbookItem: HandbookItem): void; + get(): HandbookItem[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/CustomItemService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/CustomItemService.d.ts new file mode 100644 index 0000000..d5806b4 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/CustomItemService.d.ts @@ -0,0 +1,11 @@ +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { DatabaseServer } from "../servers/DatabaseServer"; +export declare class CustomItemService { + protected logger: ILogger; + protected databaseServer: DatabaseServer; + private customItems; + constructor(logger: ILogger, databaseServer: DatabaseServer); + add(itemToAdd: ITemplateItem): void; + get(): ITemplateItem[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/CustomPresetService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/CustomPresetService.d.ts new file mode 100644 index 0000000..84a8baf --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/CustomPresetService.d.ts @@ -0,0 +1,19 @@ +import { Preset } from "../models/eft/common/IGlobals"; +import { CustomPreset } from "../models/spt/services/CustomPreset"; +import { ILogger } from "../models/spt/utils/ILogger"; +export declare class CustomPresetService { + protected logger: ILogger; + private customPresets; + constructor(logger: ILogger); + /** + * Add custom preset to internal array + * @param presetKey presets key + * @param presetToAdd preset item to add + */ + add(presetKey: string, presetToAdd: Preset): void; + /** + * Get all custom presets + * @returns + */ + get(): CustomPreset[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/CustomTraderAssortService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/CustomTraderAssortService.d.ts new file mode 100644 index 0000000..e63d67b --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/CustomTraderAssortService.d.ts @@ -0,0 +1,14 @@ +import { CustomTraderAssortData } from "../models/spt/services/CustomTraderAssortData"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { DatabaseServer } from "../servers/DatabaseServer"; +export declare class CustomTraderAssortService { + protected logger: ILogger; + protected databaseServer: DatabaseServer; + private customAssorts; + constructor(logger: ILogger, databaseServer: DatabaseServer); + /** + * Add assorts to a specific trader + */ + add(assortsToAdd: CustomTraderAssortData): void; + get(): CustomTraderAssortData[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/FenceService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/FenceService.d.ts new file mode 100644 index 0000000..79058c6 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/FenceService.d.ts @@ -0,0 +1,39 @@ +import { HandbookHelper } from "../helpers/HandbookHelper"; +import { ItemHelper } from "../helpers/ItemHelper"; +import { PresetHelper } from "../helpers/PresetHelper"; +import { FenceLevel } from "../models/eft/common/IGlobals"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { ITraderAssort } from "../models/eft/common/tables/ITrader"; +import { ITraderConfig } from "../models/spt/config/ITraderConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { HashUtil } from "../utils/HashUtil"; +import { JsonUtil } from "../utils/JsonUtil"; +import { RandomUtil } from "../utils/RandomUtil"; +export declare class FenceService { + protected logger: ILogger; + protected hashUtil: HashUtil; + protected jsonUtil: JsonUtil; + protected randomUtil: RandomUtil; + protected databaseServer: DatabaseServer; + protected handbookHelper: HandbookHelper; + protected itemHelper: ItemHelper; + protected presetHelper: PresetHelper; + protected configServer: ConfigServer; + protected fenceAssort: ITraderAssort; + protected traderConfig: ITraderConfig; + constructor(logger: ILogger, hashUtil: HashUtil, jsonUtil: JsonUtil, randomUtil: RandomUtil, databaseServer: DatabaseServer, handbookHelper: HandbookHelper, itemHelper: ItemHelper, presetHelper: PresetHelper, configServer: ConfigServer); + protected setFenceAssort(fenceAssort: ITraderAssort): void; + getFenceAssorts(): ITraderAssort; + hasExpiredCache(refreshAssort: boolean): boolean; + generateFenceAssortCache(pmcData: IPmcData): void; + /** + * Get the fence level the passed in profile has + * @param pmcData Player profile + * @returns FenceLevel + */ + getFenceInfo(pmcData: IPmcData): FenceLevel; + removeFenceOffer(assortIdToRemove: string): void; + updateFenceOffers(pmcData: IPmcData): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/HashCacheService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/HashCacheService.d.ts new file mode 100644 index 0000000..5320f28 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/HashCacheService.d.ts @@ -0,0 +1,19 @@ +import { ILogger } from "../models/spt/utils/ILogger"; +import { HashUtil } from "../utils/HashUtil"; +import { JsonUtil } from "../utils/JsonUtil"; +import { VFS } from "../utils/VFS"; +export declare class HashCacheService { + protected vfs: VFS; + protected hashUtil: HashUtil; + protected jsonUtil: JsonUtil; + protected logger: ILogger; + protected jsonHashes: any; + protected modHashes: any; + protected readonly modCachePath = "./user/cache/modCache.json"; + constructor(vfs: VFS, hashUtil: HashUtil, jsonUtil: JsonUtil, logger: ILogger); + getStoredModHash(modName: string): string; + modContentMatchesStoredHash(modName: string, modContent: string): boolean; + hashMatchesStoredHash(modName: string, modHash: string): boolean; + storeModContent(modName: string, modContent: string): void; + storeModHash(modName: string, modHash: string): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/InsuranceService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/InsuranceService.d.ts new file mode 100644 index 0000000..0219816 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/InsuranceService.d.ts @@ -0,0 +1,42 @@ +import { DialogueHelper } from "../helpers/DialogueHelper"; +import { SecureContainerHelper } from "../helpers/SecureContainerHelper"; +import { TraderHelper } from "../helpers/TraderHelper"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { Item } from "../models/eft/common/tables/IItem"; +import { ISaveProgressRequestData } from "../models/eft/inRaid/ISaveProgressRequestData"; +import { IInsuranceConfig } from "../models/spt/config/IInsuranceConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { SaveServer } from "../servers/SaveServer"; +import { RandomUtil } from "../utils/RandomUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +export declare class InsuranceService { + protected logger: ILogger; + protected databaseServer: DatabaseServer; + protected secureContainerHelper: SecureContainerHelper; + protected randomUtil: RandomUtil; + protected timeUtil: TimeUtil; + protected saveServer: SaveServer; + protected traderHelper: TraderHelper; + protected dialogueHelper: DialogueHelper; + protected configServer: ConfigServer; + protected insured: Record>; + protected templatesById: {}; + protected insuranceConfig: IInsuranceConfig; + constructor(logger: ILogger, databaseServer: DatabaseServer, secureContainerHelper: SecureContainerHelper, randomUtil: RandomUtil, timeUtil: TimeUtil, saveServer: SaveServer, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, configServer: ConfigServer); + insuranceExists(sessionId: string): boolean; + insuranceTraderArrayExists(sessionId: string, traderId: string): boolean; + getInsurance(sessionId: string): Record; + getInsuranceItems(sessionId: string, traderId: string): any[]; + resetInsurance(sessionId: string): void; + resetInsuranceTraderArray(sessionId: string, traderId: string): void; + addInsuranceItemToArray(sessionId: string, traderId: string, itemToAdd: any): void; + getItemPrice(_tpl: string): number; + generateTemplatesById(): void; + sendInsuredItems(pmcData: IPmcData, sessionID: string): void; + storeLostGear(pmcData: IPmcData, offraidData: ISaveProgressRequestData, preRaidGear: Item[], sessionID: string): void; + storeInsuredItemsForReturn(pmcData: IPmcData, offraidData: ISaveProgressRequestData, preRaidGear: Item[], sessionID: string): void; + protected addGearToSend(pmcData: IPmcData, insuredItem: any, actualItem: any, sessionID: string): any; + getPremium(pmcData: IPmcData, inventoryItem: Item, traderId: string): number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/LocaleService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/LocaleService.d.ts new file mode 100644 index 0000000..33bea7b --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/LocaleService.d.ts @@ -0,0 +1,14 @@ +import { ILocaleConfig } from "../models/spt/config/ILocaleConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +export declare class LocaleService { + protected logger: ILogger; + protected configServer: ConfigServer; + protected localeConfig: ILocaleConfig; + constructor(logger: ILogger, configServer: ConfigServer); + /** + * Gets the locale key from the locale.json file + * @returns locale e.g en/ge/cz/cn + */ + getDesiredLocale(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/MatchLocationService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/MatchLocationService.d.ts new file mode 100644 index 0000000..2b5fc0e --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/MatchLocationService.d.ts @@ -0,0 +1,8 @@ +import { TimeUtil } from "../utils/TimeUtil"; +export declare class MatchLocationService { + protected timeUtil: TimeUtil; + protected locations: {}; + constructor(timeUtil: TimeUtil); + createGroup(sessionID: string, info: any): any; + deleteGroup(info: any): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/ModCompilerService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/ModCompilerService.d.ts new file mode 100644 index 0000000..26cb4ac --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/ModCompilerService.d.ts @@ -0,0 +1,20 @@ +import * as ts from "typescript"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { VFS } from "../utils/VFS"; +import { HashCacheService } from "./HashCacheService"; +export declare class ModCompilerService { + protected logger: ILogger; + protected hashCacheService: HashCacheService; + protected vfs: VFS; + constructor(logger: ILogger, hashCacheService: HashCacheService, vfs: VFS); + compileMod(modName: string, modPath: string, modTypeScriptFiles: string[]): Promise; + protected compile(fileNames: string[], options: ts.CompilerOptions): Promise; + protected buildDepth(depth: number): string; + protected getNodesModulesPath(depth: number): string; + protected getAkiPath(depth: number): string; + protected getAkiFolder(): string; + protected getNodesModulesFolder(): string; + protected calculateDepth(file: string): number; + protected areFilesReady(fileNames: string[]): boolean; + protected delay(ms: number): Promise; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/NotificationService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/NotificationService.d.ts new file mode 100644 index 0000000..7e2a127 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/NotificationService.d.ts @@ -0,0 +1,21 @@ +import { INotification } from "../models/eft/notifier/INotifier"; +export declare class NotificationService { + protected messageQueue: {}; + getMessageQueue(): {}; + getMessageFromQueue(sessionId: string): any; + updateMessageOnQueue(sessionId: string, value: any[]): void; + has(sessionID: string): boolean; + /** + * Pop first message from queue. + */ + pop(sessionID: string): any; + /** + * Add message to queue + */ + add(sessionID: string, message: INotification): void; + /** + * Get message queue for session + * @param sessionID + */ + get(sessionID: string): any; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/PaymentService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/PaymentService.d.ts new file mode 100644 index 0000000..5834750 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/PaymentService.d.ts @@ -0,0 +1,49 @@ +import { HandbookHelper } from "../helpers/HandbookHelper"; +import { InventoryHelper } from "../helpers/InventoryHelper"; +import { ItemHelper } from "../helpers/ItemHelper"; +import { PaymentHelper } from "../helpers/PaymentHelper"; +import { TraderHelper } from "../helpers/TraderHelper"; +import { IPmcData } from "../models/eft/common/IPmcData"; +import { Item } from "../models/eft/common/tables/IItem"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IProcessBuyTradeRequestData } from "../models/eft/trade/IProcessBuyTradeRequestData"; +import { IProcessSellTradeRequestData } from "../models/eft/trade/IProcessSellTradeRequestData"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +export declare class PaymentService { + protected logger: ILogger; + protected httpResponse: HttpResponseUtil; + protected databaseServer: DatabaseServer; + protected handbookHelper: HandbookHelper; + protected traderHelper: TraderHelper; + protected itemHelper: ItemHelper; + protected inventoryHelper: InventoryHelper; + protected paymentHelper: PaymentHelper; + constructor(logger: ILogger, httpResponse: HttpResponseUtil, databaseServer: DatabaseServer, handbookHelper: HandbookHelper, traderHelper: TraderHelper, itemHelper: ItemHelper, inventoryHelper: InventoryHelper, paymentHelper: PaymentHelper); + /** + * Take money and insert items into return to server request + * @param {Object} pmcData + * @param {Object} body + * @param {string} sessionID + * @returns Object + */ + payMoney(pmcData: IPmcData, body: IProcessBuyTradeRequestData, sessionID: string, output: IItemEventRouterResponse): IItemEventRouterResponse; + /** + * Receive money back after selling + * @param {IPmcData} pmcData + * @param {number} amount + * @param {IProcessSellTradeRequestData} body + * @param {IItemEventRouterResponse} output + * @param {string} sessionID + * @returns IItemEventRouterResponse + */ + getMoney(pmcData: IPmcData, amount: number, body: IProcessSellTradeRequestData, output: IItemEventRouterResponse, sessionID: string): IItemEventRouterResponse; + /** + * Recursively checks if the given item is + * inside the stash, that is it has the stash as + * ancestor with slotId=hideout + */ + protected isItemInStash(pmcData: IPmcData, item: Item): boolean; + addPaymentToOutput(pmcData: IPmcData, currencyTpl: string, amountToPay: number, sessionID: string, output: IItemEventRouterResponse): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/PlayerService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/PlayerService.d.ts new file mode 100644 index 0000000..519b7e5 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/PlayerService.d.ts @@ -0,0 +1,22 @@ +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IPlayerIncrementSkillLevelRequestData } from "../models/eft/player/IPlayerIncrementSkillLevelRequestData"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { DatabaseServer } from "../servers/DatabaseServer"; +export declare class PlayerService { + protected logger: ILogger; + protected databaseServer: DatabaseServer; + constructor(logger: ILogger, databaseServer: DatabaseServer); + /** + * increases the profile skill and updates any output + * @param {Object} pmcData + * @param {Object} output + * @param {String} skillName + * @param {Number} amount + */ + incrementSkillLevel(pmcData: IPmcData, output: IPlayerIncrementSkillLevelRequestData, skillName: string, amount: number): void; + /** + * @param {Object} pmcData + * @returns number + */ + calculateLevel(pmcData: IPmcData): number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/RagfairCategoriesService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/RagfairCategoriesService.d.ts new file mode 100644 index 0000000..09956cc --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/RagfairCategoriesService.d.ts @@ -0,0 +1,10 @@ +import { IRagfairOffer } from "../models/eft/ragfair/IRagfairOffer"; +export declare class RagfairCategoriesService { + updateCategories(offers: IRagfairOffer[]): void; + protected categories: Record; + getCategories(): Record; + getCategoryByItemId(itemId: string): number; + resetCategories(): void; + setCategoryValue(itemId: string, newValue: number): void; + incrementCategory(itemId: string): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/RagfairLinkedItemService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/RagfairLinkedItemService.d.ts new file mode 100644 index 0000000..6c34ee0 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/RagfairLinkedItemService.d.ts @@ -0,0 +1,10 @@ +import { DatabaseServer } from "../servers/DatabaseServer"; +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; +export declare class RagfairLinkedItemService { + protected databaseServer: DatabaseServer; + protected linkedItemsCache: Record>; + constructor(databaseServer: DatabaseServer); + getLinkedItems(linkedSearchId: string): Iterable; + protected buildLinkedItemTable(): void; + protected getFilters(item: ITemplateItem, slot: string): string[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/RagfairOfferService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/RagfairOfferService.d.ts new file mode 100644 index 0000000..7afbf8c --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/RagfairOfferService.d.ts @@ -0,0 +1,66 @@ +import { ProfileHelper } from "../helpers/ProfileHelper"; +import { RagfairServerHelper } from "../helpers/RagfairServerHelper"; +import { Item } from "../models/eft/common/tables/IItem"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IRagfairOffer } from "../models/eft/ragfair/IRagfairOffer"; +import { IRagfairConfig } from "../models/spt/config/IRagfairConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { SaveServer } from "../servers/SaveServer"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +export declare class RagfairOfferService { + protected logger: ILogger; + protected timeUtil: TimeUtil; + protected databaseServer: DatabaseServer; + protected saveServer: SaveServer; + protected ragfairServerHelper: RagfairServerHelper; + protected profileHelper: ProfileHelper; + protected itemEventRouter: ItemEventRouter; + protected httpResponse: HttpResponseUtil; + protected configServer: ConfigServer; + protected playerOffersLoaded: boolean; + protected toUpdate: Record; + protected expiredOffers: Item[]; + protected offers: IRagfairOffer[]; + protected ragfairConfig: IRagfairConfig; + constructor(logger: ILogger, timeUtil: TimeUtil, databaseServer: DatabaseServer, saveServer: SaveServer, ragfairServerHelper: RagfairServerHelper, profileHelper: ProfileHelper, itemEventRouter: ItemEventRouter, httpResponse: HttpResponseUtil, configServer: ConfigServer); + getOffers(): IRagfairOffer[]; + getOfferByOfferId(offerId: string): IRagfairOffer; + getOffersOfType(templateId: string): IRagfairOffer[]; + addOffer(offer: IRagfairOffer): void; + addOfferToExpired(offer: Item): void; + setTraderUpdateStatus(traderId: string, shouldUpdate: boolean): void; + shouldTraderBeUpdated(traderID: string): boolean; + getExpiredOfferCount(): number; + /** + * Get an array of expired items not yet processed into new offers + * @returns items that need to be turned into offers + */ + getExpiredOffers(): Item[]; + resetExpiredOffers(): void; + /** + * Does the offer exist on the ragfair + * @param offerId offer id to check for + * @returns offer exists - true + */ + doesOfferExist(offerId: string): boolean; + getTraders(): Record; + flagTraderForUpdate(expiredOfferUserId: string): void; + removeOfferById(offerId: string): void; + removeOfferStack(offerID: string, amount: number): void; + removeAllOffersByTrader(traderId: string): void; + addTradersToUpdateList(): void; + addPlayerOffers(): void; + expireStaleOffers(): void; + /** + * Get an array of stale offers that are still shown to player + * @returns IRagfairOffer array + */ + protected getStaleOffers(): IRagfairOffer[]; + protected isStale(offer: IRagfairOffer, time: number): boolean; + protected processStaleOffer(staleOffer: IRagfairOffer): void; + protected returnPlayerOffer(offer: IRagfairOffer): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/RagfairPriceService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/RagfairPriceService.d.ts new file mode 100644 index 0000000..5256b99 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/RagfairPriceService.d.ts @@ -0,0 +1,32 @@ +import { HandbookHelper } from "../helpers/HandbookHelper"; +import { ItemHelper } from "../helpers/ItemHelper"; +import { PresetHelper } from "../helpers/PresetHelper"; +import { Item } from "../models/eft/common/tables/IItem"; +import { IBarterScheme } from "../models/eft/common/tables/ITrader"; +import { IRagfairConfig } from "../models/spt/config/IRagfairConfig"; +import { IRagfairServerPrices } from "../models/spt/ragfair/IRagfairServerPrices"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { RandomUtil } from "../utils/RandomUtil"; +export declare class RagfairPriceService { + protected handbookHelper: HandbookHelper; + protected databaseServer: DatabaseServer; + protected logger: ILogger; + protected itemHelper: ItemHelper; + protected presetHelper: PresetHelper; + protected randomUtil: RandomUtil; + protected configServer: ConfigServer; + protected ragfairConfig: IRagfairConfig; + protected prices: IRagfairServerPrices; + constructor(handbookHelper: HandbookHelper, databaseServer: DatabaseServer, logger: ILogger, itemHelper: ItemHelper, presetHelper: PresetHelper, randomUtil: RandomUtil, configServer: ConfigServer); + generateStaticPrices(): void; + generateDynamicPrices(): void; + hasDynamicPrices(): boolean; + getDynamicPrice(itemTpl: string): number; + getAllFleaPrices(): Record; + getFleaPriceForItem(tplId: string): number; + getBarterPrice(barterScheme: IBarterScheme[]): number; + getDynamicOfferPrice(items: Item[], desiredCurrency: string): number; + getWeaponPresetPrice(item: Item, items: Item[], existingPrice: number): number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/RagfairRequiredItemsService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/RagfairRequiredItemsService.d.ts new file mode 100644 index 0000000..b05fc65 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/RagfairRequiredItemsService.d.ts @@ -0,0 +1,12 @@ +import { PaymentHelper } from "../helpers/PaymentHelper"; +import { RagfairOfferService } from "../services/RagfairOfferService"; +import { ILogger } from "../models/spt/utils/ILogger"; +export declare class RagfairRequiredItemsService { + protected logger: ILogger; + protected paymentHelper: PaymentHelper; + protected ragfairOfferService: RagfairOfferService; + protected requiredItemsCache: {}; + constructor(logger: ILogger, paymentHelper: PaymentHelper, ragfairOfferService: RagfairOfferService); + getRequiredItems(searchId: string): any; + buildRequiredItemTable(): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/TraderAssortService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/TraderAssortService.d.ts new file mode 100644 index 0000000..5ba2d05 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/TraderAssortService.d.ts @@ -0,0 +1,6 @@ +import { ITraderAssort } from "../models/eft/common/tables/ITrader"; +export declare class TraderAssortService { + protected pristineTraderAssorts: Record; + getPristineTraderAssort(traderId: string): ITraderAssort; + setPristineTraderAssort(traderId: string, assort: ITraderAssort): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/mod/dynamicRouter/DynamicRouterMod.d.ts b/TypeScript/14AfterDBLoadHook/types/services/mod/dynamicRouter/DynamicRouterMod.d.ts new file mode 100644 index 0000000..abfe237 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/mod/dynamicRouter/DynamicRouterMod.d.ts @@ -0,0 +1,6 @@ +import { DynamicRouter, RouteAction } from "../../../di/Router"; +export declare class DynamicRouterMod extends DynamicRouter { + private topLevelRoute; + constructor(routes: RouteAction[], topLevelRoute: string); + getTopLevelRoute(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/mod/dynamicRouter/DynamicRouterModService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/mod/dynamicRouter/DynamicRouterModService.d.ts new file mode 100644 index 0000000..6742fc6 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/mod/dynamicRouter/DynamicRouterModService.d.ts @@ -0,0 +1,7 @@ +import { DependencyContainer } from "tsyringe"; +import { RouteAction } from "../../../di/Router"; +export declare class DynamicRouterModService { + private container; + constructor(container: DependencyContainer); + registerDynamicRouter(name: string, routes: RouteAction[], topLevelRoute: string): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/mod/image/ImageRouteService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/mod/image/ImageRouteService.d.ts new file mode 100644 index 0000000..29569b2 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/mod/image/ImageRouteService.d.ts @@ -0,0 +1,6 @@ +export declare class ImageRouteService { + protected routes: Record; + addRoute(urlKey: string, route: string): void; + getByKey(urlKey: string): string; + existsByKey(urlKey: string): boolean; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/mod/onLoad/OnLoadMod.d.ts b/TypeScript/14AfterDBLoadHook/types/services/mod/onLoad/OnLoadMod.d.ts new file mode 100644 index 0000000..53fb062 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/mod/onLoad/OnLoadMod.d.ts @@ -0,0 +1,8 @@ +import { OnLoad } from "../../../di/OnLoad"; +export declare class OnLoadMod extends OnLoad { + private onLoadOverride; + private getRouteOverride; + constructor(onLoadOverride: () => void, getRouteOverride: () => string); + onLoad(): void; + getRoute(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/mod/onLoad/OnLoadModService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/mod/onLoad/OnLoadModService.d.ts new file mode 100644 index 0000000..f402103 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/mod/onLoad/OnLoadModService.d.ts @@ -0,0 +1,6 @@ +import { DependencyContainer } from "tsyringe"; +export declare class OnLoadModService { + protected container: DependencyContainer; + constructor(container: DependencyContainer); + registerOnLoad(name: string, onLoad: () => void, getRoute: () => string): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/mod/onUpdate/OnUpdateMod.d.ts b/TypeScript/14AfterDBLoadHook/types/services/mod/onUpdate/OnUpdateMod.d.ts new file mode 100644 index 0000000..ee89043 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/mod/onUpdate/OnUpdateMod.d.ts @@ -0,0 +1,8 @@ +import { OnUpdate } from "../../../di/OnUpdate"; +export declare class OnUpdateMod extends OnUpdate { + private onUpdateOverride; + private getRouteOverride; + constructor(onUpdateOverride: (timeSinceLastRun: number) => boolean, getRouteOverride: () => string); + onUpdate(timeSinceLastRun: number): boolean; + getRoute(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/mod/onUpdate/OnUpdateModService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/mod/onUpdate/OnUpdateModService.d.ts new file mode 100644 index 0000000..05d735b --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/mod/onUpdate/OnUpdateModService.d.ts @@ -0,0 +1,6 @@ +import { DependencyContainer } from "tsyringe"; +export declare class OnUpdateModService { + protected container: DependencyContainer; + constructor(container: DependencyContainer); + registerOnUpdate(name: string, onUpdate: (timeSinceLastRun: number) => boolean, getRoute: () => string): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/mod/staticRouter/StaticRouterMod.d.ts b/TypeScript/14AfterDBLoadHook/types/services/mod/staticRouter/StaticRouterMod.d.ts new file mode 100644 index 0000000..1e62747 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/mod/staticRouter/StaticRouterMod.d.ts @@ -0,0 +1,6 @@ +import { RouteAction, StaticRouter } from "../../../di/Router"; +export declare class StaticRouterMod extends StaticRouter { + private topLevelRoute; + constructor(routes: RouteAction[], topLevelRoute: string); + getTopLevelRoute(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/services/mod/staticRouter/StaticRouterModService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/mod/staticRouter/StaticRouterModService.d.ts new file mode 100644 index 0000000..f28fd45 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/services/mod/staticRouter/StaticRouterModService.d.ts @@ -0,0 +1,7 @@ +import { DependencyContainer } from "tsyringe"; +import { RouteAction } from "../../../di/Router"; +export declare class StaticRouterModService { + protected container: DependencyContainer; + constructor(container: DependencyContainer); + registerStaticRouter(name: string, routes: RouteAction[], topLevelRoute: string): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/utils/App.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/App.d.ts new file mode 100644 index 0000000..34c141e --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/utils/App.d.ts @@ -0,0 +1,14 @@ +import { TimeUtil } from "./TimeUtil"; +import { OnLoad } from "../di/OnLoad"; +import { OnUpdate } from "../di/OnUpdate"; +import { ILogger } from "../models/spt/utils/ILogger"; +export declare class App { + protected logger: ILogger; + protected timeUtil: TimeUtil; + protected onLoadComponents: OnLoad[]; + protected onUpdateComponents: OnUpdate[]; + protected onUpdateLastRun: {}; + constructor(logger: ILogger, timeUtil: TimeUtil, onLoadComponents: OnLoad[], onUpdateComponents: OnUpdate[]); + load(): void; + protected update(onUpdateComponents: OnUpdate[]): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/utils/AyncQueue.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/AyncQueue.d.ts new file mode 100644 index 0000000..da6ab18 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/utils/AyncQueue.d.ts @@ -0,0 +1,7 @@ +import { IAsyncQueue } from "../models/spt/utils/IAsyncQueue"; +import { ICommand } from "../models/spt/utils/ICommand"; +export declare class AsyncQueue implements IAsyncQueue { + protected commandsQueue: ICommand[]; + constructor(); + waitFor(command: ICommand): Promise; +} diff --git a/TypeScript/14AfterDBLoadHook/types/utils/DatabaseImporter.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/DatabaseImporter.d.ts new file mode 100644 index 0000000..b3156ea --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/utils/DatabaseImporter.d.ts @@ -0,0 +1,52 @@ +import { OnLoad } from "../di/OnLoad"; +import { IDatabaseTables } from "../models/spt/server/IDatabaseTables"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ImageRouter } from "../routers/ImageRouter"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { CustomHandbookItemService } from "../services/CustomHandbookItemService"; +import { CustomItemService } from "../services/CustomItemService"; +import { CustomPresetService } from "../services/CustomPresetService"; +import { CustomTraderAssortService } from "../services/CustomTraderAssortService"; +import { JsonUtil } from "./JsonUtil"; +import { VFS } from "./VFS"; +export declare class DatabaseImporter extends OnLoad { + protected logger: ILogger; + protected vfs: VFS; + protected jsonUtil: JsonUtil; + protected databaseServer: DatabaseServer; + protected customItemService: CustomItemService; + protected customTraderAssortService: CustomTraderAssortService; + protected customHandbookItemService: CustomHandbookItemService; + protected customPresetService: CustomPresetService; + protected imageRouter: ImageRouter; + constructor(logger: ILogger, vfs: VFS, jsonUtil: JsonUtil, databaseServer: DatabaseServer, customItemService: CustomItemService, customTraderAssortService: CustomTraderAssortService, customHandbookItemService: CustomHandbookItemService, customPresetService: CustomPresetService, imageRouter: ImageRouter); + onLoad(): void; + /** + * Read all json files in database folder and map into a json object + * @param filepath path to database folder + */ + protected hydrateDatabase(filepath: string): void; + /** + * Get all items added through CustomItemService and add to database.templates.items + * @param dataToImport db data to amend + */ + protected addCustomItemsToDb(dataToImport: IDatabaseTables): void; + /** + * Get all assorts added through CustomTraderAssortService and add to database.traders[x].assort + * @param dataToImport db data to amend + */ + protected addCustomTraderAssortsToDb(dataToImport: IDatabaseTables): void; + /** + * Get all custom handbook items added through CustomHandbookItemService and add to database.templates.handbook.items + * @param dataToImport db data to amend + */ + protected addCustomHandbookItemsToDb(dataToImport: IDatabaseTables): void; + /** + * Get all custom preset items added through CustomPresetService and add to database.globals.ItemPresets + * @param dataToImport + */ + protected addCustomPresetsToDb(dataToImport: IDatabaseTables): void; + getRoute(): string; + loadRecursive(filepath: string): IDatabaseTables; + loadImages(filepath: string): void; +} diff --git a/TypeScript/14AfterDBLoadHook/types/utils/HashUtil.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/HashUtil.d.ts new file mode 100644 index 0000000..bacbf2a --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/utils/HashUtil.d.ts @@ -0,0 +1,11 @@ +/// +import crypto from "crypto"; +import { TimeUtil } from "./TimeUtil"; +export declare class HashUtil { + protected timeUtil: TimeUtil; + constructor(timeUtil: TimeUtil); + generate(): string; + generateMd5ForData(data: string): string; + generateSha1ForData(data: string): string; + generateHashForData(algorithm: string, data: crypto.BinaryLike): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/utils/HttpResponseUtil.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/HttpResponseUtil.d.ts new file mode 100644 index 0000000..29502be --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/utils/HttpResponseUtil.d.ts @@ -0,0 +1,16 @@ +import { JsonUtil } from "./JsonUtil"; +import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; +import { INullResponseData } from "../models/eft/httpResponse/INullResponseData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +export declare class HttpResponseUtil { + protected jsonUtil: JsonUtil; + constructor(jsonUtil: JsonUtil); + protected clearString(s: string): any; + noBody(data: any): any; + getBody(data: T, err?: number, errmsg?: any): IGetBodyResponseData; + getUnclearedBody(data: any, err?: number, errmsg?: any): string; + emptyResponse(): IGetBodyResponseData; + nullResponse(): INullResponseData; + emptyArrayResponse(): IGetBodyResponseData; + appendErrorToOutput(output: IItemEventRouterResponse, message?: string, title?: string): IItemEventRouterResponse; +} diff --git a/TypeScript/14AfterDBLoadHook/types/utils/JsonUtil.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/JsonUtil.d.ts new file mode 100644 index 0000000..71e95f6 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/utils/JsonUtil.d.ts @@ -0,0 +1,25 @@ +import { ILogger } from "../models/spt/utils/ILogger"; +import { HashUtil } from "./HashUtil"; +import { VFS } from "./VFS"; +export declare class JsonUtil { + protected vfs: VFS; + protected hashUtil: HashUtil; + protected logger: ILogger; + protected fileHashes: any; + constructor(vfs: VFS, hashUtil: HashUtil, logger: ILogger); + /** + * From object to string + * @param data object to turn into JSON + * @param prettify Should output be prettified? + * @returns string + */ + serialize(data: any, prettify?: boolean): string; + /** + * From string to object + * @param jsonString json string to turn into object + * @returns object + */ + deserialize(jsonString: string): any; + deserializeWithCacheCheck(jsonString: string, filePath: string): string; + clone(data: T): T; +} diff --git a/TypeScript/14AfterDBLoadHook/types/utils/Logger.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/Logger.d.ts new file mode 100644 index 0000000..3d9013f --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/utils/Logger.d.ts @@ -0,0 +1,58 @@ +/// +import fs from "fs"; +import winston from "winston"; +import { Daum } from "../models/eft/itemEvent/IItemEventRouterRequest"; +import { LogBackgroundColor } from "../models/spt/logging/LogBackgroundColor"; +import { LogTextColor } from "../models/spt/logging/LogTextColor"; +import { SptLogger } from "../models/spt/logging/SptLogger"; +import { IAsyncQueue } from "../models/spt/utils/IAsyncQueue"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { IUUidGenerator } from "../models/spt/utils/IUuidGenerator"; +export declare class WinstonLogger implements ILogger { + protected asyncQueue: IAsyncQueue; + protected uuidGenerator: IUUidGenerator; + protected showDebugInConsole: boolean; + protected folderPath: string; + protected file: string; + protected filePath: string; + protected logLevels: { + levels: { + error: number; + warn: number; + succ: number; + info: number; + custom: number; + debug: number; + }; + colors: { + error: string; + warn: string; + succ: string; + info: string; + custom: string; + debug: string; + }; + bgColors: { + default: string; + blackBG: string; + redBG: string; + greenBG: string; + yellowBG: string; + blueBG: string; + magentaBG: string; + cyanBG: string; + whiteBG: string; + }; + }; + protected logger: winston.Logger & SptLogger; + protected writeFilePromisify: (path: fs.PathLike, data: string, options?: any) => Promise; + constructor(asyncQueue: IAsyncQueue, uuidGenerator: IUUidGenerator); + writeToLogFile(data: string | Daum): Promise; + log(data: string | Error | Record, color: string, backgroundColor?: string): Promise; + error(data: string | Record): Promise; + warning(data: string | Record): Promise; + success(data: string | Record): Promise; + info(data: string | Record): Promise; + logWithColor(data: string | Record, textColor: LogTextColor, backgroundColor?: LogBackgroundColor): Promise; + debug(data: string | Record, onlyShowInConsole?: boolean): Promise; +} diff --git a/TypeScript/14AfterDBLoadHook/types/utils/MathUtil.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/MathUtil.d.ts new file mode 100644 index 0000000..ea5fd69 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/utils/MathUtil.d.ts @@ -0,0 +1,53 @@ +export declare class MathUtil { + /** + * Helper to create the sum of all array elements + * @param {array} values The array with numbers of which to calculate the sum + * @return {number} sum(values) + */ + arraySum(values: number[]): number; + /** + * Helper to create the cumulative sum of all array elements + * arrayCumsum([1, 2, 3, 4]) = [1, 3, 6, 10] + * @param {array} values The array with numbers of which to calculate the cumulative sum + * @return {array} cumsum(values) + */ + arrayCumsum(values: number[]): number[]; + /** + * Helper to create the product of each element times factor + * @param {array} values The array of numbers which shall be multiplied by the factor + * @return {array} array times factor + */ + arrayProd(values: number[], factor: number): number[]; + /** + * Helper to add a constant to all array elements + * @param {array} values The array of numbers to which the summand should be added + * @return {array} array plus summand + */ + arrayAdd(values: number[], summand: number): number[]; + /** + * Map a value from an input range to an output range linearly + * + * Example: + * a_min = 0; a_max=1; + * b_min = 1; b_max=3; + * MathUtil.mapToRange(0.5, a_min, a_max, b_min, b_max) // returns 2 + * + * @param {number} x The value from input range to be mapped to output range + * @param {number} minIn min of input range + * @param {number} maxIn max of input range + * @param {number} minOut min of output range + * @param {number} maxOut max of outout range + * @return {number} the result of the mapping + */ + mapToRange(x: number, minIn: number, maxIn: number, minOut: number, maxOut: number): number; + /** + * Linear interpolation + * e.g. used to do a continuous integration for quest rewards which are defined for specific support centers of pmcLevel + * + * @param {string} xp the point of x at which to interpolate + * @param {array} x support points in x (of same length as y) + * @param {array} y support points in y (of same length as x) + * @return {number} y(xp) + */ + interp1(xp: number, x: number[], y: number[]): number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/utils/ObjectId.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/ObjectId.d.ts new file mode 100644 index 0000000..03aae56 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/utils/ObjectId.d.ts @@ -0,0 +1,14 @@ +/// +import { TimeUtil } from "./TimeUtil"; +export declare class ObjectId { + protected timeUtil: TimeUtil; + constructor(timeUtil: TimeUtil); + protected randomBytes: Buffer; + protected constglobalCounter: number; + protected consttime: number; + protected globalCounter: number; + protected time: number; + incGlobalCounter(): number; + toHexString(byteArray: string | any[] | Buffer): string; + generate(): string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/utils/RandomUtil.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/RandomUtil.d.ts new file mode 100644 index 0000000..c24dd60 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/utils/RandomUtil.d.ts @@ -0,0 +1,153 @@ +import { ILogger } from "../models/spt/utils/ILogger"; +import { JsonUtil } from "./JsonUtil"; +import { MathUtil } from "./MathUtil"; +/** + * Array of ProbabilityObjectArray which allow to randomly draw of the contained objects + * based on the relative probability of each of its elements. + * The probabilities of the contained element is not required to be normalized. + * + * Example: + * po = new ProbabilityObjectArray( + * new ProbabilityObject("a", 5), + * new ProbabilityObject("b", 1), + * new ProbabilityObject("c", 1) + * ); + * res = po.draw(10000); + * // count the elements which should be distributed according to the relative probabilities + * res.filter(x => x==="b").reduce((sum, x) => sum + 1 , 0) + */ +export declare class ProbabilityObjectArray extends Array> { + private mathUtil; + constructor(mathUtil: MathUtil, ...items: ProbabilityObject[]); + filter(callbackfn: (value: ProbabilityObject, index: number, array: ProbabilityObject[]) => any): ProbabilityObjectArray; + /** + * Calculates the normalized cumulative probability of the ProbabilityObjectArray's elements normalized to 1 + * @param {array} probValues The relative probability values of which to calculate the normalized cumulative sum + * @returns {array} Cumulative Sum normalized to 1 + */ + cumulativeProbability(probValues: number[]): number[]; + /** + * Clone this ProbabilitObjectArray + * @returns {ProbabilityObjectArray} Deep Copy of this ProbabilityObjectArray + */ + clone(): ProbabilityObjectArray; + /** + * Drop an element from the ProbabilityObjectArray + * + * @param {string} key The key of the element to drop + * @returns {ProbabilityObjectArray} ProbabilityObjectArray without the dropped element + */ + drop(key: K): ProbabilityObjectArray; + /** + * Return the data field of a element of the ProbabilityObjectArray + * @param {string} key The key of the element whose data shall be retrieved + * @returns {object} The data object + */ + data(key: K): V; + /** + * Get the relative probability of an element by its key + * + * Example: + * po = new ProbabilityObjectArray(new ProbabilityObject("a", 5), new ProbabilityObject("b", 1)) + * po.maxProbability() // returns 5 + * + * @param {string} key The key of the element whose relative probability shall be retrieved + * @return {number} The relative probability + */ + probability(key: K): number; + /** + * Get the maximum relative probability out of a ProbabilityObjectArray + * + * Example: + * po = new ProbabilityObjectArray(new ProbabilityObject("a", 5), new ProbabilityObject("b", 1)) + * po.maxProbability() // returns 5 + * + * @return {number} the maximum value of all relative probabilities in this ProbabilityObjectArray + */ + maxProbability(): number; + /** + * Get the minimum relative probability out of a ProbabilityObjectArray + * + * Example: + * po = new ProbabilityObjectArray(new ProbabilityObject("a", 5), new ProbabilityObject("b", 1)) + * po.minProbability() // returns 1 + * + * @return {number} the minimum value of all relative probabilities in this ProbabilityObjectArray + */ + minProbability(): number; + /** + * Draw random element of the ProbabilityObject N times to return an array of N keys. + * Drawing can be with or without replacement + * + * @param {integer} count The number of times we want to draw + * @param {boolean} replacement Draw with or without replacement from the input dict + * @param {array} locklist list keys which shall be replaced even if drawing without replacement + * @return {array} Array consisting of N random keys for this ProbabilityObjectArray + */ + draw(count?: number, replacement?: boolean, locklist?: Array): K[]; +} +/** + * A ProbabilityObject which is use as an element to the ProbabilityObjectArray array + * It contains a key, the relative probability as well as optional data. + */ +export declare class ProbabilityObject { + key: K; + relativeProbability: number; + data: V; + /** + * Constructor for the ProbabilityObject + * @param {string} key The key of the element + * @param {number} relativeProbability The relative probability of this element + * @param {any} data Optional data attached to the element + */ + constructor(key: K, relativeProbability: number, data?: V); +} +export declare class RandomUtil { + protected jsonUtil: JsonUtil; + protected logger: ILogger; + constructor(jsonUtil: JsonUtil, logger: ILogger); + getInt(min: number, max: number): number; + getIntEx(max: number): number; + getFloat(min: number, max: number): number; + getBool(): boolean; + getStringArrayValue(arr: string[]): string; + getArrayValue(arr: T[]): T; + getKey(node: any): string; + getKeyValue(node: { + [x: string]: any; + }): any; + /** + * Draw from normal distribution + * @param {number} mu Mean of the normal distribution + * @param {number} sigma Standard deviation of the normal distribution + * @returns {number} The value drawn + */ + randn(mu: number, sigma: number): number; + /** + * Draw Random integer low inclusive, high exclusive + * if high is not set we draw from 0 to low (exclusive) + * @param {integer} low Lower bound inclusive, when high is not set, this is high + * @param {integer} high Higher bound exclusive + * @returns {integer} The random integer in [low, high) + */ + randInt(low: number, high?: number): number; + /** + * Draw a random element of the provided list N times to return an array of N random elements + * Drawing can be with or without replacement + * @param {array} list The array we want to draw randomly from + * @param {integer} count The number of times we want to draw + * @param {boolean} replacement Draw with ot without replacement from the input array + * @return {array} Array consisting of N random elements + */ + drawRandomFromList(list: Array, count?: number, replacement?: boolean): Array; + /** + * Draw a random (top level) element of the provided dictionary N times to return an array of N random dictionary keys + * Drawing can be with or without replacement + * @param {any} dict The dictionary we want to draw randomly from + * @param {integer} count The number of times we want to draw + * @param {boolean} replacement Draw with ot without replacement from the input dict + * @return {array} Array consisting of N random keys of the dictionary + */ + drawRandomFromDict(dict: any, count?: number, replacement?: boolean): any[]; + getBiasedRandomNumber(min: number, max: number, shift: number, n: number): number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/utils/TimeUtil.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/TimeUtil.d.ts new file mode 100644 index 0000000..9733be9 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/utils/TimeUtil.d.ts @@ -0,0 +1,8 @@ +export declare class TimeUtil { + static readonly oneHourAsSeconds = 3600; + formatTime(date: Date): string; + formatDate(date: Date): string; + getDate(): string; + getTime(): string; + getTimestamp(): number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/utils/UUidGenerator.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/UUidGenerator.d.ts new file mode 100644 index 0000000..000b719 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/utils/UUidGenerator.d.ts @@ -0,0 +1,4 @@ +import { IUUidGenerator } from "../models/spt/utils/IUuidGenerator"; +export declare class UUidGenerator implements IUUidGenerator { + generate: () => string; +} diff --git a/TypeScript/14AfterDBLoadHook/types/utils/VFS.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/VFS.d.ts new file mode 100644 index 0000000..e5eaf02 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/utils/VFS.d.ts @@ -0,0 +1,55 @@ +/// +/// +import "reflect-metadata"; +import fs from "fs"; +import { IAsyncQueue } from "../models/spt/utils/IAsyncQueue"; +import { IUUidGenerator } from "../models/spt/utils/IUuidGenerator"; +export declare class VFS { + protected asyncQueue: IAsyncQueue; + protected uuidGenerator: IUUidGenerator; + accessFilePromisify: (path: fs.PathLike, mode?: number) => Promise; + copyFilePromisify: (src: fs.PathLike, dst: fs.PathLike, flags?: number) => Promise; + mkdirPromisify: (path: fs.PathLike, options: fs.MakeDirectoryOptions & { + recursive: true; + }) => Promise; + readFilePromisify: (path: fs.PathLike) => Promise; + writeFilePromisify: (path: fs.PathLike, data: string, options?: any) => Promise; + readdirPromisify: (path: fs.PathLike, options?: BufferEncoding | { + encoding: BufferEncoding; + withFileTypes?: false; + }) => Promise; + statPromisify: (path: fs.PathLike, options?: fs.StatOptions & { + bigint?: false; + }) => Promise; + unlinkPromisify: (path: fs.PathLike) => Promise; + rmdirPromisify: (path: fs.PathLike) => Promise; + constructor(asyncQueue: IAsyncQueue, uuidGenerator: IUUidGenerator); + exists(filepath: fs.PathLike): boolean; + existsAsync(filepath: fs.PathLike): Promise; + copyFile(filepath: fs.PathLike, target: fs.PathLike): void; + copyAsync(filepath: fs.PathLike, target: fs.PathLike): Promise; + createDir(filepath: string): void; + createDirAsync(filepath: string): Promise; + copyDir(filepath: string, target: string, fileExtensions?: string | string[]): void; + copyDirAsync(filepath: string, target: string, fileExtensions: string | string[]): Promise; + readFile(filepath: string): any; + readFileAsync(filepath: string): Promise; + writeFile(filepath: any, data?: string, append?: boolean, atomic?: boolean): void; + writeFileAsync(filepath: any, data?: string, append?: boolean, atomic?: boolean): Promise; + getFiles(filepath: string): string[]; + getFilesAsync(filepath: string): Promise; + getDirs(filepath: string): string[]; + getDirsAsync(filepath: string): Promise; + removeFile(filepath: string): void; + removeFileAsync(filepath: string): Promise; + removeDir(filepath: string): void; + removeDirAsync(filepath: string): Promise; + private lockFileSync; + private checkFileSync; + private unlockFileSync; + getFileExtension(filepath: string): string; + stripExtension(filepath: string): string; + minifyAllJsonInDirRecursive(filepath: string): Promise; + minifyAllJsonInDirRecursiveAsync(filepath: string): Promise; + getFilesOfType(directory: string, fileType: string, files?: string[]): string[]; +} diff --git a/TypeScript/14AfterDBLoadHook/types/utils/Watermark.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/Watermark.d.ts new file mode 100644 index 0000000..111bdd0 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/utils/Watermark.d.ts @@ -0,0 +1,41 @@ +import { ICoreConfig } from "../models/spt/config/ICoreConfig"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +export declare class WatermarkLocale { + protected locales: { + "en-US": { + description: string[]; + warning: string[]; + modding: string[]; + }; + "zh-CN": { + description: string[]; + warning: string[]; + modding: string[]; + }; + }; + getLocale(): string; + getDescription(): string[]; + getWarning(): string[]; + getModding(): string[]; +} +export declare class Watermark { + protected logger: ILogger; + protected configServer: ConfigServer; + protected watermarkLocale?: WatermarkLocale; + protected akiConfig: ICoreConfig; + constructor(logger: ILogger, configServer: ConfigServer, watermarkLocale?: WatermarkLocale); + protected text: string[]; + protected versionLabel: string; + initialize(): void; + getVersionTag(): string; + getVersionLabel(): string; + /** Set window title */ + setTitle(): void; + /** Reset console cursor to top */ + resetCursor(): void; + /** Draw the watermark */ + draw(): void; + /** Caculate text length */ + protected textLength(s: string): number; +} diff --git a/TypeScript/14AfterDBLoadHook/types/utils/decorators/Singleton.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/decorators/Singleton.d.ts new file mode 100644 index 0000000..7e89026 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/utils/decorators/Singleton.d.ts @@ -0,0 +1,4 @@ +import type constructor from "./constructor"; +import { InjectionToken } from "tsyringe"; +declare function singleton(token?: InjectionToken): (target: constructor) => void; +export default singleton; diff --git a/TypeScript/14AfterDBLoadHook/types/utils/decorators/constructor.d.ts b/TypeScript/14AfterDBLoadHook/types/utils/decorators/constructor.d.ts new file mode 100644 index 0000000..416f354 --- /dev/null +++ b/TypeScript/14AfterDBLoadHook/types/utils/decorators/constructor.d.ts @@ -0,0 +1,4 @@ +declare type constructor = { + new (...args: any[]): T; +}; +export default constructor;