From f21be476bb316f101de32a428ca28757353a0c90 Mon Sep 17 00:00:00 2001 From: CWX Date: Thu, 2 Jun 2022 00:58:26 +0100 Subject: [PATCH] bump --- .../dist/src/Notifications.ts | 2 +- .../ZEreshkigal-AllinOneMod/dist/src/fixes.ts | 2 +- .../ZEreshkigal-AllinOneMod/dist/src/items.ts | 8 +- .../ZEreshkigal-AllinOneMod/dist/src/mod.ts | 21 +- .../ZEreshkigal-AllinOneMod/dist/src/other.ts | 8 +- .../dist/src/player.ts | 10 +- .../ZEreshkigal-AllinOneMod/dist/src/raids.ts | 4 +- .../dist/src/traders.ts | 6 +- .../controllers/CustomizationController.d.ts | 10 +- .../types/controllers/DialogueController.d.ts | 1 + .../types/controllers/GameController.d.ts | 10 +- .../types/controllers/HandbookController.d.ts | 2 +- .../types/controllers/LocationController.d.ts | 4 +- .../types/controllers/NoteController.d.ts | 2 +- .../controllers/PresetBuildController.d.ts | 6 +- .../types/controllers/ProfileController.d.ts | 10 +- .../RepeatableQuestController.d.ts | 2 +- .../generators/RagfairAssortGenerator.d.ts | 8 + .../generators/RagfairOfferGenerator.d.ts | 4 + .../dist/types/helpers/HideoutHelper.d.ts | 2 + .../types/helpers/RagfairServerHelper.d.ts | 7 +- .../dist/types/helpers/TradeHelper.d.ts | 15 +- .../dist/types/ide/BleedingEdgeEntry.d.ts | 1 + .../dist/types/loaders/BundleLoader.d.ts | 4 +- .../dist/types/loaders/InitialModLoader.d.ts | 19 + .../dist/types/routers/ImageRouter.d.ts | 2 +- .../routers/serializers/BundleSerializer.d.ts | 4 +- .../dist/types/servers/RagfairServer.d.ts | 20 +- .../types/services/ModCompilerService.d.ts | 4 +- .../services/RagfairLinkedItemService.d.ts | 2 +- .../types/services/RagfairOfferService.d.ts | 34 +- .../dist/types/utils/VFS.d.ts | 2 +- .../dist/types/utils/Watermark.d.ts | 1 + .../src/Notifications.ts | 2 +- .../ZEreshkigal-AllinOneMod/src/fixes.ts | 2 +- .../ZEreshkigal-AllinOneMod/src/items.ts | 8 +- .../ZEreshkigal-AllinOneMod/src/mod.ts | 21 +- .../ZEreshkigal-AllinOneMod/src/other.ts | 8 +- .../ZEreshkigal-AllinOneMod/src/player.ts | 10 +- .../ZEreshkigal-AllinOneMod/src/raids.ts | 4 +- .../ZEreshkigal-AllinOneMod/src/traders.ts | 6 +- .../ZEreshkigal-AllinOneMod/tsconfig.json | 8 +- .../controllers/CustomizationController.d.ts | 10 +- .../types/controllers/DialogueController.d.ts | 1 + .../types/controllers/GameController.d.ts | 10 +- .../types/controllers/HandbookController.d.ts | 2 +- .../types/controllers/LocationController.d.ts | 4 +- .../types/controllers/NoteController.d.ts | 2 +- .../controllers/PresetBuildController.d.ts | 6 +- .../types/controllers/ProfileController.d.ts | 10 +- .../RepeatableQuestController.d.ts | 2 +- .../generators/RagfairAssortGenerator.d.ts | 8 + .../generators/RagfairOfferGenerator.d.ts | 4 + .../types/helpers/HideoutHelper.d.ts | 2 + .../types/helpers/RagfairServerHelper.d.ts | 7 +- .../types/helpers/TradeHelper.d.ts | 15 +- .../types/ide/BleedingEdgeEntry.d.ts | 1 + .../types/loaders/BundleLoader.d.ts | 4 +- .../types/loaders/InitialModLoader.d.ts | 19 + .../types/routers/ImageRouter.d.ts | 2 +- .../routers/serializers/BundleSerializer.d.ts | 4 +- .../types/servers/RagfairServer.d.ts | 20 +- .../types/services/ModCompilerService.d.ts | 4 +- .../services/RagfairLinkedItemService.d.ts | 2 +- .../types/services/RagfairOfferService.d.ts | 34 +- .../types/utils/VFS.d.ts | 2 +- .../types/utils/Watermark.d.ts | 1 + Ereshkigal-AkiConfig/.eslintignore | 9 + Ereshkigal-AkiConfig/.eslintrc.json | 75 ++ Ereshkigal-AkiConfig/LICENSE | 95 ++ Ereshkigal-AkiConfig/mod.code-workspace | 12 + Ereshkigal-AkiConfig/package.json | 26 + Ereshkigal-AkiConfig/src/mod.ts | 24 + Ereshkigal-AkiConfig/tsconfig.json | 25 + Ereshkigal-AkiConfig/types/Program.d.ts | 4 + Ereshkigal-AkiConfig/types/TYPES.d.ts | 3 + Ereshkigal-AkiConfig/types/Utils.d.ts | 0 .../types/callbacks/BotCallbacks.d.ts | 15 + .../types/callbacks/BundleCallbacks.d.ts | 17 + .../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 | 32 + .../types/callbacks/HttpCallbacks.d.ts | 9 + .../types/callbacks/InraidCallbacks.d.ts | 21 + .../types/callbacks/InsuranceCallbacks.d.ts | 23 + .../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 | 21 + .../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 | 36 + .../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 | 20 + .../controllers/CustomizationController.d.ts | 22 + .../types/controllers/DialogueController.d.ts | 25 + .../types/controllers/GameController.d.ts | 28 + .../types/controllers/HandbookController.d.ts | 8 + .../types/controllers/HealthController.d.ts | 25 + .../types/controllers/HideoutController.d.ts | 56 + .../types/controllers/InraidController.d.ts | 30 + .../controllers/InsuranceController.d.ts | 37 + .../controllers/InventoryController.d.ts | 107 ++ .../types/controllers/LauncherController.d.ts | 27 + .../types/controllers/LocationController.d.ts | 18 + .../types/controllers/MatchController.d.ts | 28 + .../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 | 37 + .../types/controllers/RagfairController.d.ts | 69 + .../types/controllers/RepairController.d.ts | 40 + .../RepeatableQuestController.d.ts | 217 +++ .../types/controllers/TradeController.d.ts | 21 + .../types/controllers/TraderController.d.ts | 26 + .../types/controllers/WeatherController.d.ts | 10 + .../types/controllers/WishlistController.d.ts | 10 + Ereshkigal-AkiConfig/types/di/Container.d.ts | 14 + Ereshkigal-AkiConfig/types/di/OnLoad.d.ts | 4 + .../types/di/OnLoadOnUpdate.d.ts | 7 + Ereshkigal-AkiConfig/types/di/OnUpdate.d.ts | 4 + Ereshkigal-AkiConfig/types/di/Router.d.ts | 40 + Ereshkigal-AkiConfig/types/di/Serializer.d.ts | 5 + .../types/generators/BotGenerator.d.ts | 36 + .../generators/BotInventoryGenerator.d.ts | 24 + .../types/generators/BotLootGenerator.d.ts | 27 + .../types/generators/BotWeaponGenerator.d.ts | 44 + .../types/generators/LocationGenerator.d.ts | 44 + .../types/generators/PMCLootGenerator.d.ts | 14 + .../generators/RagfairAssortGenerator.d.ts | 25 + .../generators/RagfairOfferGenerator.d.ts | 55 + .../types/generators/WeatherGenerator.d.ts | 19 + .../types/helpers/AssortHelper.d.ts | 16 + .../types/helpers/BotGeneratorHelper.d.ts | 60 + .../types/helpers/BotHelper.d.ts | 22 + .../types/helpers/ContainerHelper.d.ts | 12 + .../types/helpers/DialogueHelper.d.ts | 21 + .../types/helpers/DurabilityLimitsHelper.d.ts | 25 + .../types/helpers/ExtendedProfileHelper.d.ts | 22 + .../types/helpers/GameEventHelper.d.ts | 9 + .../types/helpers/HandbookHelper.d.ts | 33 + .../types/helpers/HealthHelper.d.ts | 23 + .../types/helpers/HideoutHelper.d.ts | 66 + .../types/helpers/HttpServerHelper.d.ts | 12 + .../types/helpers/InRaidHelper.d.ts | 33 + .../types/helpers/InventoryHelper.d.ts | 77 ++ .../types/helpers/ItemHelper.d.ts | 147 +++ .../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/ProfileHelper.d.ts | 33 + .../types/helpers/QuestConditionHelper.d.ts | 7 + .../types/helpers/QuestHelper.d.ts | 68 + .../types/helpers/RagfairHelper.d.ts | 43 + .../types/helpers/RagfairOfferHelper.d.ts | 49 + .../types/helpers/RagfairSellHelper.d.ts | 15 + .../types/helpers/RagfairServerHelper.d.ts | 44 + .../types/helpers/RagfairSortHelper.d.ts | 12 + .../types/helpers/RagfairTaxHelper.d.ts | 15 + .../types/helpers/RepairHelper.d.ts | 20 + .../types/helpers/SecureContainerHelper.d.ts | 13 + .../types/helpers/TradeHelper.d.ts | 44 + .../types/helpers/TraderAssortHelper.d.ts | 23 + .../types/helpers/TraderHelper.d.ts | 35 + .../types/helpers/UtilityHelper.d.ts | 3 + .../types/helpers/WeightedRandomHelper.d.ts | 28 + .../types/ide/BleedingEdgeEntry.d.ts | 1 + Ereshkigal-AkiConfig/types/ide/Compiler.d.ts | 1 + .../types/ide/DebugEntry.d.ts | 1 + .../types/ide/ReleaseEntry.d.ts | 1 + Ereshkigal-AkiConfig/types/ide/TestEntry.d.ts | 1 + .../types/loaders/BundleLoader.d.ts | 22 + .../types/loaders/DelayedModLoader.d.ts | 21 + .../types/loaders/InitialModLoader.d.ts | 58 + .../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 +++++ .../models/eft/common/MemberCategory.d.ts | 13 + .../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/IQuest.d.ts | 110 ++ .../eft/common/tables/IRepeatableQuests.d.ts | 219 +++ .../eft/common/tables/ITemplateItem.d.ts | 401 ++++++ .../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 + .../models/eft/hideout/HideoutAreasEnum.d.ts | 25 + .../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 | 163 +++ .../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 | 18 + .../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/Traders.d.ts | 10 + .../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 | 112 ++ .../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/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 + .../types/models/spt/helpers/Traders.d.ts | 10 + .../types/models/spt/mod/IMod.d.ts | 10 + .../types/models/spt/mod/IModLoader.d.ts | 8 + .../models/spt/mod/IPackageJsonData.d.ts | 11 + .../spt/ragfair/IRagfairServerPrices.d.ts | 4 + .../models/spt/server/IDatabaseTables.d.ts | 51 + .../types/models/spt/server/IHttpServer.d.ts | 11 + .../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 + .../types/models/spt/utils/IAsyncQueue.d.ts | 4 + .../types/models/spt/utils/ICommand.d.ts | 4 + .../types/models/spt/utils/ILogger.d.ts | 10 + .../models/spt/utils/IUuidGenerator.d.ts | 3 + .../types/routers/HttpRouter.d.ts | 11 + .../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 | 10 + .../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 | 47 + .../types/servers/RagfairServer.d.ts | 30 + .../types/servers/SaveServer.d.ts | 28 + .../types/services/FenceService.d.ts | 38 + .../types/services/HashCacheService.d.ts | 19 + .../types/services/InsuranceService.d.ts | 41 + .../types/services/MatchLocationService.d.ts | 8 + .../types/services/ModCompilerService.d.ts | 15 + .../types/services/NotificationService.d.ts | 21 + .../types/services/PaymentService.d.ts | 48 + .../types/services/PlayerService.d.ts | 22 + .../services/RagfairCategoriesService.d.ts | 10 + .../services/RagfairLinkedItemService.d.ts | 9 + .../types/services/RagfairOfferService.d.ts | 64 + .../types/services/RagfairPriceService.d.ts | 30 + .../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 + Ereshkigal-AkiConfig/types/utils/App.d.ts | 14 + .../types/utils/AyncQueue.d.ts | 7 + .../types/utils/DatabaseImporter.d.ts | 18 + .../types/utils/HashUtil.d.ts | 11 + .../types/utils/HttpResponseUtil.d.ts | 16 + .../types/utils/JsonUtil.d.ts | 25 + Ereshkigal-AkiConfig/types/utils/Logger.d.ts | 25 + .../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 + Ereshkigal-AkiConfig/types/utils/VFS.d.ts | 54 + .../types/utils/Watermark.d.ts | 29 + .../types/utils/decorators/Singleton.d.ts | 4 + .../types/utils/decorators/constructor.d.ts | 4 + 501 files changed, 10957 insertions(+), 178 deletions(-) create mode 100644 Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/ide/BleedingEdgeEntry.d.ts create mode 100644 Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/ide/BleedingEdgeEntry.d.ts create mode 100644 Ereshkigal-AkiConfig/.eslintignore create mode 100644 Ereshkigal-AkiConfig/.eslintrc.json create mode 100644 Ereshkigal-AkiConfig/LICENSE create mode 100644 Ereshkigal-AkiConfig/mod.code-workspace create mode 100644 Ereshkigal-AkiConfig/package.json create mode 100644 Ereshkigal-AkiConfig/src/mod.ts create mode 100644 Ereshkigal-AkiConfig/tsconfig.json create mode 100644 Ereshkigal-AkiConfig/types/Program.d.ts create mode 100644 Ereshkigal-AkiConfig/types/TYPES.d.ts create mode 100644 Ereshkigal-AkiConfig/types/Utils.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/BotCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/BundleCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/CustomizationCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/DataCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/DialogueCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/GameCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/HandbookCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/HealthCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/HideoutCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/HttpCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/InraidCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/InsuranceCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/InventoryCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/ItemEventCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/LauncherCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/LocationCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/MatchCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/ModCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/NoteCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/NotifierCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/PresetBuildCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/PresetCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/ProfileCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/QuestCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/RagfairCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/RepairCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/SaveCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/TradeCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/TraderCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/WeatherCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/callbacks/WishlistCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/BotController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/CustomizationController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/DialogueController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/GameController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/HandbookController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/HealthController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/HideoutController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/InraidController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/InsuranceController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/InventoryController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/LauncherController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/LocationController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/MatchController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/NoteController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/NotifierController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/PresetBuildController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/PresetController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/ProfileController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/QuestController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/RagfairController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/RepairController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/RepeatableQuestController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/TradeController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/TraderController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/WeatherController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/controllers/WishlistController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/di/Container.d.ts create mode 100644 Ereshkigal-AkiConfig/types/di/OnLoad.d.ts create mode 100644 Ereshkigal-AkiConfig/types/di/OnLoadOnUpdate.d.ts create mode 100644 Ereshkigal-AkiConfig/types/di/OnUpdate.d.ts create mode 100644 Ereshkigal-AkiConfig/types/di/Router.d.ts create mode 100644 Ereshkigal-AkiConfig/types/di/Serializer.d.ts create mode 100644 Ereshkigal-AkiConfig/types/generators/BotGenerator.d.ts create mode 100644 Ereshkigal-AkiConfig/types/generators/BotInventoryGenerator.d.ts create mode 100644 Ereshkigal-AkiConfig/types/generators/BotLootGenerator.d.ts create mode 100644 Ereshkigal-AkiConfig/types/generators/BotWeaponGenerator.d.ts create mode 100644 Ereshkigal-AkiConfig/types/generators/LocationGenerator.d.ts create mode 100644 Ereshkigal-AkiConfig/types/generators/PMCLootGenerator.d.ts create mode 100644 Ereshkigal-AkiConfig/types/generators/RagfairAssortGenerator.d.ts create mode 100644 Ereshkigal-AkiConfig/types/generators/RagfairOfferGenerator.d.ts create mode 100644 Ereshkigal-AkiConfig/types/generators/WeatherGenerator.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/AssortHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/BotGeneratorHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/BotHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/ContainerHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/DialogueHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/DurabilityLimitsHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/ExtendedProfileHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/GameEventHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/HandbookHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/HealthHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/HideoutHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/HttpServerHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/InRaidHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/InventoryHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/ItemHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/NotificationSendHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/NotifierHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/PaymentHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/PresetHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/ProfileHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/QuestConditionHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/QuestHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/RagfairHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/RagfairOfferHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/RagfairSellHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/RagfairServerHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/RagfairSortHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/RagfairTaxHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/RepairHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/SecureContainerHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/TradeHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/TraderAssortHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/TraderHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/UtilityHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/helpers/WeightedRandomHelper.d.ts create mode 100644 Ereshkigal-AkiConfig/types/ide/BleedingEdgeEntry.d.ts create mode 100644 Ereshkigal-AkiConfig/types/ide/Compiler.d.ts create mode 100644 Ereshkigal-AkiConfig/types/ide/DebugEntry.d.ts create mode 100644 Ereshkigal-AkiConfig/types/ide/ReleaseEntry.d.ts create mode 100644 Ereshkigal-AkiConfig/types/ide/TestEntry.d.ts create mode 100644 Ereshkigal-AkiConfig/types/loaders/BundleLoader.d.ts create mode 100644 Ereshkigal-AkiConfig/types/loaders/DelayedModLoader.d.ts create mode 100644 Ereshkigal-AkiConfig/types/loaders/InitialModLoader.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/bot/IGenerateBotsRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/IEmptyRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/IGlobals.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/ILocation.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/ILocationBase.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/ILocationsSourceDestinationBase.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/ILooseLoot.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/IMetricsTableData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/IPmcData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/MemberCategory.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/request/IBaseInteractionRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/tables/IBotBase.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/tables/IBotCore.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/tables/IBotType.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/tables/ICustomizationItem.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/tables/IHandbookBase.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/tables/IItem.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/tables/ILocationsBase.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/tables/ILootBase.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/tables/IQuest.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/tables/IRepeatableQuests.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/tables/ITemplateItem.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/common/tables/ITrader.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/customization/IBuyClothingRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/customization/IWearClothingRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/dialog/IFriendRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/dialog/IGetAllAttachmentsRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/dialog/IGetAllAttachmentsResponse.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/dialog/IGetChatServerListRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/dialog/IGetFriendListDataResponse.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/dialog/IGetMailDialogInfoRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/dialog/IGetMailDialogListRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/dialog/IGetMailDialogViewRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/dialog/IGetMailDialogViewResponseData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/dialog/IPinDialogRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/dialog/IRemoveDialogRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/dialog/ISendMessageRequest.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/dialog/ISetDialogReadRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/game/IGameConfigResponse.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/game/IGameEmptyCrcRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/game/IVersionValidateRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/health/IHealthTreatmentRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/health/IOffraidEatRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/health/IOffraidHealRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/health/ISyncHealthRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/hideout/HideoutAreasEnum.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/hideout/HideoutUpgradeCompleteRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutArea.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutContinousProductionStartRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutProduction.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutPutItemInRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutScavCase.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutScavCaseStartRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutSettingsBase.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutSingleProductionStartRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutTakeItemOutRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutTakeProductionRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutToggleAreaRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutUpgradeCompleteRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutUpgradeRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/httpResponse/IGetBodyResponseData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/httpResponse/INullResponseData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inRaid/IRegisterPlayerRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inRaid/ISaveProgressRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/insurance/IGetInsuranceCostRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/insurance/IInsureRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inventory/IAddItemRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryAddRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryBaseActionRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryBindRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryCreateMarkerRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryDeleteMarkerRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryEditMarkerRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryExamineRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryFoldRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryMergeRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryMoveRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryReadEncyclopediaRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryRemoveRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inventory/IInventorySortRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inventory/IInventorySplitRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inventory/IInventorySwapRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryTagRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryToggleRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryTransferRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/itemEvent/IEmptyItemEventRouterResponse.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/itemEvent/IItemEventRouterBase.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/itemEvent/IItemEventRouterRequest.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/itemEvent/IItemEventRouterResponse.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/launcher/IChangeRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/launcher/IGetMiniProfileRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/launcher/ILoginRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/launcher/IMiniProfile.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/launcher/IRegisterData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/launcher/IRemoveProfileData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/location/IGetLocationRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/match/IEndOfflineRaidRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/match/IGetProfileRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/match/IStartOffineRaidRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/notes/INoteActionData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/notifier/INotifier.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/notifier/ISelectProfileRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/player/IPlayerIncrementSkillLevelRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/profile/IAkiProfile.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/profile/IProfileChangeNicknameRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/profile/IProfileChangeVoiceRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/profile/IProfileCreateRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/profile/ISearchFriendRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/profile/ISearchFriendResponse.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/profile/IValidateNicknameRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/quests/IAcceptQuestRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/quests/ICompleteQuestRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/quests/IHandoverQuestRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/quests/IListQuestsRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/quests/IRepeatableQuestChangeRequest.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/ragfair/IAddOfferRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/ragfair/IExtendOfferRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/ragfair/IGetItemPriceResult.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/ragfair/IGetMarketPriceRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/ragfair/IGetOffersResult.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/ragfair/IRagfairOffer.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/ragfair/IRemoveOfferRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/ragfair/ISearchRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/repair/IBaseRepairActionDataRequest.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/repair/IRepairActionDataRequest.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/repair/ITraderRepairActionDataRequest.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/trade/IProcessBaseTradeRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/trade/IProcessBuyTradeRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/trade/IProcessRagfairTradeRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/trade/IProcessSellTradeRequestData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/weather/IWeatherData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/eft/wishlist/IWishlistActionData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/enums/BaseClasses.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/enums/ConfigTypes.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/enums/ELocationName.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/enums/EquipmentSlots.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/enums/HideoutAreas.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/enums/MemberCategory.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/enums/MessageType.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/enums/Money.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/enums/Traders.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/external/mod.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/external/tsyringe.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/bindings/Route.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IBotCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IBundleCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/ICustomizationCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IDataCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IDialogueCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IGameCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IHandbookCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IHealthCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IHideoutCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IHttpCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IInraidCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IInsuranceCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IInventoryCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IItemEventCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/ILauncherCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/ILocationCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IMatchCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IModCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/INoteCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/INotifierCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IPresetBuildCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IPresetCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IProfileCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IQuestCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IRagfairCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IRepairCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/ISaveCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/ITradeCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/ITraderCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IWeatherCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/callbacks/IWishlistCallbacks.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/config/IAirdropConfig.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/config/IBaseConfig.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/config/IBotConfig.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/config/ICoreConfig.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/config/IHealthConfig.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/config/IHideoutConfig.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/config/IHttpConfig.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/config/IInRaidConfig.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/config/IInsuranceConfig.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/config/IInventoryConfig.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/config/ILocationConfig.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/config/IMatchConfig.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/config/IQuestConfig.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/config/IRagfairConfig.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/config/IRepairConfig.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/config/ITraderConfig.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/config/IWeatherConfig.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/controllers/IBotController.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/generators/IBotGenerator.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/generators/ILocationGenerator.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/generators/IPMCLootGenerator.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/generators/IRagfairAssortGenerator.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/generators/IRagfairOfferGenerator.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/helpers/Traders.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/mod/IMod.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/mod/IModLoader.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/mod/IPackageJsonData.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/ragfair/IRagfairServerPrices.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/server/IDatabaseTables.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/server/IHttpServer.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/server/ILocaleBase.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/server/ILocations.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/server/IServerBase.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/server/ISettingsBase.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/utils/IAsyncQueue.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/utils/ICommand.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/utils/ILogger.d.ts create mode 100644 Ereshkigal-AkiConfig/types/models/spt/utils/IUuidGenerator.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/HttpRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/ImageRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/ItemEventRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/dynamic/BotDynamicRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/dynamic/BundleDynamicRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/dynamic/CustomizationDynamicRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/dynamic/DataDynamicRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/dynamic/HttpDynamicRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/dynamic/InraidDynamicRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/dynamic/LocationDynamicRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/dynamic/NotifierDynamicRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/dynamic/TraderDynamicRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/item_events/CustomizationItemEventRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/item_events/HealthItemEventRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/item_events/HideoutItemEventRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/item_events/InsuranceItemEventRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/item_events/InventoryItemEventRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/item_events/NoteItemEventRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/item_events/PresetBuildItemEventRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/item_events/QuestItemEventRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/item_events/RagfairItemEventRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/item_events/RepairItemEventRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/item_events/TradeItemEventRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/item_events/WishlistItemEventRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/save_load/HealthSaveLoadRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/save_load/InraidSaveLoadRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/save_load/InsuranceSaveLoadRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/save_load/ProfileSaveLoadRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/serializers/BundleSerializer.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/serializers/ImageSerializer.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/serializers/NotifySerializer.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/BotStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/BundleStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/CustomizationStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/DataStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/DialogStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/GameStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/HealthStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/InraidStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/InsuranceStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/ItemEventStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/LauncherStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/LocationStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/MatchStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/NotifierStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/PresetStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/ProfileStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/QuestStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/RagfairStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/TraderStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/routers/static/WeatherStaticRouter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/servers/ConfigServer.d.ts create mode 100644 Ereshkigal-AkiConfig/types/servers/DatabaseServer.d.ts create mode 100644 Ereshkigal-AkiConfig/types/servers/HttpServer.d.ts create mode 100644 Ereshkigal-AkiConfig/types/servers/RagfairServer.d.ts create mode 100644 Ereshkigal-AkiConfig/types/servers/SaveServer.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/FenceService.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/HashCacheService.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/InsuranceService.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/MatchLocationService.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/ModCompilerService.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/NotificationService.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/PaymentService.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/PlayerService.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/RagfairCategoriesService.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/RagfairLinkedItemService.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/RagfairOfferService.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/RagfairPriceService.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/RagfairRequiredItemsService.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/TraderAssortService.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/mod/dynamicRouter/DynamicRouterMod.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/mod/dynamicRouter/DynamicRouterModService.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/mod/image/imageRouteService.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/mod/onLoad/OnLoadMod.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/mod/onLoad/OnLoadModService.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/mod/onUpdate/OnUpdateMod.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/mod/onUpdate/OnUpdateModService.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/mod/staticRouter/StaticRouterMod.d.ts create mode 100644 Ereshkigal-AkiConfig/types/services/mod/staticRouter/StaticRouterModService.d.ts create mode 100644 Ereshkigal-AkiConfig/types/utils/App.d.ts create mode 100644 Ereshkigal-AkiConfig/types/utils/AyncQueue.d.ts create mode 100644 Ereshkigal-AkiConfig/types/utils/DatabaseImporter.d.ts create mode 100644 Ereshkigal-AkiConfig/types/utils/HashUtil.d.ts create mode 100644 Ereshkigal-AkiConfig/types/utils/HttpResponseUtil.d.ts create mode 100644 Ereshkigal-AkiConfig/types/utils/JsonUtil.d.ts create mode 100644 Ereshkigal-AkiConfig/types/utils/Logger.d.ts create mode 100644 Ereshkigal-AkiConfig/types/utils/MathUtil.d.ts create mode 100644 Ereshkigal-AkiConfig/types/utils/ObjectId.d.ts create mode 100644 Ereshkigal-AkiConfig/types/utils/RandomUtil.d.ts create mode 100644 Ereshkigal-AkiConfig/types/utils/TimeUtil.d.ts create mode 100644 Ereshkigal-AkiConfig/types/utils/UUidGenerator.d.ts create mode 100644 Ereshkigal-AkiConfig/types/utils/VFS.d.ts create mode 100644 Ereshkigal-AkiConfig/types/utils/Watermark.d.ts create mode 100644 Ereshkigal-AkiConfig/types/utils/decorators/Singleton.d.ts create mode 100644 Ereshkigal-AkiConfig/types/utils/decorators/constructor.d.ts diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/Notifications.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/Notifications.ts index da83f15..fede935 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/Notifications.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/Notifications.ts @@ -1,5 +1,5 @@ import { inject, injectable } from "tsyringe"; -import type { ILogger } from "../types/models/spt/utils/ILogger"; +import type { ILogger } from "@spt-aki/models/spt/utils/ILogger"; import { AIOConfigHandler } from "./AIOConfigHandler"; @injectable() diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/fixes.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/fixes.ts index a62ecee..e54f8aa 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/fixes.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/fixes.ts @@ -1,5 +1,5 @@ import { inject, injectable } from "tsyringe"; -import type { DatabaseServer } from "../types/servers/DatabaseServer"; +import type { DatabaseServer } from "@spt-aki/servers/DatabaseServer"; import { AIOConfigHandler } from "./AIOConfigHandler"; @injectable() diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/items.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/items.ts index a512db4..8038932 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/items.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/items.ts @@ -1,9 +1,9 @@ -import type { ILogger } from "../types/models/spt/utils/ILogger"; -import type { DatabaseServer } from "../types/servers/DatabaseServer"; +import type { ILogger } from "@spt-aki/models/spt/utils/ILogger"; +import type { DatabaseServer } from "@spt-aki/servers/DatabaseServer"; import { Other } from "./other"; import { inject, injectable } from "tsyringe"; import { AIOConfigHandler } from "./AIOConfigHandler"; -import { BaseClasses } from "../types/models/enums/BaseClasses"; +import { BaseClasses } from "@spt-aki/models/enums/BaseClasses"; @injectable() export class Items @@ -27,7 +27,7 @@ export class Items if (!this.other.isThisIDaMod([id])) { //Examine all items - if (!this.configHandler.getConfig().items.allExaminedItems) + if (this.configHandler.getConfig().items.allExaminedItems) { this.editSimpleItemData(id, "ExaminedByDefault", true); } diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/mod.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/mod.ts index 2c35bab..0e22800 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/mod.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/mod.ts @@ -1,7 +1,7 @@ import { DependencyContainer, Lifecycle } from "tsyringe"; -import type { StaticRouterModService } from "../types/services/mod/staticRouter/StaticRouterModService"; -import type { IMod } from "../types/models/external/mod"; -import type { ILogger } from "../types/models/spt/utils/ILogger"; +import type { StaticRouterModService } from "@spt-aki/services/mod/staticRouter/StaticRouterModService"; +import type { IMod } from "@spt-aki/models/external/mod"; +import type { ILogger } from "@spt-aki/models/spt/utils/ILogger"; import { Other } from "./other"; import { Items } from "./items"; import { Raids } from "./raids"; @@ -27,7 +27,7 @@ class AIOMod implements IMod container.register("AIOPlayer", Player); container.register("AIONotifications", Notifications); const staticRoute = container.resolve("StaticRouterModService"); - container.resolve("WinstonLogger"); + this.logger = container.resolve("WinstonLogger"); if (container.resolve("AIOConfigHandler").getConfig().player.allSkillsMaster) { @@ -36,13 +36,14 @@ class AIOMod implements IMod [ { url: "/client/game/version/validate", - action: (sessionID: string): any => - { + action: (url: string, info: any, sessionID: string, output: string): any => + { + this.logger.info(sessionID); return container.resolve("AIOPlayer").maxSkills(sessionID); } } ], - "AIOMod" + "aki" ) } @@ -53,13 +54,13 @@ class AIOMod implements IMod [ { url: "/client/game/bot/generate", - action: (info: any): any => + action: (url: string, info: any, sessionID: string, output: string): any => { return container.resolve("AIOOther").spawnRaidersEverywhere(info); } } ], - "AIOMod" + "aki" ) } @@ -73,7 +74,7 @@ class AIOMod implements IMod container.resolve("AIOFixes").applyChanges(); container.resolve("AIORaids").applyChanges(); container.resolve("AIOItems").applyChanges(); - container.resolve("AIOTrader").applyChanges(); + container.resolve("AIOTraders").applyChanges(); container.resolve("AIOPlayer").applyChanges(); if (container.resolve("AIOConfigHandler").getConfig().other.showModLogs) diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/other.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/other.ts index 352a6d0..821d6ca 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/other.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/other.ts @@ -1,7 +1,7 @@ -import type { HttpResponseUtil } from "../types/utils/HttpResponseUtil" -import type { BotController } from "../types/controllers/BotController" -import type { IBotBase } from "../types/models/eft/common/tables/IBotBase"; -import type { IGetBodyResponseData } from "../types/models/eft/httpResponse/IGetBodyResponseData"; +import type { HttpResponseUtil } from "@spt-aki/utils/HttpResponseUtil" +import type { BotController } from "@spt-aki/controllers/BotController" +import type { IBotBase } from "@spt-aki/models/eft/common/tables/IBotBase"; +import type { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData"; import { AIOConfigHandler } from "./AIOConfigHandler"; import { inject, injectable } from "tsyringe"; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/player.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/player.ts index f71d8bf..3dd6054 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/player.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/player.ts @@ -1,9 +1,9 @@ import { inject, injectable } from "tsyringe"; -import type { ProfileHelper } from "../types/helpers/ProfileHelper"; -import type { IPmcData } from "../types/models/eft/common/IPmcData"; -import type { ILogger } from "../types/models/spt/utils/ILogger"; -import type { DatabaseServer } from "../types/servers/DatabaseServer"; -import type { HttpResponseUtil } from "../types/utils/HttpResponseUtil"; +import type { ProfileHelper } from "@spt-aki/helpers/ProfileHelper"; +import type { IPmcData } from "@spt-aki//models/eft/common/IPmcData"; +import type { ILogger } from "@spt-aki/models/spt/utils/ILogger"; +import type { DatabaseServer } from "@spt-aki/servers/DatabaseServer"; +import type { HttpResponseUtil } from "@spt-aki/utils/HttpResponseUtil"; import { AIOConfigHandler } from "./AIOConfigHandler"; @injectable() diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/raids.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/raids.ts index 116ecc6..bba9e6a 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/raids.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/raids.ts @@ -1,6 +1,6 @@ import { inject, injectable } from "tsyringe"; -import type { BossLocationSpawn } from "../types/models/eft/common/ILocationBase"; -import type { DatabaseServer } from "../types/servers/DatabaseServer"; +import type { BossLocationSpawn } from "@spt-aki/models/eft/common/ILocationBase"; +import type { DatabaseServer } from "@spt-aki/servers/DatabaseServer"; import { AIOConfigHandler } from "./AIOConfigHandler"; import { Other } from "./other"; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/traders.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/traders.ts index 34a7b5e..c845604 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/traders.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/src/traders.ts @@ -1,9 +1,9 @@ import { inject, injectable } from "tsyringe"; -import type { DatabaseServer } from "../types/servers/DatabaseServer"; +import type { DatabaseServer } from "@spt-aki/servers/DatabaseServer"; import { AIOConfigHandler } from "./AIOConfigHandler"; import { Other } from "./other"; -import { Money } from "../types/models/enums/Money" -import { Traders as eftTraders} from "../types/models/spt/helpers/Traders" +import { Money } from "@spt-aki/models/enums/Money" +import { Traders as eftTraders} from "@spt-aki/models/spt/helpers/Traders" @injectable() export class Traders diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/CustomizationController.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/CustomizationController.d.ts index 6fd3b12..698e6be 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/CustomizationController.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/CustomizationController.d.ts @@ -1,13 +1,13 @@ -import { DatabaseServer } from "../servers/DatabaseServer"; -import { SaveServer } from "../servers/SaveServer"; import { ProfileHelper } from "../helpers/ProfileHelper"; import { IPmcData } from "../models/eft/common/IPmcData"; -import { IWearClothingRequestData } from "../models/eft/customization/IWearClothingRequestData"; -import { IBuyClothingRequestData } from "../models/eft/customization/IBuyClothingRequestData"; 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 { ItemEventRouter } from "../routers/ItemEventRouter"; 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 { private logger; private itemEventRouter; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/DialogueController.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/DialogueController.d.ts index 8cf2531..235594f 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/DialogueController.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/DialogueController.d.ts @@ -19,6 +19,7 @@ export declare class DialogueController { setDialoguePin(dialogueID: string, shouldPin: boolean, sessionID: string): void; setRead(dialogueIDs: string[], sessionID: string): void; getAllAttachments(dialogueID: string, sessionID: string): IGetAllAttachmentsResponse; + private messagesHaveUncollectedRewards; private removeExpiredItems; update(): void; } diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/GameController.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/GameController.d.ts index 5c9a464..bb2a55a 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/GameController.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/GameController.d.ts @@ -13,7 +13,15 @@ export declare class GameController { private configServer; private httpConfig; constructor(logger: ILogger, watermark: Watermark, httpServerHelper: HttpServerHelper, profileHelper: ProfileHelper, configServer: ConfigServer); - gameStart(url: string, info: IEmptyRequestData, sessionID: string): void; + gameStart(_url: string, _info: IEmptyRequestData, sessionID: string): void; + private addMissingBonusesProperty; + private addMissingRepeatableQuestsProperty; + private addMissingWeaponRepairSkill; + private addMissingAkiVersionTagToProfile; + private addMissingArmorRepairSkill; + private fixNullTraderSalesSums; + private removeDanglingConditionCounters; + private removeDanglingBackendCounters; getGameConfig(sessionID: string): IGameConfigResponse; getServer(): any[]; private getActiveRepeatableQuests; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/HandbookController.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/HandbookController.d.ts index 5a55e89..f473437 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/HandbookController.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/HandbookController.d.ts @@ -1,5 +1,5 @@ -import { DatabaseServer } from "../servers/DatabaseServer"; import { HandbookHelper } from "../helpers/HandbookHelper"; +import { DatabaseServer } from "../servers/DatabaseServer"; export declare class HandbookController { private databaseServer; private handbookHelper; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/LocationController.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/LocationController.d.ts index dde270c..41a8719 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/LocationController.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/LocationController.d.ts @@ -1,10 +1,10 @@ -import { DatabaseServer } from "../servers/DatabaseServer"; 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"; -import { ILogger } from "../models/spt/utils/ILogger"; export declare class LocationController { private jsonUtil; private logger; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/NoteController.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/NoteController.d.ts index ecd8001..4d3420e 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/NoteController.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/NoteController.d.ts @@ -1,6 +1,6 @@ import { IPmcData } from "../models/eft/common/IPmcData"; -import { INoteActionData } from "../models/eft/notes/INoteActionData"; import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { INoteActionData } from "../models/eft/notes/INoteActionData"; import { ItemEventRouter } from "../routers/ItemEventRouter"; declare class NoteController { private itemEventRouter; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/PresetBuildController.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/PresetBuildController.d.ts index a15b181..11c5c3e 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/PresetBuildController.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/PresetBuildController.d.ts @@ -1,11 +1,11 @@ import { ItemHelper } from "../helpers/ItemHelper"; -import { SaveServer } from "../servers/SaveServer"; import { IPmcData } from "../models/eft/common/IPmcData"; -import { IPresetBuildActionRequestData } from "../models/eft/presetBuild/IPresetBuildActionRequestData"; import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IPresetBuildActionRequestData } from "../models/eft/presetBuild/IPresetBuildActionRequestData"; import { WeaponBuild } from "../models/eft/profile/IAkiProfile"; -import { HashUtil } from "../utils/HashUtil"; import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { SaveServer } from "../servers/SaveServer"; +import { HashUtil } from "../utils/HashUtil"; export declare class PresetBuildController { private hashUtil; private itemEventRouter; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/ProfileController.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/ProfileController.d.ts index 46b66d8..c8bd5f1 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/ProfileController.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/ProfileController.d.ts @@ -1,18 +1,18 @@ -import { SaveServer } from "../servers/SaveServer"; -import { DatabaseServer } from "../servers/DatabaseServer"; +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 { IValidateNicknameRequestData } from "../models/eft/profile/IValidateNicknameRequestData"; 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"; -import { IMiniProfile } from "../models/eft/launcher/IMiniProfile"; -import { ExtendedProfileHelper } from "../helpers/ExtendedProfileHelper"; export declare class ProfileController { private hashUtil; private timeUtil; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/RepeatableQuestController.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/RepeatableQuestController.d.ts index a33ad62..2dedc7e 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/RepeatableQuestController.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/controllers/RepeatableQuestController.d.ts @@ -89,7 +89,7 @@ export declare class RepeatableQuestController { * @param {string} sessionId Player's session id * @returns {array} array of "repeatableQuestObjects" as descibed above */ - getClientRepeatableQuests(info: IEmptyRequestData, sessionID: string): IPmcDataRepeatableQuest[]; + 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 diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/generators/RagfairAssortGenerator.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/generators/RagfairAssortGenerator.d.ts index 1897050..06d3250 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/generators/RagfairAssortGenerator.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/generators/RagfairAssortGenerator.d.ts @@ -10,8 +10,16 @@ export declare class RagfairAssortGenerator { private databaseServer; private generatedAssortItems; 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[]; private assortsAreGenerated; + /** + * Generate an array of items the flea can sell + * @returns array of unique items + */ private generateRagfairAssortItems; private createRagfairAssortItem; } diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/generators/RagfairOfferGenerator.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/generators/RagfairOfferGenerator.d.ts index 2939b3a..e3fbe4a 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/generators/RagfairOfferGenerator.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/generators/RagfairOfferGenerator.d.ts @@ -39,6 +39,10 @@ export declare class RagfairOfferGenerator { private getRating; private getRatingGrowing; private getOfferEndTime; + /** + * 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; private getItemCondition; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/helpers/HideoutHelper.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/helpers/HideoutHelper.d.ts index 5b4a5ad..d6a4414 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/helpers/HideoutHelper.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/helpers/HideoutHelper.d.ts @@ -48,6 +48,8 @@ export declare class HideoutHelper { applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void; private applySkillXPBoost; updatePlayerHideout(sessionID: string): void; + private updateWaterCollector; + private doesWaterCollectorHaveFilter; private updateFuel; private updateWaterFilters; private getAreaUpdObject; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/helpers/RagfairServerHelper.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/helpers/RagfairServerHelper.d.ts index aca9651..d29ba42 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/helpers/RagfairServerHelper.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/helpers/RagfairServerHelper.d.ts @@ -24,8 +24,13 @@ export declare class RagfairServerHelper { private questConfig; private static TPL_GOODS_RETURNED; constructor(randomUtil: RandomUtil, hashUtil: HashUtil, saveServer: SaveServer, databaseServer: DatabaseServer, profileHelper: ProfileHelper, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, jsonUtil: JsonUtil, configServer: ConfigServer); + /** + * Is item valid / on blacklist / quest item + * @param itemDetails + * @returns boolean + */ isItemValidRagfairItem(itemDetails: [boolean, ITemplateItem]): boolean; - isItemBlacklisted(itemTemplateId: string): boolean; + private isItemBlacklisted; isTrader(userID: string): boolean; isPlayer(userID: string): boolean; returnItems(sessionID: string, items: any[]): void; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/helpers/TradeHelper.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/helpers/TradeHelper.d.ts index a78cd20..475390b 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/helpers/TradeHelper.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/helpers/TradeHelper.d.ts @@ -21,9 +21,22 @@ export declare class TradeHelper { private inventoryHelper; private 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; /** - * Selling item to trader + * Sell item to trader + * @param pmcData + * @param body + * @param sessionID + * @returns */ sellItem(pmcData: IPmcData, body: IProcessSellTradeRequestData, sessionID: string): IItemEventRouterResponse; private incrementAssortBuyCount; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/ide/BleedingEdgeEntry.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/ide/BleedingEdgeEntry.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/ide/BleedingEdgeEntry.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/loaders/BundleLoader.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/loaders/BundleLoader.d.ts index 9abfe9f..4f7664c 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/loaders/BundleLoader.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/loaders/BundleLoader.d.ts @@ -2,12 +2,12 @@ import { HttpServerHelper } from "../helpers/HttpServerHelper"; import { JsonUtil } from "../utils/JsonUtil"; import { VFS } from "../utils/VFS"; declare class BundleInfo { - private httpServerHelper; + modPath: string; key: string; path: string; filepath: string; dependencyKeys: string[]; - constructor(modpath: string, bundle: any, httpServerHelper: HttpServerHelper); + constructor(modpath: string, bundle: any, bundlePath: string, bundleFilepath: string); } export declare class BundleLoader { private httpServerHelper; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/loaders/InitialModLoader.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/loaders/InitialModLoader.d.ts index 8168cec..5957d35 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/loaders/InitialModLoader.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/loaders/InitialModLoader.d.ts @@ -26,6 +26,25 @@ export declare class InitialModLoader implements IModLoader { getModPath(mod: string): string; private importClass; private importMods; + /** + * + * @param mods Get an array of broken/invalid mods by name + * @returns Mod names array + */ + private getBrokenMods; + /** + * Get packageJson data for mods + * @param mods mods to get packageJson for + * @returns dictionary + */ + private getModsPackageData; + /** + * Does mod have "delayedLoad(" string in its entry class + * @param modFolderName folder name + * @param modToValidate package.json details + * @returns boolean + */ + private isModSpt300Compatible; private isModCombatibleWithAki; private executeMods; private sortModsLoadOrder; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/routers/ImageRouter.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/routers/ImageRouter.d.ts index cc47018..97e580d 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/routers/ImageRouter.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/routers/ImageRouter.d.ts @@ -1,7 +1,7 @@ /// import { IncomingMessage, ServerResponse } from "http"; import { IHttpServer } from "../models/spt/server/IHttpServer"; -import { ImageRouteService } from "../services/mod/image/imageRouteService"; +import { ImageRouteService } from "../services/mod/image/ImageRouteService"; import { VFS } from "../utils/VFS"; export declare class ImageRouter { private vfs; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/routers/serializers/BundleSerializer.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/routers/serializers/BundleSerializer.d.ts index 5f275c4..7952e9c 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/routers/serializers/BundleSerializer.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/routers/serializers/BundleSerializer.d.ts @@ -1,7 +1,7 @@ -import { IHttpServer } from "../../models/spt/server/IHttpServer"; -import { ILogger } from "../../models/spt/utils/ILogger"; 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 { private logger; private bundleLoader; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/servers/RagfairServer.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/servers/RagfairServer.d.ts index a2369b0..cf56d64 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/servers/RagfairServer.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/servers/RagfairServer.d.ts @@ -1,38 +1,21 @@ import { RagfairOfferGenerator } from "../generators/RagfairOfferGenerator"; -import { ProfileHelper } from "../helpers/ProfileHelper"; -import { RagfairServerHelper } from "../helpers/RagfairServerHelper"; -import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; import { IRagfairOffer } from "../models/eft/ragfair/IRagfairOffer"; import { ILogger } from "../models/spt/utils/ILogger"; -import { ItemEventRouter } from "../routers/ItemEventRouter"; import { RagfairCategoriesService } from "../services/RagfairCategoriesService"; -import { RagfairLinkedItemService } from "../services/RagfairLinkedItemService"; import { RagfairOfferService } from "../services/RagfairOfferService"; -import { RagfairPriceService } from "../services/RagfairPriceService"; import { RagfairRequiredItemsService } from "../services/RagfairRequiredItemsService"; -import { HttpResponseUtil } from "../utils/HttpResponseUtil"; import { ConfigServer } from "./ConfigServer"; -import { SaveServer } from "./SaveServer"; export declare class RagfairServer { private logger; private ragfairOfferGenerator; - private ragfairServerHelper; - private profileHelper; - private itemEventRouter; - private httpResponse; - private saveServer; - private ragfairPriceService; private ragfairOfferService; - private ragfairLinkedItemService; private ragfairCategoriesService; private ragfairRequiredItemsService; private configServer; private ragfairConfig; - constructor(logger: ILogger, ragfairOfferGenerator: RagfairOfferGenerator, ragfairServerHelper: RagfairServerHelper, profileHelper: ProfileHelper, itemEventRouter: ItemEventRouter, httpResponse: HttpResponseUtil, saveServer: SaveServer, ragfairPriceService: RagfairPriceService, ragfairOfferService: RagfairOfferService, ragfairLinkedItemService: RagfairLinkedItemService, ragfairCategoriesService: RagfairCategoriesService, ragfairRequiredItemsService: RagfairRequiredItemsService, configServer: ConfigServer); + constructor(logger: ILogger, ragfairOfferGenerator: RagfairOfferGenerator, ragfairOfferService: RagfairOfferService, ragfairCategoriesService: RagfairCategoriesService, ragfairRequiredItemsService: RagfairRequiredItemsService, configServer: ConfigServer); load(): void; update(): void; - private processExpiredOffer; - returnPlayerOffer(offer: IRagfairOffer): IItemEventRouterResponse; getCategories(): Record; /** * Disable/Hide an offer from flea @@ -40,6 +23,7 @@ export declare class RagfairServer { */ 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/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/services/ModCompilerService.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/services/ModCompilerService.d.ts index d316e48..cf7cc21 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/services/ModCompilerService.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/services/ModCompilerService.d.ts @@ -6,8 +6,10 @@ export declare class ModCompilerService { private hashCacheService; private vfs; constructor(logger: ILogger, hashCacheService: HashCacheService, vfs: VFS); - compileMod(modName: string, path: string, modTypeScriptFiles: string[]): Promise; + compileMod(modName: string, modPath: string, modTypeScriptFiles: string[]): Promise; private compile; + private buildDepth; + private calculateDepth; private areFilesReady; private delay; } diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/services/RagfairLinkedItemService.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/services/RagfairLinkedItemService.d.ts index d5dc58e..3dbcf6f 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/services/RagfairLinkedItemService.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/services/RagfairLinkedItemService.d.ts @@ -4,6 +4,6 @@ export declare class RagfairLinkedItemService { private linkedItemsCache; constructor(databaseServer: DatabaseServer); getLinkedItems(linkedSearchId: string): Iterable; - buildLinkedItemTable(): void; + private buildLinkedItemTable; private getFilters; } diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/services/RagfairOfferService.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/services/RagfairOfferService.d.ts index 4e4ae26..9b1bf8d 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/services/RagfairOfferService.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/services/RagfairOfferService.d.ts @@ -1,20 +1,30 @@ +import { ProfileHelper } from "../helpers/ProfileHelper"; +import { RagfairServerHelper } from "../helpers/RagfairServerHelper"; +import { Item } from "../models/eft/common/tables/IItem"; +import { IRagfairOffer } from "../models/eft/ragfair/IRagfairOffer"; +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"; -import { Item } from "../models/eft/common/tables/IItem"; -import { IRagfairOffer } from "../models/eft/ragfair/IRagfairOffer"; export declare class RagfairOfferService { + private logger; private timeUtil; private databaseServer; private saveServer; + private ragfairServerHelper; + private profileHelper; + private itemEventRouter; + private httpResponse; private configServer; private playerOffersLoaded; private toUpdate; private expiredOffers; private offers; private ragfairConfig; - constructor(timeUtil: TimeUtil, databaseServer: DatabaseServer, saveServer: SaveServer, configServer: ConfigServer); + 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[]; @@ -22,20 +32,13 @@ export declare class RagfairOfferService { addOfferToExpired(offer: Item): void; setTraderUpdateStatus(traderId: string, shouldUpdate: boolean): void; shouldTraderBeUpdated(traderID: string): boolean; - /** - * Get an array of expired offers that are still shown to player - * @returns IRagfairOffer array - */ - getExpiredActiveOffers(): IRagfairOffer[]; getExpiredOfferCount(): number; - getOfferIndexByOfferId(offerId: string): 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; - private isExpired; /** * Does the offer exist on the ragfair * @param offerId offer id to check for @@ -44,9 +47,18 @@ export declare class RagfairOfferService { doesOfferExist(offerId: string): boolean; getTraders(): Record; flagTraderForUpdate(expiredOfferUserId: string): void; - removeOffer(globalOfferIndex: number, countToRemove: number): 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 + */ + private getStaleOffers; + private isStale; + private processStaleOffer; + private returnPlayerOffer; } diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/utils/VFS.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/utils/VFS.d.ts index b064cf4..d567615 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/utils/VFS.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/utils/VFS.d.ts @@ -29,7 +29,7 @@ export declare class VFS { 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; + 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; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/utils/Watermark.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/utils/Watermark.d.ts index 1a5dee3..3a8cb3a 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/utils/Watermark.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/dist/types/utils/Watermark.d.ts @@ -5,6 +5,7 @@ export declare class WatermarkLocale { getLocale(): string; getDescription(): string[]; getWarning(): string[]; + getModding(): string[]; } export declare class Watermark { private logger; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/Notifications.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/Notifications.ts index da83f15..fede935 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/Notifications.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/Notifications.ts @@ -1,5 +1,5 @@ import { inject, injectable } from "tsyringe"; -import type { ILogger } from "../types/models/spt/utils/ILogger"; +import type { ILogger } from "@spt-aki/models/spt/utils/ILogger"; import { AIOConfigHandler } from "./AIOConfigHandler"; @injectable() diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/fixes.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/fixes.ts index a62ecee..e54f8aa 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/fixes.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/fixes.ts @@ -1,5 +1,5 @@ import { inject, injectable } from "tsyringe"; -import type { DatabaseServer } from "../types/servers/DatabaseServer"; +import type { DatabaseServer } from "@spt-aki/servers/DatabaseServer"; import { AIOConfigHandler } from "./AIOConfigHandler"; @injectable() diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/items.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/items.ts index a512db4..8038932 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/items.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/items.ts @@ -1,9 +1,9 @@ -import type { ILogger } from "../types/models/spt/utils/ILogger"; -import type { DatabaseServer } from "../types/servers/DatabaseServer"; +import type { ILogger } from "@spt-aki/models/spt/utils/ILogger"; +import type { DatabaseServer } from "@spt-aki/servers/DatabaseServer"; import { Other } from "./other"; import { inject, injectable } from "tsyringe"; import { AIOConfigHandler } from "./AIOConfigHandler"; -import { BaseClasses } from "../types/models/enums/BaseClasses"; +import { BaseClasses } from "@spt-aki/models/enums/BaseClasses"; @injectable() export class Items @@ -27,7 +27,7 @@ export class Items if (!this.other.isThisIDaMod([id])) { //Examine all items - if (!this.configHandler.getConfig().items.allExaminedItems) + if (this.configHandler.getConfig().items.allExaminedItems) { this.editSimpleItemData(id, "ExaminedByDefault", true); } diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/mod.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/mod.ts index 2c35bab..0e22800 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/mod.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/mod.ts @@ -1,7 +1,7 @@ import { DependencyContainer, Lifecycle } from "tsyringe"; -import type { StaticRouterModService } from "../types/services/mod/staticRouter/StaticRouterModService"; -import type { IMod } from "../types/models/external/mod"; -import type { ILogger } from "../types/models/spt/utils/ILogger"; +import type { StaticRouterModService } from "@spt-aki/services/mod/staticRouter/StaticRouterModService"; +import type { IMod } from "@spt-aki/models/external/mod"; +import type { ILogger } from "@spt-aki/models/spt/utils/ILogger"; import { Other } from "./other"; import { Items } from "./items"; import { Raids } from "./raids"; @@ -27,7 +27,7 @@ class AIOMod implements IMod container.register("AIOPlayer", Player); container.register("AIONotifications", Notifications); const staticRoute = container.resolve("StaticRouterModService"); - container.resolve("WinstonLogger"); + this.logger = container.resolve("WinstonLogger"); if (container.resolve("AIOConfigHandler").getConfig().player.allSkillsMaster) { @@ -36,13 +36,14 @@ class AIOMod implements IMod [ { url: "/client/game/version/validate", - action: (sessionID: string): any => - { + action: (url: string, info: any, sessionID: string, output: string): any => + { + this.logger.info(sessionID); return container.resolve("AIOPlayer").maxSkills(sessionID); } } ], - "AIOMod" + "aki" ) } @@ -53,13 +54,13 @@ class AIOMod implements IMod [ { url: "/client/game/bot/generate", - action: (info: any): any => + action: (url: string, info: any, sessionID: string, output: string): any => { return container.resolve("AIOOther").spawnRaidersEverywhere(info); } } ], - "AIOMod" + "aki" ) } @@ -73,7 +74,7 @@ class AIOMod implements IMod container.resolve("AIOFixes").applyChanges(); container.resolve("AIORaids").applyChanges(); container.resolve("AIOItems").applyChanges(); - container.resolve("AIOTrader").applyChanges(); + container.resolve("AIOTraders").applyChanges(); container.resolve("AIOPlayer").applyChanges(); if (container.resolve("AIOConfigHandler").getConfig().other.showModLogs) diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/other.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/other.ts index 352a6d0..821d6ca 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/other.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/other.ts @@ -1,7 +1,7 @@ -import type { HttpResponseUtil } from "../types/utils/HttpResponseUtil" -import type { BotController } from "../types/controllers/BotController" -import type { IBotBase } from "../types/models/eft/common/tables/IBotBase"; -import type { IGetBodyResponseData } from "../types/models/eft/httpResponse/IGetBodyResponseData"; +import type { HttpResponseUtil } from "@spt-aki/utils/HttpResponseUtil" +import type { BotController } from "@spt-aki/controllers/BotController" +import type { IBotBase } from "@spt-aki/models/eft/common/tables/IBotBase"; +import type { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData"; import { AIOConfigHandler } from "./AIOConfigHandler"; import { inject, injectable } from "tsyringe"; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/player.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/player.ts index f71d8bf..3dd6054 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/player.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/player.ts @@ -1,9 +1,9 @@ import { inject, injectable } from "tsyringe"; -import type { ProfileHelper } from "../types/helpers/ProfileHelper"; -import type { IPmcData } from "../types/models/eft/common/IPmcData"; -import type { ILogger } from "../types/models/spt/utils/ILogger"; -import type { DatabaseServer } from "../types/servers/DatabaseServer"; -import type { HttpResponseUtil } from "../types/utils/HttpResponseUtil"; +import type { ProfileHelper } from "@spt-aki/helpers/ProfileHelper"; +import type { IPmcData } from "@spt-aki//models/eft/common/IPmcData"; +import type { ILogger } from "@spt-aki/models/spt/utils/ILogger"; +import type { DatabaseServer } from "@spt-aki/servers/DatabaseServer"; +import type { HttpResponseUtil } from "@spt-aki/utils/HttpResponseUtil"; import { AIOConfigHandler } from "./AIOConfigHandler"; @injectable() diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/raids.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/raids.ts index 116ecc6..bba9e6a 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/raids.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/raids.ts @@ -1,6 +1,6 @@ import { inject, injectable } from "tsyringe"; -import type { BossLocationSpawn } from "../types/models/eft/common/ILocationBase"; -import type { DatabaseServer } from "../types/servers/DatabaseServer"; +import type { BossLocationSpawn } from "@spt-aki/models/eft/common/ILocationBase"; +import type { DatabaseServer } from "@spt-aki/servers/DatabaseServer"; import { AIOConfigHandler } from "./AIOConfigHandler"; import { Other } from "./other"; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/traders.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/traders.ts index 34a7b5e..c845604 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/traders.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/src/traders.ts @@ -1,9 +1,9 @@ import { inject, injectable } from "tsyringe"; -import type { DatabaseServer } from "../types/servers/DatabaseServer"; +import type { DatabaseServer } from "@spt-aki/servers/DatabaseServer"; import { AIOConfigHandler } from "./AIOConfigHandler"; import { Other } from "./other"; -import { Money } from "../types/models/enums/Money" -import { Traders as eftTraders} from "../types/models/spt/helpers/Traders" +import { Money } from "@spt-aki/models/enums/Money" +import { Traders as eftTraders} from "@spt-aki/models/spt/helpers/Traders" @injectable() export class Traders diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/tsconfig.json b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/tsconfig.json index 8ba3117..8151310 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/tsconfig.json +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/tsconfig.json @@ -8,8 +8,12 @@ "downlevelIteration": true, "experimentalDecorators": true, "emitDecoratorMetadata": true, - "resolveJsonModule": true, - "outDir": "out" + "resolveJsonModule": true, + "outDir": "tmp", + "baseUrl": ".", + "paths": { + "@spt-aki/*": ["./types/*"] + } }, "lib": [ "es2020" diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/CustomizationController.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/CustomizationController.d.ts index 6fd3b12..698e6be 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/CustomizationController.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/CustomizationController.d.ts @@ -1,13 +1,13 @@ -import { DatabaseServer } from "../servers/DatabaseServer"; -import { SaveServer } from "../servers/SaveServer"; import { ProfileHelper } from "../helpers/ProfileHelper"; import { IPmcData } from "../models/eft/common/IPmcData"; -import { IWearClothingRequestData } from "../models/eft/customization/IWearClothingRequestData"; -import { IBuyClothingRequestData } from "../models/eft/customization/IBuyClothingRequestData"; 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 { ItemEventRouter } from "../routers/ItemEventRouter"; 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 { private logger; private itemEventRouter; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/DialogueController.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/DialogueController.d.ts index 8cf2531..235594f 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/DialogueController.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/DialogueController.d.ts @@ -19,6 +19,7 @@ export declare class DialogueController { setDialoguePin(dialogueID: string, shouldPin: boolean, sessionID: string): void; setRead(dialogueIDs: string[], sessionID: string): void; getAllAttachments(dialogueID: string, sessionID: string): IGetAllAttachmentsResponse; + private messagesHaveUncollectedRewards; private removeExpiredItems; update(): void; } diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/GameController.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/GameController.d.ts index 5c9a464..bb2a55a 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/GameController.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/GameController.d.ts @@ -13,7 +13,15 @@ export declare class GameController { private configServer; private httpConfig; constructor(logger: ILogger, watermark: Watermark, httpServerHelper: HttpServerHelper, profileHelper: ProfileHelper, configServer: ConfigServer); - gameStart(url: string, info: IEmptyRequestData, sessionID: string): void; + gameStart(_url: string, _info: IEmptyRequestData, sessionID: string): void; + private addMissingBonusesProperty; + private addMissingRepeatableQuestsProperty; + private addMissingWeaponRepairSkill; + private addMissingAkiVersionTagToProfile; + private addMissingArmorRepairSkill; + private fixNullTraderSalesSums; + private removeDanglingConditionCounters; + private removeDanglingBackendCounters; getGameConfig(sessionID: string): IGameConfigResponse; getServer(): any[]; private getActiveRepeatableQuests; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/HandbookController.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/HandbookController.d.ts index 5a55e89..f473437 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/HandbookController.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/HandbookController.d.ts @@ -1,5 +1,5 @@ -import { DatabaseServer } from "../servers/DatabaseServer"; import { HandbookHelper } from "../helpers/HandbookHelper"; +import { DatabaseServer } from "../servers/DatabaseServer"; export declare class HandbookController { private databaseServer; private handbookHelper; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/LocationController.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/LocationController.d.ts index dde270c..41a8719 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/LocationController.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/LocationController.d.ts @@ -1,10 +1,10 @@ -import { DatabaseServer } from "../servers/DatabaseServer"; 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"; -import { ILogger } from "../models/spt/utils/ILogger"; export declare class LocationController { private jsonUtil; private logger; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/NoteController.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/NoteController.d.ts index ecd8001..4d3420e 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/NoteController.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/NoteController.d.ts @@ -1,6 +1,6 @@ import { IPmcData } from "../models/eft/common/IPmcData"; -import { INoteActionData } from "../models/eft/notes/INoteActionData"; import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { INoteActionData } from "../models/eft/notes/INoteActionData"; import { ItemEventRouter } from "../routers/ItemEventRouter"; declare class NoteController { private itemEventRouter; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/PresetBuildController.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/PresetBuildController.d.ts index a15b181..11c5c3e 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/PresetBuildController.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/PresetBuildController.d.ts @@ -1,11 +1,11 @@ import { ItemHelper } from "../helpers/ItemHelper"; -import { SaveServer } from "../servers/SaveServer"; import { IPmcData } from "../models/eft/common/IPmcData"; -import { IPresetBuildActionRequestData } from "../models/eft/presetBuild/IPresetBuildActionRequestData"; import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IPresetBuildActionRequestData } from "../models/eft/presetBuild/IPresetBuildActionRequestData"; import { WeaponBuild } from "../models/eft/profile/IAkiProfile"; -import { HashUtil } from "../utils/HashUtil"; import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { SaveServer } from "../servers/SaveServer"; +import { HashUtil } from "../utils/HashUtil"; export declare class PresetBuildController { private hashUtil; private itemEventRouter; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/ProfileController.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/ProfileController.d.ts index 46b66d8..c8bd5f1 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/ProfileController.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/ProfileController.d.ts @@ -1,18 +1,18 @@ -import { SaveServer } from "../servers/SaveServer"; -import { DatabaseServer } from "../servers/DatabaseServer"; +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 { IValidateNicknameRequestData } from "../models/eft/profile/IValidateNicknameRequestData"; 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"; -import { IMiniProfile } from "../models/eft/launcher/IMiniProfile"; -import { ExtendedProfileHelper } from "../helpers/ExtendedProfileHelper"; export declare class ProfileController { private hashUtil; private timeUtil; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/RepeatableQuestController.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/RepeatableQuestController.d.ts index a33ad62..2dedc7e 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/RepeatableQuestController.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/controllers/RepeatableQuestController.d.ts @@ -89,7 +89,7 @@ export declare class RepeatableQuestController { * @param {string} sessionId Player's session id * @returns {array} array of "repeatableQuestObjects" as descibed above */ - getClientRepeatableQuests(info: IEmptyRequestData, sessionID: string): IPmcDataRepeatableQuest[]; + 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 diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/generators/RagfairAssortGenerator.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/generators/RagfairAssortGenerator.d.ts index 1897050..06d3250 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/generators/RagfairAssortGenerator.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/generators/RagfairAssortGenerator.d.ts @@ -10,8 +10,16 @@ export declare class RagfairAssortGenerator { private databaseServer; private generatedAssortItems; 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[]; private assortsAreGenerated; + /** + * Generate an array of items the flea can sell + * @returns array of unique items + */ private generateRagfairAssortItems; private createRagfairAssortItem; } diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/generators/RagfairOfferGenerator.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/generators/RagfairOfferGenerator.d.ts index 2939b3a..e3fbe4a 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/generators/RagfairOfferGenerator.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/generators/RagfairOfferGenerator.d.ts @@ -39,6 +39,10 @@ export declare class RagfairOfferGenerator { private getRating; private getRatingGrowing; private getOfferEndTime; + /** + * 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; private getItemCondition; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/helpers/HideoutHelper.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/helpers/HideoutHelper.d.ts index 5b4a5ad..d6a4414 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/helpers/HideoutHelper.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/helpers/HideoutHelper.d.ts @@ -48,6 +48,8 @@ export declare class HideoutHelper { applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void; private applySkillXPBoost; updatePlayerHideout(sessionID: string): void; + private updateWaterCollector; + private doesWaterCollectorHaveFilter; private updateFuel; private updateWaterFilters; private getAreaUpdObject; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/helpers/RagfairServerHelper.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/helpers/RagfairServerHelper.d.ts index aca9651..d29ba42 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/helpers/RagfairServerHelper.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/helpers/RagfairServerHelper.d.ts @@ -24,8 +24,13 @@ export declare class RagfairServerHelper { private questConfig; private static TPL_GOODS_RETURNED; constructor(randomUtil: RandomUtil, hashUtil: HashUtil, saveServer: SaveServer, databaseServer: DatabaseServer, profileHelper: ProfileHelper, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, jsonUtil: JsonUtil, configServer: ConfigServer); + /** + * Is item valid / on blacklist / quest item + * @param itemDetails + * @returns boolean + */ isItemValidRagfairItem(itemDetails: [boolean, ITemplateItem]): boolean; - isItemBlacklisted(itemTemplateId: string): boolean; + private isItemBlacklisted; isTrader(userID: string): boolean; isPlayer(userID: string): boolean; returnItems(sessionID: string, items: any[]): void; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/helpers/TradeHelper.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/helpers/TradeHelper.d.ts index a78cd20..475390b 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/helpers/TradeHelper.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/helpers/TradeHelper.d.ts @@ -21,9 +21,22 @@ export declare class TradeHelper { private inventoryHelper; private 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; /** - * Selling item to trader + * Sell item to trader + * @param pmcData + * @param body + * @param sessionID + * @returns */ sellItem(pmcData: IPmcData, body: IProcessSellTradeRequestData, sessionID: string): IItemEventRouterResponse; private incrementAssortBuyCount; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/ide/BleedingEdgeEntry.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/ide/BleedingEdgeEntry.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/ide/BleedingEdgeEntry.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/loaders/BundleLoader.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/loaders/BundleLoader.d.ts index 9abfe9f..4f7664c 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/loaders/BundleLoader.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/loaders/BundleLoader.d.ts @@ -2,12 +2,12 @@ import { HttpServerHelper } from "../helpers/HttpServerHelper"; import { JsonUtil } from "../utils/JsonUtil"; import { VFS } from "../utils/VFS"; declare class BundleInfo { - private httpServerHelper; + modPath: string; key: string; path: string; filepath: string; dependencyKeys: string[]; - constructor(modpath: string, bundle: any, httpServerHelper: HttpServerHelper); + constructor(modpath: string, bundle: any, bundlePath: string, bundleFilepath: string); } export declare class BundleLoader { private httpServerHelper; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/loaders/InitialModLoader.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/loaders/InitialModLoader.d.ts index 8168cec..5957d35 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/loaders/InitialModLoader.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/loaders/InitialModLoader.d.ts @@ -26,6 +26,25 @@ export declare class InitialModLoader implements IModLoader { getModPath(mod: string): string; private importClass; private importMods; + /** + * + * @param mods Get an array of broken/invalid mods by name + * @returns Mod names array + */ + private getBrokenMods; + /** + * Get packageJson data for mods + * @param mods mods to get packageJson for + * @returns dictionary + */ + private getModsPackageData; + /** + * Does mod have "delayedLoad(" string in its entry class + * @param modFolderName folder name + * @param modToValidate package.json details + * @returns boolean + */ + private isModSpt300Compatible; private isModCombatibleWithAki; private executeMods; private sortModsLoadOrder; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/routers/ImageRouter.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/routers/ImageRouter.d.ts index cc47018..97e580d 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/routers/ImageRouter.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/routers/ImageRouter.d.ts @@ -1,7 +1,7 @@ /// import { IncomingMessage, ServerResponse } from "http"; import { IHttpServer } from "../models/spt/server/IHttpServer"; -import { ImageRouteService } from "../services/mod/image/imageRouteService"; +import { ImageRouteService } from "../services/mod/image/ImageRouteService"; import { VFS } from "../utils/VFS"; export declare class ImageRouter { private vfs; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/routers/serializers/BundleSerializer.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/routers/serializers/BundleSerializer.d.ts index 5f275c4..7952e9c 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/routers/serializers/BundleSerializer.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/routers/serializers/BundleSerializer.d.ts @@ -1,7 +1,7 @@ -import { IHttpServer } from "../../models/spt/server/IHttpServer"; -import { ILogger } from "../../models/spt/utils/ILogger"; 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 { private logger; private bundleLoader; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/servers/RagfairServer.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/servers/RagfairServer.d.ts index a2369b0..cf56d64 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/servers/RagfairServer.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/servers/RagfairServer.d.ts @@ -1,38 +1,21 @@ import { RagfairOfferGenerator } from "../generators/RagfairOfferGenerator"; -import { ProfileHelper } from "../helpers/ProfileHelper"; -import { RagfairServerHelper } from "../helpers/RagfairServerHelper"; -import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; import { IRagfairOffer } from "../models/eft/ragfair/IRagfairOffer"; import { ILogger } from "../models/spt/utils/ILogger"; -import { ItemEventRouter } from "../routers/ItemEventRouter"; import { RagfairCategoriesService } from "../services/RagfairCategoriesService"; -import { RagfairLinkedItemService } from "../services/RagfairLinkedItemService"; import { RagfairOfferService } from "../services/RagfairOfferService"; -import { RagfairPriceService } from "../services/RagfairPriceService"; import { RagfairRequiredItemsService } from "../services/RagfairRequiredItemsService"; -import { HttpResponseUtil } from "../utils/HttpResponseUtil"; import { ConfigServer } from "./ConfigServer"; -import { SaveServer } from "./SaveServer"; export declare class RagfairServer { private logger; private ragfairOfferGenerator; - private ragfairServerHelper; - private profileHelper; - private itemEventRouter; - private httpResponse; - private saveServer; - private ragfairPriceService; private ragfairOfferService; - private ragfairLinkedItemService; private ragfairCategoriesService; private ragfairRequiredItemsService; private configServer; private ragfairConfig; - constructor(logger: ILogger, ragfairOfferGenerator: RagfairOfferGenerator, ragfairServerHelper: RagfairServerHelper, profileHelper: ProfileHelper, itemEventRouter: ItemEventRouter, httpResponse: HttpResponseUtil, saveServer: SaveServer, ragfairPriceService: RagfairPriceService, ragfairOfferService: RagfairOfferService, ragfairLinkedItemService: RagfairLinkedItemService, ragfairCategoriesService: RagfairCategoriesService, ragfairRequiredItemsService: RagfairRequiredItemsService, configServer: ConfigServer); + constructor(logger: ILogger, ragfairOfferGenerator: RagfairOfferGenerator, ragfairOfferService: RagfairOfferService, ragfairCategoriesService: RagfairCategoriesService, ragfairRequiredItemsService: RagfairRequiredItemsService, configServer: ConfigServer); load(): void; update(): void; - private processExpiredOffer; - returnPlayerOffer(offer: IRagfairOffer): IItemEventRouterResponse; getCategories(): Record; /** * Disable/Hide an offer from flea @@ -40,6 +23,7 @@ export declare class RagfairServer { */ 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/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/services/ModCompilerService.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/services/ModCompilerService.d.ts index d316e48..cf7cc21 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/services/ModCompilerService.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/services/ModCompilerService.d.ts @@ -6,8 +6,10 @@ export declare class ModCompilerService { private hashCacheService; private vfs; constructor(logger: ILogger, hashCacheService: HashCacheService, vfs: VFS); - compileMod(modName: string, path: string, modTypeScriptFiles: string[]): Promise; + compileMod(modName: string, modPath: string, modTypeScriptFiles: string[]): Promise; private compile; + private buildDepth; + private calculateDepth; private areFilesReady; private delay; } diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/services/RagfairLinkedItemService.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/services/RagfairLinkedItemService.d.ts index d5dc58e..3dbcf6f 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/services/RagfairLinkedItemService.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/services/RagfairLinkedItemService.d.ts @@ -4,6 +4,6 @@ export declare class RagfairLinkedItemService { private linkedItemsCache; constructor(databaseServer: DatabaseServer); getLinkedItems(linkedSearchId: string): Iterable; - buildLinkedItemTable(): void; + private buildLinkedItemTable; private getFilters; } diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/services/RagfairOfferService.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/services/RagfairOfferService.d.ts index 4e4ae26..9b1bf8d 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/services/RagfairOfferService.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/services/RagfairOfferService.d.ts @@ -1,20 +1,30 @@ +import { ProfileHelper } from "../helpers/ProfileHelper"; +import { RagfairServerHelper } from "../helpers/RagfairServerHelper"; +import { Item } from "../models/eft/common/tables/IItem"; +import { IRagfairOffer } from "../models/eft/ragfair/IRagfairOffer"; +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"; -import { Item } from "../models/eft/common/tables/IItem"; -import { IRagfairOffer } from "../models/eft/ragfair/IRagfairOffer"; export declare class RagfairOfferService { + private logger; private timeUtil; private databaseServer; private saveServer; + private ragfairServerHelper; + private profileHelper; + private itemEventRouter; + private httpResponse; private configServer; private playerOffersLoaded; private toUpdate; private expiredOffers; private offers; private ragfairConfig; - constructor(timeUtil: TimeUtil, databaseServer: DatabaseServer, saveServer: SaveServer, configServer: ConfigServer); + 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[]; @@ -22,20 +32,13 @@ export declare class RagfairOfferService { addOfferToExpired(offer: Item): void; setTraderUpdateStatus(traderId: string, shouldUpdate: boolean): void; shouldTraderBeUpdated(traderID: string): boolean; - /** - * Get an array of expired offers that are still shown to player - * @returns IRagfairOffer array - */ - getExpiredActiveOffers(): IRagfairOffer[]; getExpiredOfferCount(): number; - getOfferIndexByOfferId(offerId: string): 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; - private isExpired; /** * Does the offer exist on the ragfair * @param offerId offer id to check for @@ -44,9 +47,18 @@ export declare class RagfairOfferService { doesOfferExist(offerId: string): boolean; getTraders(): Record; flagTraderForUpdate(expiredOfferUserId: string): void; - removeOffer(globalOfferIndex: number, countToRemove: number): 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 + */ + private getStaleOffers; + private isStale; + private processStaleOffer; + private returnPlayerOffer; } diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/utils/VFS.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/utils/VFS.d.ts index b064cf4..d567615 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/utils/VFS.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/utils/VFS.d.ts @@ -29,7 +29,7 @@ export declare class VFS { 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; + 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; diff --git a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/utils/Watermark.d.ts b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/utils/Watermark.d.ts index 1a5dee3..3a8cb3a 100644 --- a/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/utils/Watermark.d.ts +++ b/Ereshkigal-AIO/ZEreshkigal-AllinOneMod/types/utils/Watermark.d.ts @@ -5,6 +5,7 @@ export declare class WatermarkLocale { getLocale(): string; getDescription(): string[]; getWarning(): string[]; + getModding(): string[]; } export declare class Watermark { private logger; diff --git a/Ereshkigal-AkiConfig/.eslintignore b/Ereshkigal-AkiConfig/.eslintignore new file mode 100644 index 0000000..9922d9a --- /dev/null +++ b/Ereshkigal-AkiConfig/.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/Ereshkigal-AkiConfig/.eslintrc.json b/Ereshkigal-AkiConfig/.eslintrc.json new file mode 100644 index 0000000..c505160 --- /dev/null +++ b/Ereshkigal-AkiConfig/.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/Ereshkigal-AkiConfig/LICENSE b/Ereshkigal-AkiConfig/LICENSE new file mode 100644 index 0000000..0d306ce --- /dev/null +++ b/Ereshkigal-AkiConfig/LICENSE @@ -0,0 +1,95 @@ +Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. + +Section 1 – Definitions. + + Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. + Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. + Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. + Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. + Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. + Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. + Licensor means the individual(s) or entity(ies) granting rights under this Public License. + NonCommercial means not primarily intended for or directed towards commercial advantage or monetary compensation. For purposes of this Public License, the exchange of the Licensed Material for other material subject to Copyright and Similar Rights by digital file-sharing or similar means is NonCommercial provided there is no payment of monetary compensation in connection with the exchange. + Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. + Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. + You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. + +Section 2 – Scope. + + License grant. + Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: + reproduce and Share the Licensed Material, in whole or in part, for NonCommercial purposes only; and + produce and reproduce, but not Share, Adapted Material for NonCommercial purposes only. + Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. + Term. The term of this Public License is specified in Section 6(a). + Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. + Downstream recipients. + Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. + No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. + No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). + + Other rights. + Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. + Patent and trademark rights are not licensed under this Public License. + To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties, including when the Licensed Material is used other than for NonCommercial purposes. + +Section 3 – License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + + Attribution. + + If You Share the Licensed Material, You must: + retain the following if it is supplied by the Licensor with the Licensed Material: + identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); + a copyright notice; + a notice that refers to this Public License; + a notice that refers to the disclaimer of warranties; + a URI or hyperlink to the Licensed Material to the extent reasonably practicable; + indicate if You modified the Licensed Material and retain an indication of any previous modifications; and + indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. + For the avoidance of doubt, You do not have permission under this Public License to Share Adapted Material. + You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. + If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. + +Section 4 – Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + + for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database for NonCommercial purposes only and provided You do not Share Adapted Material; + if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and + You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. + +Section 5 – Disclaimer of Warranties and Limitation of Liability. + + Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. + To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You. + + The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. + +Section 6 – Term and Termination. + + This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. + + Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: + automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or + upon express reinstatement by the Licensor. + For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. + For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. + Sections 1, 5, 6, 7, and 8 survive termination of this Public License. + +Section 7 – Other Terms and Conditions. + + The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. + Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. + +Section 8 – Interpretation. + + For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. + To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. + No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. + Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. diff --git a/Ereshkigal-AkiConfig/mod.code-workspace b/Ereshkigal-AkiConfig/mod.code-workspace new file mode 100644 index 0000000..6732c67 --- /dev/null +++ b/Ereshkigal-AkiConfig/mod.code-workspace @@ -0,0 +1,12 @@ +{ + "folders": [ + { + "path": "." + } + ], + "extensions": { + "recommendations": [ + "dbaeumer.vscode-eslint" + ] + } +} \ No newline at end of file diff --git a/Ereshkigal-AkiConfig/package.json b/Ereshkigal-AkiConfig/package.json new file mode 100644 index 0000000..88ff182 --- /dev/null +++ b/Ereshkigal-AkiConfig/package.json @@ -0,0 +1,26 @@ +{ + "name": "AkiConfig", + "version": "3.0.0", + "main": "src/mod.js", + "license": "CC-BY-NC-ND 4.0", + "author": "Ereshkigal", + "akiVersion": "3.0.0", + "updated by": "CWX, Valens", + "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/Ereshkigal-AkiConfig/src/mod.ts b/Ereshkigal-AkiConfig/src/mod.ts new file mode 100644 index 0000000..034995b --- /dev/null +++ b/Ereshkigal-AkiConfig/src/mod.ts @@ -0,0 +1,24 @@ +import { DependencyContainer, Lifecycle } from "tsyringe"; +import type { IMod } from "@spt-aki/models/external/mod"; +import type { ILogger } from "@spt-aki/models/spt/utils/ILogger"; + +class AkiConfig implements IMod +{ + private logger: ILogger; + private pkg; + + public load(container: DependencyContainer): void + { + this.logger = container.resolve("WinstonLogger"); + + this.pkg = require("../package.json"); + this.logger.info(`Loading: ${this.pkg.name} ${this.pkg.version}`); + } + + public delayedLoad(container: DependencyContainer): void + { + return; + } +} + +module.exports = { mod: new AkiConfig() }; \ No newline at end of file diff --git a/Ereshkigal-AkiConfig/tsconfig.json b/Ereshkigal-AkiConfig/tsconfig.json new file mode 100644 index 0000000..8151310 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/Program.d.ts b/Ereshkigal-AkiConfig/types/Program.d.ts new file mode 100644 index 0000000..d4b71b9 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/Program.d.ts @@ -0,0 +1,4 @@ +export declare class Program { + constructor(); + start(): void; +} diff --git a/Ereshkigal-AkiConfig/types/TYPES.d.ts b/Ereshkigal-AkiConfig/types/TYPES.d.ts new file mode 100644 index 0000000..6407c3a --- /dev/null +++ b/Ereshkigal-AkiConfig/types/TYPES.d.ts @@ -0,0 +1,3 @@ +export declare const TYPES: { + [name: string]: symbol; +}; diff --git a/Ereshkigal-AkiConfig/types/Utils.d.ts b/Ereshkigal-AkiConfig/types/Utils.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/Ereshkigal-AkiConfig/types/callbacks/BotCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/BotCallbacks.d.ts new file mode 100644 index 0000000..9602975 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private botController; + private httpResponse; + 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/Ereshkigal-AkiConfig/types/callbacks/BundleCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/BundleCallbacks.d.ts new file mode 100644 index 0000000..b007ab8 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/callbacks/BundleCallbacks.d.ts @@ -0,0 +1,17 @@ +import { BundleLoader } from "../loaders/BundleLoader"; +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 { + private logger; + private httpResponse; + private httpServer; + private bundleLoader; + private configServer; + private httpConfig; + 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/Ereshkigal-AkiConfig/types/callbacks/CustomizationCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/CustomizationCallbacks.d.ts new file mode 100644 index 0000000..918b8b6 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private customizationController; + private saveServer; + private httpResponse; + 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/Ereshkigal-AkiConfig/types/callbacks/DataCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/DataCallbacks.d.ts new file mode 100644 index 0000000..018420e --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private httpResponse; + private 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/Ereshkigal-AkiConfig/types/callbacks/DialogueCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/DialogueCallbacks.d.ts new file mode 100644 index 0000000..3b6fbd1 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private hashUtil; + private timeUtil; + private httpResponse; + private 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/Ereshkigal-AkiConfig/types/callbacks/GameCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/GameCallbacks.d.ts new file mode 100644 index 0000000..44a30ea --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private httpResponse; + private watermark; + private 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/Ereshkigal-AkiConfig/types/callbacks/HandbookCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/HandbookCallbacks.d.ts new file mode 100644 index 0000000..0db5fec --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private handbookController; + constructor(handbookController: HandbookController); + onLoad(): void; + getRoute(): string; +} diff --git a/Ereshkigal-AkiConfig/types/callbacks/HealthCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/HealthCallbacks.d.ts new file mode 100644 index 0000000..a50dd42 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private httpResponse; + private profileHelper; + private 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/Ereshkigal-AkiConfig/types/callbacks/HideoutCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/HideoutCallbacks.d.ts new file mode 100644 index 0000000..3698176 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/callbacks/HideoutCallbacks.d.ts @@ -0,0 +1,32 @@ +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 { ConfigServer } from "../servers/ConfigServer"; +export declare class HideoutCallbacks extends OnUpdate { + private hideoutController; + private configServer; + private hideoutConfig; + 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/Ereshkigal-AkiConfig/types/callbacks/HttpCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/HttpCallbacks.d.ts new file mode 100644 index 0000000..9fe387d --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private httpServer; + constructor(httpServer: IHttpServer); + onLoad(): void; + getRoute(): string; + getImage(): string; +} diff --git a/Ereshkigal-AkiConfig/types/callbacks/InraidCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/InraidCallbacks.d.ts new file mode 100644 index 0000000..2d53227 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/callbacks/InraidCallbacks.d.ts @@ -0,0 +1,21 @@ +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 { ConfigServer } from "../servers/ConfigServer"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +export declare class InraidCallbacks { + private inraidController; + private httpResponse; + private configServer; + private airdropConfig; + private inraidConfig; + 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/Ereshkigal-AkiConfig/types/callbacks/InsuranceCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/InsuranceCallbacks.d.ts new file mode 100644 index 0000000..79feb67 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/callbacks/InsuranceCallbacks.d.ts @@ -0,0 +1,23 @@ +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 { ConfigServer } from "../servers/ConfigServer"; +import { InsuranceService } from "../services/InsuranceService"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +export declare class InsuranceCallbacks extends OnLoadOnUpdate { + private insuranceController; + private insuranceService; + private httpResponse; + private configServer; + private insuranceConfig; + 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/Ereshkigal-AkiConfig/types/callbacks/InventoryCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/InventoryCallbacks.d.ts new file mode 100644 index 0000000..9795aa0 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private 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/Ereshkigal-AkiConfig/types/callbacks/ItemEventCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/ItemEventCallbacks.d.ts new file mode 100644 index 0000000..74e79c4 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private httpResponse; + private itemEventRouter; + constructor(httpResponse: HttpResponseUtil, itemEventRouter: ItemEventRouter); + handleEvents(url: string, info: IItemEventRouterRequest, sessionID: string): IGetBodyResponseData; +} diff --git a/Ereshkigal-AkiConfig/types/callbacks/LauncherCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/LauncherCallbacks.d.ts new file mode 100644 index 0000000..4bd5e2c --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private httpResponse; + private launcherController; + private saveServer; + private 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/Ereshkigal-AkiConfig/types/callbacks/LocationCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/LocationCallbacks.d.ts new file mode 100644 index 0000000..5ecab74 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private httpResponse; + private 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/Ereshkigal-AkiConfig/types/callbacks/MatchCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/MatchCallbacks.d.ts new file mode 100644 index 0000000..63d38d9 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private httpResponse; + private jsonUtil; + private matchController; + private 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/Ereshkigal-AkiConfig/types/callbacks/ModCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/ModCallbacks.d.ts new file mode 100644 index 0000000..2011f0e --- /dev/null +++ b/Ereshkigal-AkiConfig/types/callbacks/ModCallbacks.d.ts @@ -0,0 +1,21 @@ +import { OnLoad } from "../di/OnLoad"; +import { DelayedModLoader } from "../loaders/DelayedModLoader"; +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 { + private logger; + private httpResponse; + private httpServer; + private modLoader; + private configServer; + private httpConfig; + 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/Ereshkigal-AkiConfig/types/callbacks/NoteCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/NoteCallbacks.d.ts new file mode 100644 index 0000000..fd7c5ca --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private 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/Ereshkigal-AkiConfig/types/callbacks/NotifierCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/NotifierCallbacks.d.ts new file mode 100644 index 0000000..416e6a3 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private httpServerHelper; + private httpResponse; + private 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/Ereshkigal-AkiConfig/types/callbacks/PresetBuildCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/PresetBuildCallbacks.d.ts new file mode 100644 index 0000000..639c33f --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private httpResponse; + private 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/Ereshkigal-AkiConfig/types/callbacks/PresetCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/PresetCallbacks.d.ts new file mode 100644 index 0000000..f62afd6 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private presetController; + constructor(presetController: PresetController); + onLoad(): void; + getRoute(): string; +} diff --git a/Ereshkigal-AkiConfig/types/callbacks/ProfileCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/ProfileCallbacks.d.ts new file mode 100644 index 0000000..efce47d --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private httpResponse; + private timeUtil; + private 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/Ereshkigal-AkiConfig/types/callbacks/QuestCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/QuestCallbacks.d.ts new file mode 100644 index 0000000..f742096 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private httpResponse; + private questController; + private 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/Ereshkigal-AkiConfig/types/callbacks/RagfairCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/RagfairCallbacks.d.ts new file mode 100644 index 0000000..152475f --- /dev/null +++ b/Ereshkigal-AkiConfig/types/callbacks/RagfairCallbacks.d.ts @@ -0,0 +1,36 @@ +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 { 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 { 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 { + private httpResponse; + private logger; + private jsonUtil; + private ragfairServer; + private ragfairController; + private configServer; + private ragfairConfig; + 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; +} diff --git a/Ereshkigal-AkiConfig/types/callbacks/RepairCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/RepairCallbacks.d.ts new file mode 100644 index 0000000..f63ec18 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private repairController; + constructor(repairController: RepairController); + traderRepair(pmcData: IPmcData, body: ITraderRepairActionDataRequest, sessionID: string): IItemEventRouterResponse; + repair(pmcData: IPmcData, body: IRepairActionDataRequest, sessionID: string): IItemEventRouterResponse; +} diff --git a/Ereshkigal-AkiConfig/types/callbacks/SaveCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/SaveCallbacks.d.ts new file mode 100644 index 0000000..b7219a0 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private saveServer; + constructor(saveServer: SaveServer); + onLoad(): void; + getRoute(): string; + onUpdate(secondsSinceLastRun: number): boolean; +} diff --git a/Ereshkigal-AkiConfig/types/callbacks/TradeCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/TradeCallbacks.d.ts new file mode 100644 index 0000000..9928951 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private tradeController; + constructor(tradeController: TradeController); + processTrade(pmcData: IPmcData, body: IProcessBaseTradeRequestData, sessionID: string): IItemEventRouterResponse; + processRagfairTrade(pmcData: IPmcData, body: IProcessRagfairTradeRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/Ereshkigal-AkiConfig/types/callbacks/TraderCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/TraderCallbacks.d.ts new file mode 100644 index 0000000..2a8af7f --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private httpResponse; + private 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/Ereshkigal-AkiConfig/types/callbacks/WeatherCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/WeatherCallbacks.d.ts new file mode 100644 index 0000000..e40ab3e --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private httpResponse; + private weatherController; + constructor(httpResponse: HttpResponseUtil, weatherController: WeatherController); + getWeather(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; +} diff --git a/Ereshkigal-AkiConfig/types/callbacks/WishlistCallbacks.d.ts b/Ereshkigal-AkiConfig/types/callbacks/WishlistCallbacks.d.ts new file mode 100644 index 0000000..e0249fd --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private wishlistController; + constructor(wishlistController: WishlistController); + addToWishlist(pmcData: IPmcData, body: IWishlistActionData, sessionID: string): IItemEventRouterResponse; + removeFromWishlist(pmcData: IPmcData, body: IWishlistActionData, sessionID: string): IItemEventRouterResponse; +} diff --git a/Ereshkigal-AkiConfig/types/controllers/BotController.d.ts b/Ereshkigal-AkiConfig/types/controllers/BotController.d.ts new file mode 100644 index 0000000..8ecb97f --- /dev/null +++ b/Ereshkigal-AkiConfig/types/controllers/BotController.d.ts @@ -0,0 +1,20 @@ +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 { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +export declare class BotController { + private databaseServer; + private botGenerator; + private botHelper; + private configServer; + private botConfig; + constructor(databaseServer: DatabaseServer, botGenerator: BotGenerator, botHelper: BotHelper, configServer: ConfigServer); + getBotLimit(type: string): number; + getBotDifficulty(type: string, difficulty: string): IBotCore | Difficulty; + generate(info: IGenerateBotsRequestData, playerScav?: boolean): IBotBase[]; + getBotCap(): number; +} diff --git a/Ereshkigal-AkiConfig/types/controllers/CustomizationController.d.ts b/Ereshkigal-AkiConfig/types/controllers/CustomizationController.d.ts new file mode 100644 index 0000000..698e6be --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private logger; + private itemEventRouter; + private databaseServer; + private saveServer; + private 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; + private getAllTraderSuits; +} diff --git a/Ereshkigal-AkiConfig/types/controllers/DialogueController.d.ts b/Ereshkigal-AkiConfig/types/controllers/DialogueController.d.ts new file mode 100644 index 0000000..235594f --- /dev/null +++ b/Ereshkigal-AkiConfig/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 } from "../models/eft/profile/IAkiProfile"; +import { SaveServer } from "../servers/SaveServer"; +import { HttpResponseUtil } from "../utils/HttpResponseUtil"; +export declare class DialogueController { + private httpResponse; + private saveServer; + private 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; + private messagesHaveUncollectedRewards; + private removeExpiredItems; + update(): void; +} diff --git a/Ereshkigal-AkiConfig/types/controllers/GameController.d.ts b/Ereshkigal-AkiConfig/types/controllers/GameController.d.ts new file mode 100644 index 0000000..bb2a55a --- /dev/null +++ b/Ereshkigal-AkiConfig/types/controllers/GameController.d.ts @@ -0,0 +1,28 @@ +import { HttpServerHelper } from "../helpers/HttpServerHelper"; +import { ProfileHelper } from "../helpers/ProfileHelper"; +import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; +import { IGameConfigResponse } from "../models/eft/game/IGameConfigResponse"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +import { Watermark } from "../utils/Watermark"; +export declare class GameController { + private logger; + private watermark; + private httpServerHelper; + private profileHelper; + private configServer; + private httpConfig; + constructor(logger: ILogger, watermark: Watermark, httpServerHelper: HttpServerHelper, profileHelper: ProfileHelper, configServer: ConfigServer); + gameStart(_url: string, _info: IEmptyRequestData, sessionID: string): void; + private addMissingBonusesProperty; + private addMissingRepeatableQuestsProperty; + private addMissingWeaponRepairSkill; + private addMissingAkiVersionTagToProfile; + private addMissingArmorRepairSkill; + private fixNullTraderSalesSums; + private removeDanglingConditionCounters; + private removeDanglingBackendCounters; + getGameConfig(sessionID: string): IGameConfigResponse; + getServer(): any[]; + private getActiveRepeatableQuests; +} diff --git a/Ereshkigal-AkiConfig/types/controllers/HandbookController.d.ts b/Ereshkigal-AkiConfig/types/controllers/HandbookController.d.ts new file mode 100644 index 0000000..f473437 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/controllers/HandbookController.d.ts @@ -0,0 +1,8 @@ +import { HandbookHelper } from "../helpers/HandbookHelper"; +import { DatabaseServer } from "../servers/DatabaseServer"; +export declare class HandbookController { + private databaseServer; + private handbookHelper; + constructor(databaseServer: DatabaseServer, handbookHelper: HandbookHelper); + load(): void; +} diff --git a/Ereshkigal-AkiConfig/types/controllers/HealthController.d.ts b/Ereshkigal-AkiConfig/types/controllers/HealthController.d.ts new file mode 100644 index 0000000..ca049f6 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private logger; + private itemEventRouter; + private itemHelper; + private paymentService; + private inventoryHelper; + private 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/Ereshkigal-AkiConfig/types/controllers/HideoutController.d.ts b/Ereshkigal-AkiConfig/types/controllers/HideoutController.d.ts new file mode 100644 index 0000000..f35c23b --- /dev/null +++ b/Ereshkigal-AkiConfig/types/controllers/HideoutController.d.ts @@ -0,0 +1,56 @@ +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 { IPmcData } from "../models/eft/common/IPmcData"; +import { HideoutUpgradeCompleteRequestData } from "../models/eft/hideout/HideoutUpgradeCompleteRequestData"; +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 { IHideoutUpgradeRequestData } from "../models/eft/hideout/IHideoutUpgradeRequestData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +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 { + private logger; + private hashUtil; + private timeUtil; + private databaseServer; + private randomUtil; + private inventoryHelper; + private saveServer; + private playerService; + private presetHelper; + private paymentHelper; + private itemEventRouter; + private httpResponse; + private profileHelper; + private hideoutHelper; + private configServer; + private hideoutConfig; + 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; + 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; + registerProduction(pmcData: IPmcData, body: IHideoutSingleProductionStartRequestData | IHideoutContinousProductionStartRequestData, sessionID: string): IItemEventRouterResponse; + update(): void; +} diff --git a/Ereshkigal-AkiConfig/types/controllers/InraidController.d.ts b/Ereshkigal-AkiConfig/types/controllers/InraidController.d.ts new file mode 100644 index 0000000..c1cd6f5 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/controllers/InraidController.d.ts @@ -0,0 +1,30 @@ +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 { 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 { + private saveServer; + private jsonUtil; + private databaseServer; + private questHelper; + private itemHelper; + private extendedProfileHelper; + private healthHelper; + private traderHelper; + private insuranceService; + private inRaidHelper; + private configServer; + private inraidConfig; + 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/Ereshkigal-AkiConfig/types/controllers/InsuranceController.d.ts b/Ereshkigal-AkiConfig/types/controllers/InsuranceController.d.ts new file mode 100644 index 0000000..b175a06 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/controllers/InsuranceController.d.ts @@ -0,0 +1,37 @@ +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 { 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 { + private logger; + private randomUtil; + private itemEventRouter; + private timeUtil; + private saveServer; + private databaseServer; + private itemHelper; + private profileHelper; + private dialogueHelper; + private paymentService; + private insuranceService; + private configServer; + private insuranceConfig; + 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/Ereshkigal-AkiConfig/types/controllers/InventoryController.d.ts b/Ereshkigal-AkiConfig/types/controllers/InventoryController.d.ts new file mode 100644 index 0000000..8235082 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private logger; + private hashUtil; + private jsonUtil; + private databaseServer; + private presetHelper; + private inventoryHelper; + private profileHelper; + private paymentHelper; + private 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/Ereshkigal-AkiConfig/types/controllers/LauncherController.d.ts b/Ereshkigal-AkiConfig/types/controllers/LauncherController.d.ts new file mode 100644 index 0000000..2a30713 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/controllers/LauncherController.d.ts @@ -0,0 +1,27 @@ +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 { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { SaveServer } from "../servers/SaveServer"; +import { HashUtil } from "../utils/HashUtil"; +export declare class LauncherController { + private hashUtil; + private saveServer; + private httpServerHelper; + private databaseServer; + private configServer; + private coreConfig; + 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; + private createAccount; + changeUsername(info: IChangeRequestData): string; + changePassword(info: IChangeRequestData): string; + wipe(info: IRegisterData): string; + getCompatibleTarkovVersion(): string; +} diff --git a/Ereshkigal-AkiConfig/types/controllers/LocationController.d.ts b/Ereshkigal-AkiConfig/types/controllers/LocationController.d.ts new file mode 100644 index 0000000..41a8719 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private jsonUtil; + private logger; + private locationGenerator; + private databaseServer; + private 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/Ereshkigal-AkiConfig/types/controllers/MatchController.d.ts b/Ereshkigal-AkiConfig/types/controllers/MatchController.d.ts new file mode 100644 index 0000000..84abbe3 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/controllers/MatchController.d.ts @@ -0,0 +1,28 @@ +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 { ConfigServer } from "../servers/ConfigServer"; +import { SaveServer } from "../servers/SaveServer"; +import { MatchLocationService } from "../services/MatchLocationService"; +export declare class MatchController { + private saveServer; + private profileHelper; + private matchLocationService; + private traderHelper; + private configServer; + private matchConfig; + private inraidConfig; + constructor(saveServer: SaveServer, profileHelper: ProfileHelper, matchLocationService: MatchLocationService, traderHelper: TraderHelper, configServer: ConfigServer); + getEnabled(): boolean; + getProfile(info: IGetProfileRequestData): IPmcData[]; + private getMatch; + 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/Ereshkigal-AkiConfig/types/controllers/NoteController.d.ts b/Ereshkigal-AkiConfig/types/controllers/NoteController.d.ts new file mode 100644 index 0000000..4d3420e --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private 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/Ereshkigal-AkiConfig/types/controllers/NotifierController.d.ts b/Ereshkigal-AkiConfig/types/controllers/NotifierController.d.ts new file mode 100644 index 0000000..36fef66 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private notifierHelper; + private httpServerHelper; + private notificationService; + private pollInterval; + private timeout; + 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/Ereshkigal-AkiConfig/types/controllers/PresetBuildController.d.ts b/Ereshkigal-AkiConfig/types/controllers/PresetBuildController.d.ts new file mode 100644 index 0000000..11c5c3e --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private hashUtil; + private itemEventRouter; + private itemHelper; + private 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/Ereshkigal-AkiConfig/types/controllers/PresetController.d.ts b/Ereshkigal-AkiConfig/types/controllers/PresetController.d.ts new file mode 100644 index 0000000..6ec8c55 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/controllers/PresetController.d.ts @@ -0,0 +1,8 @@ +import { PresetHelper } from "../helpers/PresetHelper"; +import { DatabaseServer } from "../servers/DatabaseServer"; +export declare class PresetController { + private presetHelper; + private databaseServer; + constructor(presetHelper: PresetHelper, databaseServer: DatabaseServer); + initialize(): void; +} diff --git a/Ereshkigal-AkiConfig/types/controllers/ProfileController.d.ts b/Ereshkigal-AkiConfig/types/controllers/ProfileController.d.ts new file mode 100644 index 0000000..c8bd5f1 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private hashUtil; + private timeUtil; + private saveServer; + private databaseServer; + private itemHelper; + private traderHelper; + private 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/Ereshkigal-AkiConfig/types/controllers/QuestController.d.ts b/Ereshkigal-AkiConfig/types/controllers/QuestController.d.ts new file mode 100644 index 0000000..d8caee5 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/controllers/QuestController.d.ts @@ -0,0 +1,37 @@ +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 } 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 { 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 { TimeUtil } from "../utils/TimeUtil"; +export declare class QuestController { + private logger; + private timeUtil; + private itemEventRouter; + private databaseServer; + private itemHelper; + private dialogueHelper; + private profileHelper; + private questHelper; + private questConditionHelper; + private playerService; + private configServer; + private questConfig; + constructor(logger: ILogger, timeUtil: TimeUtil, itemEventRouter: ItemEventRouter, databaseServer: DatabaseServer, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, configServer: ConfigServer); + getClientQuests(sessionID: string): IQuest[]; + acceptQuest(pmcData: IPmcData, acceptedQuest: IAcceptQuestRequestData, sessionID: string): IItemEventRouterResponse; + acceptRepeatableQuest(pmcData: IPmcData, acceptedQuest: IAcceptQuestRequestData, sessionID: string): IItemEventRouterResponse; + completeQuest(pmcData: IPmcData, body: ICompleteQuestRequestData, sessionID: string): IItemEventRouterResponse; + handoverQuest(pmcData: IPmcData, body: IHandoverQuestRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/Ereshkigal-AkiConfig/types/controllers/RagfairController.d.ts b/Ereshkigal-AkiConfig/types/controllers/RagfairController.d.ts new file mode 100644 index 0000000..5b94a95 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/controllers/RagfairController.d.ts @@ -0,0 +1,69 @@ +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 { 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 { + private logger; + private timeUtil; + private httpResponse; + private itemEventRouter; + private ragfairServer; + private ragfairPriceService; + private databaseServer; + private itemHelper; + private saveServer; + private ragfairSellHelper; + private ragfairTaxHelper; + private ragfairSortHelper; + private ragfairOfferHelper; + private profileHelper; + private paymentService; + private handbookHelper; + private paymentHelper; + private inventoryHelper; + private ragfairHelper; + private ragfairOfferService; + private ragfairRequiredItemsService; + private ragfairOfferGenerator; + private configServer; + private ragfairConfig; + 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/Ereshkigal-AkiConfig/types/controllers/RepairController.d.ts b/Ereshkigal-AkiConfig/types/controllers/RepairController.d.ts new file mode 100644 index 0000000..77dd47a --- /dev/null +++ b/Ereshkigal-AkiConfig/types/controllers/RepairController.d.ts @@ -0,0 +1,40 @@ +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 { 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 { + private logger; + private itemEventRouter; + private databaseServer; + private questHelper; + private traderHelper; + private paymentService; + private repairHelper; + private configServer; + private repairConfig; + 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 + */ + repair(pmcData: IPmcData, body: IRepairActionDataRequest, sessionID: string): IItemEventRouterResponse; +} diff --git a/Ereshkigal-AkiConfig/types/controllers/RepeatableQuestController.d.ts b/Ereshkigal-AkiConfig/types/controllers/RepeatableQuestController.d.ts new file mode 100644 index 0000000..2dedc7e --- /dev/null +++ b/Ereshkigal-AkiConfig/types/controllers/RepeatableQuestController.d.ts @@ -0,0 +1,217 @@ +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 { 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 { + private timeUtil; + private logger; + private randomUtil; + private mathUtil; + private jsonUtil; + private databaseServer; + private itemHelper; + private presetHelper; + private profileHelper; + private ragfairServerHelper; + private itemEventRouter; + private paymentService; + private objectId; + private configServer; + private questConfig; + constructor(timeUtil: TimeUtil, logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, itemHelper: ItemHelper, presetHelper: PresetHelper, profileHelper: ProfileHelper, 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/Ereshkigal-AkiConfig/types/controllers/TradeController.d.ts b/Ereshkigal-AkiConfig/types/controllers/TradeController.d.ts new file mode 100644 index 0000000..f0a177b --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private logger; + private itemEventRouter; + private tradeHelper; + private profileHelper; + private 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/Ereshkigal-AkiConfig/types/controllers/TraderController.d.ts b/Ereshkigal-AkiConfig/types/controllers/TraderController.d.ts new file mode 100644 index 0000000..36eac75 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private logger; + private databaseServer; + private traderAssortHelper; + private profileHelper; + private traderHelper; + private timeUtil; + private traderAssortService; + private 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/Ereshkigal-AkiConfig/types/controllers/WeatherController.d.ts b/Ereshkigal-AkiConfig/types/controllers/WeatherController.d.ts new file mode 100644 index 0000000..312c3a3 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/controllers/WeatherController.d.ts @@ -0,0 +1,10 @@ +import { WeatherGenerator } from "../generators/WeatherGenerator"; +import { IWeatherData } from "../models/eft/weather/IWeatherData"; +import { ConfigServer } from "../servers/ConfigServer"; +export declare class WeatherController { + private weatherGenerator; + private configServer; + private weatherConfig; + constructor(weatherGenerator: WeatherGenerator, configServer: ConfigServer); + generate(): IWeatherData; +} diff --git a/Ereshkigal-AkiConfig/types/controllers/WishlistController.d.ts b/Ereshkigal-AkiConfig/types/controllers/WishlistController.d.ts new file mode 100644 index 0000000..5ef8df3 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private itemEvenRouter; + constructor(itemEvenRouter: ItemEventRouter); + addToWishList(pmcData: IPmcData, body: IWishlistActionData, sessionID: string): IItemEventRouterResponse; + removeFromWishList(pmcData: IPmcData, body: IWishlistActionData, sessionID: string): IItemEventRouterResponse; +} diff --git a/Ereshkigal-AkiConfig/types/di/Container.d.ts b/Ereshkigal-AkiConfig/types/di/Container.d.ts new file mode 100644 index 0000000..17791b0 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/di/OnLoad.d.ts b/Ereshkigal-AkiConfig/types/di/OnLoad.d.ts new file mode 100644 index 0000000..064d07d --- /dev/null +++ b/Ereshkigal-AkiConfig/types/di/OnLoad.d.ts @@ -0,0 +1,4 @@ +export declare class OnLoad { + onLoad(): void; + getRoute(): string; +} diff --git a/Ereshkigal-AkiConfig/types/di/OnLoadOnUpdate.d.ts b/Ereshkigal-AkiConfig/types/di/OnLoadOnUpdate.d.ts new file mode 100644 index 0000000..8bd3dc3 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/di/OnUpdate.d.ts b/Ereshkigal-AkiConfig/types/di/OnUpdate.d.ts new file mode 100644 index 0000000..7fbbe09 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/di/OnUpdate.d.ts @@ -0,0 +1,4 @@ +export declare class OnUpdate { + onUpdate(timeSinceLastRun: number): boolean; + getRoute(): string; +} diff --git a/Ereshkigal-AkiConfig/types/di/Router.d.ts b/Ereshkigal-AkiConfig/types/di/Router.d.ts new file mode 100644 index 0000000..2fb98e0 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/di/Serializer.d.ts b/Ereshkigal-AkiConfig/types/di/Serializer.d.ts new file mode 100644 index 0000000..70aa7c5 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/generators/BotGenerator.d.ts b/Ereshkigal-AkiConfig/types/generators/BotGenerator.d.ts new file mode 100644 index 0000000..e2565b7 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/generators/BotGenerator.d.ts @@ -0,0 +1,36 @@ +import { BotHelper } from "../helpers/BotHelper"; +import { GameEventHelper } from "../helpers/GameEventHelper"; +import { IGenerateBotsRequestData } from "../models/eft/bot/IGenerateBotsRequestData"; +import { IBotBase } from "../models/eft/common/tables/IBotBase"; +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"; +export declare class BotGenerator { + private logger; + private hashUtil; + private randomUtil; + private jsonUtil; + private databaseServer; + private botInventoryGenerator; + private botHelper; + private gameEventHelper; + private configServer; + private botConfig; + 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[]; + private generateBot; + private generateRandomLevel; + /** Converts health object to the required format */ + private generateHealth; + private generateSkills; + private getPmcRole; + private removeChristmasItemsFromBotInventory; + private generateId; + private generateInventoryID; + private getPMCDifficulty; + private generateDogtag; +} diff --git a/Ereshkigal-AkiConfig/types/generators/BotInventoryGenerator.d.ts b/Ereshkigal-AkiConfig/types/generators/BotInventoryGenerator.d.ts new file mode 100644 index 0000000..0cdbacb --- /dev/null +++ b/Ereshkigal-AkiConfig/types/generators/BotInventoryGenerator.d.ts @@ -0,0 +1,24 @@ +import { Inventory as PmcInventory } from "../models/eft/common/IPmcData"; +import { Inventory, Chances, Generation } 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 { + private logger; + private hashUtil; + private randomUtil; + private databaseServer; + private botWeaponGenerator; + private botLootGenerator; + private botGeneratorHelper; + private 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; + private generateEquipment; + private generateInventoryBase; +} diff --git a/Ereshkigal-AkiConfig/types/generators/BotLootGenerator.d.ts b/Ereshkigal-AkiConfig/types/generators/BotLootGenerator.d.ts new file mode 100644 index 0000000..1d8c8e1 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/generators/BotLootGenerator.d.ts @@ -0,0 +1,27 @@ +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 { 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 { + private jsonUtil; + private hashUtil; + private randomUtil; + private databaseServer; + private handbookHelper; + private botGeneratorHelper; + private pmcLootGenerator; + private configServer; + private botConfig; + 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; + private getRandomisedCount; + private addLootFromPool; + /** Compares two item templates by their price to spawn chance ratio */ + private compareByValue; +} diff --git a/Ereshkigal-AkiConfig/types/generators/BotWeaponGenerator.d.ts b/Ereshkigal-AkiConfig/types/generators/BotWeaponGenerator.d.ts new file mode 100644 index 0000000..e8f91cb --- /dev/null +++ b/Ereshkigal-AkiConfig/types/generators/BotWeaponGenerator.d.ts @@ -0,0 +1,44 @@ +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 { MinMax, Mods, ModsChances } from "../models/eft/common/tables/IBotType"; +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 { + private logger; + private hashUtil; + private databaseServer; + private itemHelper; + private weightedRandomHelper; + private botGeneratorHelper; + private randomUtil; + constructor(logger: ILogger, hashUtil: HashUtil, databaseServer: DatabaseServer, itemHelper: ItemHelper, weightedRandomHelper: WeightedRandomHelper, botGeneratorHelper: BotGeneratorHelper, randomUtil: RandomUtil); + generateWeapon(equipmentSlot: string, weaponPool: Record, modPool: Mods, modChances: ModsChances, magCounts: MinMax, botRole: string, isPmc: boolean, inventory: PmcInventory): void; + /** Checks if all required slots are occupied on a weapon and all it's mods */ + private isWeaponValid; + /** + * 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 + * @returns + */ + private generateExtraMagazines; + private addBullets; + /** + * Finds and returns tpl of ammo that should be used, while making sure it's compatible + * + * @param {*} weaponMods + * @param {*} weaponTemplate + * @returns + */ + private getCompatibleAmmo; + /** Fill existing magazines to full, while replacing their contents with specified ammo */ + private fillExistingMagazines; +} diff --git a/Ereshkigal-AkiConfig/types/generators/LocationGenerator.d.ts b/Ereshkigal-AkiConfig/types/generators/LocationGenerator.d.ts new file mode 100644 index 0000000..4b96792 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/generators/LocationGenerator.d.ts @@ -0,0 +1,44 @@ +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 { 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 { + private logger; + private jsonUtil; + private objectId; + private randomUtil; + private ragfairServerHelper; + private itemHelper; + private mathUtil; + private gameEventHelper; + private containerHelper; + private presetHelper; + private configServer; + private locationConfig; + 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; + private getLooseLootMultiplerForLocation; + private getStaticLootMultiplerForLocation; + generateDynamicLoot(dynamicLootDist: ILooseLoot, staticAmmoDist: Record, locationName: string): SpawnpointTemplate[]; + private createItem; + private getRandomCompatibleCaliberTemplateId; + private getRandomValidCaliber; + private drawAmmoTpl; + private createRandomMagCartridges; + private createCartidges; +} diff --git a/Ereshkigal-AkiConfig/types/generators/PMCLootGenerator.d.ts b/Ereshkigal-AkiConfig/types/generators/PMCLootGenerator.d.ts new file mode 100644 index 0000000..601431b --- /dev/null +++ b/Ereshkigal-AkiConfig/types/generators/PMCLootGenerator.d.ts @@ -0,0 +1,14 @@ +import { ItemHelper } from "../helpers/ItemHelper"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { ConfigServer } from "../servers/ConfigServer"; +export declare class PMCLootGenerator { + private itemHelper; + private databaseServer; + private configServer; + private pocketLootPool; + private backpackLootPool; + private botConfig; + constructor(itemHelper: ItemHelper, databaseServer: DatabaseServer, configServer: ConfigServer); + generatePMCPocketLootPool(): string[]; + generatePMCBackpackLootPool(): string[]; +} diff --git a/Ereshkigal-AkiConfig/types/generators/RagfairAssortGenerator.d.ts b/Ereshkigal-AkiConfig/types/generators/RagfairAssortGenerator.d.ts new file mode 100644 index 0000000..06d3250 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private jsonUtil; + private hashUtil; + private itemHelper; + private databaseServer; + private generatedAssortItems; + 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[]; + private assortsAreGenerated; + /** + * Generate an array of items the flea can sell + * @returns array of unique items + */ + private generateRagfairAssortItems; + private createRagfairAssortItem; +} diff --git a/Ereshkigal-AkiConfig/types/generators/RagfairOfferGenerator.d.ts b/Ereshkigal-AkiConfig/types/generators/RagfairOfferGenerator.d.ts new file mode 100644 index 0000000..e3fbe4a --- /dev/null +++ b/Ereshkigal-AkiConfig/types/generators/RagfairOfferGenerator.d.ts @@ -0,0 +1,55 @@ +import { ItemHelper } from "../helpers/ItemHelper"; +import { PresetHelper } from "../helpers/PresetHelper"; +import { RagfairServerHelper } from "../helpers/RagfairServerHelper"; +import { Item } from "../models/eft/common/tables/IItem"; +import { IBarterScheme } from "../models/eft/common/tables/ITrader"; +import { IRagfairOffer } from "../models/eft/ragfair/IRagfairOffer"; +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 { + private logger; + private jsonUtil; + private hashUtil; + private randomUtil; + private timeUtil; + private databaseServer; + private ragfairServerHelper; + private saveServer; + private presetHelper; + private ragfairAssortGenerator; + private ragfairOfferService; + private ragfairPriceService; + private fenceService; + private itemHelper; + private configServer; + private ragfairConfig; + 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; + private getTraderId; + private getRating; + private getRatingGrowing; + private getOfferEndTime; + /** + * 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; + private getItemCondition; + private addMissingCondition; + private getOfferRequirements; + /** + * 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/Ereshkigal-AkiConfig/types/generators/WeatherGenerator.d.ts b/Ereshkigal-AkiConfig/types/generators/WeatherGenerator.d.ts new file mode 100644 index 0000000..b9faa3a --- /dev/null +++ b/Ereshkigal-AkiConfig/types/generators/WeatherGenerator.d.ts @@ -0,0 +1,19 @@ +import { WeightedRandomHelper } from "../helpers/WeightedRandomHelper"; +import { ConfigServer } from "../servers/ConfigServer"; +import { IWeatherData } from "../models/eft/weather/IWeatherData"; +import { RandomUtil } from "../utils/RandomUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +export declare class WeatherGenerator { + private weightedRandomHelper; + private randomUtil; + private timeUtil; + private configServer; + private weatherConfig; + constructor(weightedRandomHelper: WeightedRandomHelper, randomUtil: RandomUtil, timeUtil: TimeUtil, configServer: ConfigServer); + calculateTime(data: IWeatherData): IWeatherData; + generateWeather(data: IWeatherData): IWeatherData; + private getWeightedFog; + private getWeightedRain; + private getRandomFloat; + private getRandomInt; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/AssortHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/AssortHelper.d.ts new file mode 100644 index 0000000..33cb5c6 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/AssortHelper.d.ts @@ -0,0 +1,16 @@ +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 { + private logger; + private itemHelper; + private databaseServer; + private questHelper; + constructor(logger: ILogger, itemHelper: ItemHelper, databaseServer: DatabaseServer, questHelper: QuestHelper); + removeItemFromAssort(assort: ITraderAssort, itemID: string): ITraderAssort; + stripQuestAssort(pmcProfile: IPmcData, sessionId: string, traderId: string, assort: ITraderAssort): ITraderAssort; + stripLoyaltyAssort(pmcProfile: IPmcData, sessionId: string, traderId: string, assort: ITraderAssort): ITraderAssort; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/BotGeneratorHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/BotGeneratorHelper.d.ts new file mode 100644 index 0000000..141f71d --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/BotGeneratorHelper.d.ts @@ -0,0 +1,60 @@ +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, Upd } from "../models/eft/common/tables/IItem"; +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; +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"; +export declare class BotGeneratorHelper { + private logger; + private jsonUtil; + private hashUtil; + private randomUtil; + private databaseServer; + private durabilityLimitsHelper; + private itemHelper; + private inventoryHelper; + private containerHelper; + private configServer; + private botConfig; + constructor(logger: ILogger, jsonUtil: JsonUtil, hashUtil: HashUtil, randomUtil: RandomUtil, 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[]; + /** + * 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 + */ + private fillCamora; + generateExtraPropertiesForItem(itemTemplate: ITemplateItem, botRole?: any): { + "upd"?: Upd; + }; + private getModTplFromItemDb; + isItemIncompatibleWithCurrentItems(items: Item[], tplToCheck: string, equipmentSlot: string): boolean; + /** Adds an item with all its childern into specified equipmentSlots, wherever it fits. + * Returns a `boolean` indicating success. */ + addItemWithChildrenToEquipmentSlot(equipmentSlots: string[], parentId: string, parentTpl: string, itemWithChildren: Item[], inventory: PmcInventory): boolean; + private itemAllowedInContainer; +} +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/Ereshkigal-AkiConfig/types/helpers/BotHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/BotHelper.d.ts new file mode 100644 index 0000000..d901362 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/BotHelper.d.ts @@ -0,0 +1,22 @@ +import { Difficulty } from "../models/eft/common/tables/IBotType"; +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 { + private logger; + private jsonUtil; + private databaseServer; + private randomUtil; + private configServer; + private botConfig; + constructor(logger: ILogger, jsonUtil: JsonUtil, databaseServer: DatabaseServer, randomUtil: RandomUtil, configServer: ConfigServer); + getBotDifficultySettings(type: string, difficulty: string): Difficulty; + getPmcDifficultySettings(type: string, difficulty: string): Difficulty; + randomisePmcHostility(difficultySettings: Difficulty): void; + isBotPmc(botRole: string): boolean; + isBotBoss(botRole: string): boolean; + isBotFollower(botRole: string): boolean; + addBotToFriendlyList(difficultySettings: Difficulty, typeToAdd: string): void; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/ContainerHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/ContainerHelper.d.ts new file mode 100644 index 0000000..34cd1e4 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private locateSlot; + 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/Ereshkigal-AkiConfig/types/helpers/DialogueHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/DialogueHelper.d.ts new file mode 100644 index 0000000..ae1f581 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private hashUtil; + private saveServer; + private databaseServer; + private notifierHelper; + private notificationSendHelper; + private 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/Ereshkigal-AkiConfig/types/helpers/DurabilityLimitsHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/DurabilityLimitsHelper.d.ts new file mode 100644 index 0000000..609bc7d --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/DurabilityLimitsHelper.d.ts @@ -0,0 +1,25 @@ +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; +import { ConfigServer } from "../servers/ConfigServer"; +import { RandomUtil } from "../utils/RandomUtil"; +import { BotHelper } from "./BotHelper"; +export declare class DurabilityLimitsHelper { + private randomUtil; + private botHelper; + private configServer; + private botConfig; + 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; + private generateMaxWeaponDurability; + private generateMaxPmcArmorDurability; + private getLowestMaxWeaponFromConfig; + private getHighestMaxWeaponDurabilityFromConfig; + private generateWeaponDurability; + private generateArmorDurability; + private getMinWeaponDeltaFromConfig; + private getMaxWeaponDeltaFromConfig; + private getMinArmorDeltaFromConfig; + private getMaxArmorDeltaFromConfig; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/ExtendedProfileHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/ExtendedProfileHelper.d.ts new file mode 100644 index 0000000..4dd7d3a --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/ExtendedProfileHelper.d.ts @@ -0,0 +1,22 @@ +import { BotGenerator } from "../generators/BotGenerator"; +import { IPmcData } 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 { + private botGenerator; + constructor(jsonUtil: JsonUtil, watermark: Watermark, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, itemHelper: ItemHelper, fenceService: FenceService, botGenerator: BotGenerator); + generatePlayerScav(sessionID: string): IPmcData; + private getScavSkills; + private removeSecureContainer; + private getDefaultScavSkills; + private getScavStats; + private getScavLevel; + private getScavExperience; + private setScavCooldownTimer; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/GameEventHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/GameEventHelper.d.ts new file mode 100644 index 0000000..8131d31 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/GameEventHelper.d.ts @@ -0,0 +1,9 @@ +import { DatabaseServer } from "../servers/DatabaseServer"; +export declare class GameEventHelper { + private databaseServer; + constructor(databaseServer: DatabaseServer); + get EVENT(): Record; + get christmasEventItems(): string[]; + itemIsChristmasRelated(itemId: string): boolean; + christmasEventEnabled(): boolean; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/HandbookHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/HandbookHelper.d.ts new file mode 100644 index 0000000..aed6984 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private lookup; + 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/Ereshkigal-AkiConfig/types/helpers/HealthHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/HealthHelper.d.ts new file mode 100644 index 0000000..bb160a3 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/HealthHelper.d.ts @@ -0,0 +1,23 @@ +import { IPmcData } from "../models/eft/common/IPmcData"; +import { ISyncHealthRequestData } from "../models/eft/health/ISyncHealthRequestData"; +import { IAkiProfile } from "../models/eft/profile/IAkiProfile"; +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 { + private jsonUtil; + private logger; + private timeUtil; + private saveServer; + private configServer; + private healthConfig; + constructor(jsonUtil: JsonUtil, logger: ILogger, timeUtil: TimeUtil, saveServer: SaveServer, configServer: ConfigServer); + resetVitality(sessionID: string): IAkiProfile; + saveVitality(pmcData: IPmcData, info: ISyncHealthRequestData, sessionID: string): void; + private saveHealth; + private saveEffects; + private addEffect; + private isEmpty; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/HideoutHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/HideoutHelper.d.ts new file mode 100644 index 0000000..d6a4414 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/HideoutHelper.d.ts @@ -0,0 +1,66 @@ +import { IPmcData, Production, Productive } from "../models/eft/common/IPmcData"; +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 { 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 { + private logger; + private hashUtil; + private timeUtil; + private randomUtil; + private databaseServer; + private itemEventRouter; + private httpResponse; + private profileHelper; + private inventoryHelper; + private playerService; + private configServer; + static BITCOIN_FARM: string; + private WATER_COLLECTOR; + private BITCOIN; + private EXPEDITIONARY_FUEL_TANK; + static NAME_BACKENDCOUNTERS_CRAFTING: string; + static SKILL_NAME_HIDEOUT: string; + static HOUR_FOR_SKILL_CRAFTING: number; + static SKILL_NAME_CRAFITING: string; + private hideoutConfig; + 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; + private applySkillXPBoost; + updatePlayerHideout(sessionID: string): void; + private updateWaterCollector; + private doesWaterCollectorHaveFilter; + private updateFuel; + private updateWaterFilters; + private getAreaUpdObject; + private updateAirFilters; + private updateBitcoinFarm; + private getBTCSlots; + private getManagementSkillsSlots; + private hasManagementSkillSlots; + private getHideoutManagementSkill; + private getHideoutManagementConsumptionBonus; + isProduction(productive: Productive): productive is Production; + getBTC(pmcData: IPmcData, body: IHideoutTakeProductionRequestData, sessionID: string): IItemEventRouterResponse; + getRandomAmountRewardForScavCase(itemToCalculate: ITemplateItem): number; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/HttpServerHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/HttpServerHelper.d.ts new file mode 100644 index 0000000..2e40814 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/HttpServerHelper.d.ts @@ -0,0 +1,12 @@ +import { ConfigServer } from "../servers/ConfigServer"; +export declare class HttpServerHelper { + private configServer; + private httpConfig; + private mime; + constructor(configServer: ConfigServer); + getMimeText(key: string): string; + buildUrl(): string; + getBackendUrl(): string; + getWebsocketUrl(): string; + sendTextJson(resp: any, output: any): void; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/InRaidHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/InRaidHelper.d.ts new file mode 100644 index 0000000..e79d384 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private logger; + private saveServer; + private jsonUtil; + private databaseServer; + private inventoryHelper; + private paymentHelper; + constructor(logger: ILogger, saveServer: SaveServer, jsonUtil: JsonUtil, databaseServer: DatabaseServer, inventoryHelper: InventoryHelper, paymentHelper: PaymentHelper); + private removePlayer; + private removeMapAccessKey; + 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/Ereshkigal-AkiConfig/types/helpers/InventoryHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/InventoryHelper.d.ts new file mode 100644 index 0000000..00e95d3 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/InventoryHelper.d.ts @@ -0,0 +1,77 @@ +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 { 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 { + private logger; + private jsonUtil; + private hashUtil; + private httpResponse; + private fenceService; + private databaseServer; + private paymentHelper; + private traderAssortHelper; + private dialogueHelper; + private itemHelper; + private containerHelper; + private profileHelper; + private configServer; + private inventoryConfig; + 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; + private getSizeByInventoryItemHash; + private getInventoryItemHash; + 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 + */ + private getStashSlotMap; + private getStashType; + private getPlayerStashSize; + /** + * 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. + */ + private handleCartridges; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/ItemHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/ItemHelper.d.ts new file mode 100644 index 0000000..5ff64b6 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/ItemHelper.d.ts @@ -0,0 +1,147 @@ +import { InsuredItem, IPmcData } from "../models/eft/common/IPmcData"; +import { Item } from "../models/eft/common/tables/IItem"; +import { ITemplateItem, StackSlot } 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 { + private logger; + private hashUtil; + private jsonUtil; + private 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 + */ + generateStackSlotItems(item: ITemplateItem, parentId: string): StackSlot[]; + getItem(tpl: string): [boolean, ITemplateItem]; + 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/Ereshkigal-AkiConfig/types/helpers/NotificationSendHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/NotificationSendHelper.d.ts new file mode 100644 index 0000000..b9298da --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private httpServer; + private notificationService; + constructor(httpServer: IHttpServer, notificationService: NotificationService); + /** + * Send notification message to the appropiate channel + */ + sendMessage(sessionID: string, notificationMessage: INotification): void; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/NotifierHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/NotifierHelper.d.ts new file mode 100644 index 0000000..0d524e9 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private httpServerHelper; + /** + * The default notification sent when waiting times out. + */ + private defaultNotification; + 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/Ereshkigal-AkiConfig/types/helpers/PaymentHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/PaymentHelper.d.ts new file mode 100644 index 0000000..2d068a4 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/helpers/PresetHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/PresetHelper.d.ts new file mode 100644 index 0000000..0a24128 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private databaseServer; + private lookup; + 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/Ereshkigal-AkiConfig/types/helpers/ProfileHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/ProfileHelper.d.ts new file mode 100644 index 0000000..508443c --- /dev/null +++ b/Ereshkigal-AkiConfig/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; + private isWiped; + private getServerVersion; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/QuestConditionHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/QuestConditionHelper.d.ts new file mode 100644 index 0000000..2a0ee94 --- /dev/null +++ b/Ereshkigal-AkiConfig/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[]; + private filterConditions; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/QuestHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/QuestHelper.d.ts new file mode 100644 index 0000000..9e2dd5e --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/QuestHelper.d.ts @@ -0,0 +1,68 @@ +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 { ILogger } from "../models/spt/utils/ILogger"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +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 { + private logger; + private jsonUtil; + private timeUtil; + private hashUtil; + private itemHelper; + private itemEventRouter; + private databaseServer; + private ragfairServerHelper; + private dialogueHelper; + private profileHelper; + private paymentHelper; + private traderHelper; + private configServer; + private questConfig; + constructor(logger: ILogger, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, itemEventRouter: ItemEventRouter, databaseServer: DatabaseServer, 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; + private processReward; + 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 + */ + questValues(): IQuest[]; + private cleanQuestList; + cleanQuestConditions(quest: IQuest): IQuest; + failQuest(pmcData: IPmcData, body: any, sessionID: string): any; + getQuestFromDb(questId: string, pmcData: IPmcData): IQuest; + getQuestLocaleIdFromDb(messageId: string, localisation?: string): string; + applyQuestReward(pmcData: IPmcData, body: ICompleteQuestRequestData, state: string, sessionID: string): any[]; + getFindItemIdForQuestItem(itemTpl: string): string; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/RagfairHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/RagfairHelper.d.ts new file mode 100644 index 0000000..8e70bcd --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { 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 { + private logger; + private jsonUtil; + private traderAssortHelper; + private databaseServer; + private handbookHelper; + private itemHelper; + private ragfairLinkedItemService; + private utilityHelper; + private configServer; + private ragfairConfig; + 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; + private getCategoryList; + countCategories(result: IGetOffersResult): void; + /** + * Merges Root Items + * Ragfair allows abnormally large stacks. + */ + mergeStackable(items: Item[]): Item[]; + getCurrencySymbol(currencyTpl: string): string; + formatCurrency(moneyAmount: number): string; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/RagfairOfferHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/RagfairOfferHelper.d.ts new file mode 100644 index 0000000..3bf8add --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/RagfairOfferHelper.d.ts @@ -0,0 +1,49 @@ +import { IPmcData } from "../models/eft/common/IPmcData"; +import { ITraderAssort } from "../models/eft/common/tables/ITrader"; +import { IRagfairOffer } from "../models/eft/ragfair/IRagfairOffer"; +import { ISearchRequestData } from "../models/eft/ragfair/ISearchRequestData"; +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 { 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 { + private logger; + private timeUtil; + private hashUtil; + private itemEventRouter; + private databaseServer; + private saveServer; + private dialogueHelper; + private itemHelper; + private paymentHelper; + private presetHelper; + private profileHelper; + private ragfairServerHelper; + private ragfairSortHelper; + private ragfairHelper; + private ragfairOfferService; + private configServer; + private static TPL_GOODS_SOLD; + private ragfairConfig; + private questConfig; + 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, 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; + private getProfileOffers; + private deleteOfferByOfferId; + private completeOffer; + isDisplayableOffer(info: ISearchRequestData, itemsToAdd: string[], assorts: Record, offer: IRagfairOffer, pmcProfile: IPmcData): boolean; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/RagfairSellHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/RagfairSellHelper.d.ts new file mode 100644 index 0000000..929d112 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/RagfairSellHelper.d.ts @@ -0,0 +1,15 @@ +import { SellResult } from "../models/eft/ragfair/IRagfairOffer"; +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 { + private logger; + private randomUtil; + private timeUtil; + private configServer; + private ragfairConfig; + 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/Ereshkigal-AkiConfig/types/helpers/RagfairServerHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/RagfairServerHelper.d.ts new file mode 100644 index 0000000..d29ba42 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/RagfairServerHelper.d.ts @@ -0,0 +1,44 @@ +import { MemberCategory } from "../models/enums/MemberCategory"; +import { Item } from "../models/eft/common/tables/IItem"; +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { SaveServer } from "../servers/SaveServer"; +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 { + private randomUtil; + private hashUtil; + private saveServer; + private databaseServer; + private profileHelper; + private itemHelper; + private dialogueHelper; + private jsonUtil; + private configServer; + private ragfairConfig; + private questConfig; + private static TPL_GOODS_RETURNED; + constructor(randomUtil: RandomUtil, hashUtil: HashUtil, saveServer: SaveServer, databaseServer: DatabaseServer, profileHelper: ProfileHelper, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, jsonUtil: JsonUtil, configServer: ConfigServer); + /** + * Is item valid / on blacklist / quest item + * @param itemDetails + * @returns boolean + */ + isItemValidRagfairItem(itemDetails: [boolean, ITemplateItem]): boolean; + private isItemBlacklisted; + 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/Ereshkigal-AkiConfig/types/helpers/RagfairSortHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/RagfairSortHelper.d.ts new file mode 100644 index 0000000..e9d8069 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/RagfairSortHelper.d.ts @@ -0,0 +1,12 @@ +import { IRagfairOffer } from "../models/eft/ragfair/IRagfairOffer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +export declare class RagfairSortHelper { + private databaseServer; + constructor(databaseServer: DatabaseServer); + sortOffers(offers: IRagfairOffer[], type: number, direction?: number): IRagfairOffer[]; + private sortOffersByID; + private sortOffersByRating; + private sortOffersByName; + private sortOffersByPrice; + private sortOffersByExpiry; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/RagfairTaxHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/RagfairTaxHelper.d.ts new file mode 100644 index 0000000..e87334f --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/RagfairTaxHelper.d.ts @@ -0,0 +1,15 @@ +import { IPmcData } from "../models/eft/common/IPmcData"; +import { Item } from "../models/eft/common/tables/IItem"; +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 { + private logger; + private databaseServer; + private ragfairPriceService; + private itemHelper; + constructor(logger: ILogger, databaseServer: DatabaseServer, ragfairPriceService: RagfairPriceService, itemHelper: ItemHelper); + calculateTax(item: Item, pmcData: IPmcData, requirementsValue: number, offerItemCount: number, sellInOnePiece: boolean): number; + private calculateItemWorth; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/RepairHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/RepairHelper.d.ts new file mode 100644 index 0000000..47123e1 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/RepairHelper.d.ts @@ -0,0 +1,20 @@ +import { IPmcData } from "../models/eft/common/IPmcData"; +import { Item } from "../models/eft/common/tables/IItem"; +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 { + private logger; + private jsonUtil; + private randomUtil; + private databaseServer; + private configServer; + private repairConfig; + constructor(logger: ILogger, jsonUtil: JsonUtil, randomUtil: RandomUtil, databaseServer: DatabaseServer, configServer: ConfigServer); + updateItemDurability(itemToRepairId: string, amountToRepair: number, pmcData: IPmcData, useRepairKit?: boolean): Item; + private getRandomisedArmorRepairDegredationValue; + private getRandomisedWeaponRepairDegredationValue; + isWeaponTemplate(tpl: string): boolean; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/SecureContainerHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/SecureContainerHelper.d.ts new file mode 100644 index 0000000..8f246b6 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private itemHelper; + constructor(itemHelper: ItemHelper); + getSecureContainerItems(items: Item[]): string[]; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/TradeHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/TradeHelper.d.ts new file mode 100644 index 0000000..475390b --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { 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 { + private logger; + private itemEventRouter; + private traderHelper; + private itemHelper; + private paymentService; + private fenceService; + private inventoryHelper; + private 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; + private incrementAssortBuyCount; + private checkPurchaseIsWithinTraderItemLimit; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/TraderAssortHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/TraderAssortHelper.d.ts new file mode 100644 index 0000000..d95879c --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/TraderAssortHelper.d.ts @@ -0,0 +1,23 @@ +import { ITraderAssort } from "../models/eft/common/tables/ITrader"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { RagfairAssortGenerator } from "../generators/RagfairAssortGenerator"; +import { RagfairOfferGenerator } from "../generators/RagfairOfferGenerator"; +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 { + private logger; + private jsonUtil; + private databaseServer; + private profileHelper; + private assortHelper; + private ragfairAssortGenerator; + private ragfairOfferGenerator; + private traderAssortService; + private fenceService; + constructor(logger: ILogger, jsonUtil: JsonUtil, databaseServer: DatabaseServer, profileHelper: ProfileHelper, assortHelper: AssortHelper, ragfairAssortGenerator: RagfairAssortGenerator, ragfairOfferGenerator: RagfairOfferGenerator, traderAssortService: TraderAssortService, fenceService: FenceService); + getAssort(sessionId: string, traderId: string): ITraderAssort; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/TraderHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/TraderHelper.d.ts new file mode 100644 index 0000000..ec64d59 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/TraderHelper.d.ts @@ -0,0 +1,35 @@ +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IBarterScheme, ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader"; +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 { + private logger; + private databaseServer; + private saveServer; + private profileHelper; + private paymentHelper; + private itemHelper; + private handbookHelper; + private playerService; + private fenceService; + private configServer; + private traderConfig; + 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; + resetTrader(sessionID: string, traderID: string): void; + changeTraderDisplay(traderID: string, status: boolean, sessionID: string): void; + getPurchasesData(traderID: string, sessionID: string): Record; + lvlUp(traderID: string, sessionID: string): void; + getTraderUpdateSeconds(traderId: string): number; + traderFilter(traderFilters: string[], tplToCheck: string): boolean; + getLoyaltyLevel(traderID: string, pmcData: IPmcData): LoyaltyLevel; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/UtilityHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/UtilityHelper.d.ts new file mode 100644 index 0000000..5d9f482 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/helpers/UtilityHelper.d.ts @@ -0,0 +1,3 @@ +export declare class UtilityHelper { + arrayIntersect(a: T[], b: T[]): T[]; +} diff --git a/Ereshkigal-AkiConfig/types/helpers/WeightedRandomHelper.d.ts b/Ereshkigal-AkiConfig/types/helpers/WeightedRandomHelper.d.ts new file mode 100644 index 0000000..9aa0d29 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/ide/BleedingEdgeEntry.d.ts b/Ereshkigal-AkiConfig/types/ide/BleedingEdgeEntry.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/Ereshkigal-AkiConfig/types/ide/BleedingEdgeEntry.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/Ereshkigal-AkiConfig/types/ide/Compiler.d.ts b/Ereshkigal-AkiConfig/types/ide/Compiler.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/Ereshkigal-AkiConfig/types/ide/Compiler.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/Ereshkigal-AkiConfig/types/ide/DebugEntry.d.ts b/Ereshkigal-AkiConfig/types/ide/DebugEntry.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/Ereshkigal-AkiConfig/types/ide/DebugEntry.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/Ereshkigal-AkiConfig/types/ide/ReleaseEntry.d.ts b/Ereshkigal-AkiConfig/types/ide/ReleaseEntry.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/Ereshkigal-AkiConfig/types/ide/ReleaseEntry.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/Ereshkigal-AkiConfig/types/ide/TestEntry.d.ts b/Ereshkigal-AkiConfig/types/ide/TestEntry.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/Ereshkigal-AkiConfig/types/ide/TestEntry.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/Ereshkigal-AkiConfig/types/loaders/BundleLoader.d.ts b/Ereshkigal-AkiConfig/types/loaders/BundleLoader.d.ts new file mode 100644 index 0000000..4f7664c --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private httpServerHelper; + private vfs; + private jsonUtil; + private bundles; + 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/Ereshkigal-AkiConfig/types/loaders/DelayedModLoader.d.ts b/Ereshkigal-AkiConfig/types/loaders/DelayedModLoader.d.ts new file mode 100644 index 0000000..7d0009f --- /dev/null +++ b/Ereshkigal-AkiConfig/types/loaders/DelayedModLoader.d.ts @@ -0,0 +1,21 @@ +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 { + private bundleLoader; + private handbookController; + private vfs; + private modCompilerService; + private initialModLoader; + constructor(bundleLoader: BundleLoader, handbookController: HandbookController, vfs: VFS, modCompilerService: ModCompilerService, initialModLoader: InitialModLoader); + getBundles(local: boolean): string; + getBundle(key: string, local: boolean): void; + getImportedModsNames(): string[]; + getModPath(mod: string): string; + load(): void; + private executeMods; + private addBundles; +} diff --git a/Ereshkigal-AkiConfig/types/loaders/InitialModLoader.d.ts b/Ereshkigal-AkiConfig/types/loaders/InitialModLoader.d.ts new file mode 100644 index 0000000..5957d35 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/loaders/InitialModLoader.d.ts @@ -0,0 +1,58 @@ +import { DependencyContainer } from "tsyringe"; +import { IModLoader } from "../models/spt/mod/IModLoader"; +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 { + private logger; + private vfs; + private jsonUtil; + private modCompilerService; + private bundleLoader; + private configServer; + private static container; + private readonly basepath; + private imported; + private onLoad; + private akiConfig; + 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; + getImportedModsNames(): string[]; + getModPath(mod: string): string; + private importClass; + private importMods; + /** + * + * @param mods Get an array of broken/invalid mods by name + * @returns Mod names array + */ + private getBrokenMods; + /** + * Get packageJson data for mods + * @param mods mods to get packageJson for + * @returns dictionary + */ + private getModsPackageData; + /** + * Does mod have "delayedLoad(" string in its entry class + * @param modFolderName folder name + * @param modToValidate package.json details + * @returns boolean + */ + private isModSpt300Compatible; + private isModCombatibleWithAki; + private executeMods; + private sortModsLoadOrder; + private addMod; + private areModDependenciesFulfilled; + private isModCompatible; + private validMod; + private getLoadOrderRecursive; + private getLoadOrder; + getContainer(): DependencyContainer; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/bot/IGenerateBotsRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/bot/IGenerateBotsRequestData.d.ts new file mode 100644 index 0000000..c49cef7 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/common/IEmptyRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/IEmptyRequestData.d.ts new file mode 100644 index 0000000..284d16e --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/common/IEmptyRequestData.d.ts @@ -0,0 +1,2 @@ +export interface IEmptyRequestData { +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/common/IGlobals.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/IGlobals.d.ts new file mode 100644 index 0000000..456895c --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/common/ILocation.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/ILocation.d.ts new file mode 100644 index 0000000..42fac06 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/common/ILocationBase.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/ILocationBase.d.ts new file mode 100644 index 0000000..ad48d32 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/common/ILocationsSourceDestinationBase.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/ILocationsSourceDestinationBase.d.ts new file mode 100644 index 0000000..7f8d915 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/common/ILooseLoot.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/ILooseLoot.d.ts new file mode 100644 index 0000000..14b795e --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/common/IMetricsTableData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/IMetricsTableData.d.ts new file mode 100644 index 0000000..873ef82 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/common/IPmcData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/IPmcData.d.ts new file mode 100644 index 0000000..adc2aa5 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/common/MemberCategory.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/MemberCategory.d.ts new file mode 100644 index 0000000..3bd9a21 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/common/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/Ereshkigal-AkiConfig/types/models/eft/common/request/IBaseInteractionRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/request/IBaseInteractionRequestData.d.ts new file mode 100644 index 0000000..7303275 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/common/tables/IBotBase.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/tables/IBotBase.d.ts new file mode 100644 index 0000000..677fd49 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/common/tables/IBotCore.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/tables/IBotCore.d.ts new file mode 100644 index 0000000..16a782d --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/common/tables/IBotType.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/tables/IBotType.d.ts new file mode 100644 index 0000000..01be0be --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/common/tables/ICustomizationItem.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/tables/ICustomizationItem.d.ts new file mode 100644 index 0000000..8bfeece --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/common/tables/IHandbookBase.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/tables/IHandbookBase.d.ts new file mode 100644 index 0000000..7d7db07 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/common/tables/IItem.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/tables/IItem.d.ts new file mode 100644 index 0000000..2dd2c03 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/common/tables/ILocationsBase.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/tables/ILocationsBase.d.ts new file mode 100644 index 0000000..2c96af3 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/common/tables/ILootBase.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/tables/ILootBase.d.ts new file mode 100644 index 0000000..e4baac5 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/common/tables/IQuest.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/tables/IQuest.d.ts new file mode 100644 index 0000000..e1fc888 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/common/tables/IRepeatableQuests.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/tables/IRepeatableQuests.d.ts new file mode 100644 index 0000000..e23ec73 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/common/tables/ITemplateItem.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/tables/ITemplateItem.d.ts new file mode 100644 index 0000000..c2ba762 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/common/tables/ITemplateItem.d.ts @@ -0,0 +1,401 @@ +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[]; + DiscardLimit: number; + Unlootable: boolean; + UnlootableFromSlot: string; + UnlootableFromSide: string[]; + AnimationVariantsNumber: number; + DiscardingBlock: boolean; + RagFairCommissionModifier: number; + IsAlwaysAvailableForInsurance: boolean; + Grids: Grid[]; + Slots: Slot[]; + CanPutIntoDuringTheRaid: boolean; + CantRemoveFromSlotsDuringRaid: string[]; + weapClass: string; + weapUseType: string; + ammoCaliber: string; + Durability: number; + MaxDurability: number; + 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; + Ergonomics: number; + Velocity: number; + bEffDist: number; + bHearDist: number; + isChamberLoad: boolean; + chamberAmmoCount: number; + isBoltCatch: boolean; + defMagType: string; + defAmmo: string; + AdjustCollimatorsToTrajectory: boolean; + shotgunDispersion: number; + Chambers: Chamber[]; + CameraRecoil: number; + CameraSnap: number; + ReloadMode: string; + CenterOfImpact: number; + AimPlane: number; + DeviationCurve: number; + DeviationMax: number; + Foldable: boolean; + Retractable: boolean; + TacticalReloadStiffnes: Xyz; + TacticalReloadFixation: number; + RecoilCenter: Xyz; + RotationCenter: Xyz; + RotationCenterNoStock: Xyz; + SizeReduceRight: number; + FoldedSlot: string; + CompactHandling: boolean; + SightingRange: number; + MinRepairDegradation: number; + MaxRepairDegradation: number; + MinRepairKitDegradation: number; + MaxRepairKitDegradation: 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; + ShotgunDispersion: number; + StackMinRandom: number; + StackMaxRandom: number; + StackSlots: StackSlot[]; + SearchSound: string; + BlocksArmorVest: boolean; + RigLayoutName: string; + armorZone: string[]; + armorClass: number; + speedPenaltyPercent: number; + mousePenalty: number; + weaponErgonomicPenalty: number; + BluntThroughput: number; + ArmorMaterial: string; + medUseTime: number; + medEffectType: string; + MaxHpResource: number; + hpResourceRate: number; + StimulatorBuffs: string; + effects_health: EffectsHealth; + effects_damage: EffectsDamage; + 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; + MaxResource: number; + AppliedTrunkRotation: Xyz; + AppliedHeadRotation: Xyz; + DisplayOnModel: boolean; + AdditionalAnimationLayer: number; + StaminaBurnRate: number; + ColliderScaleMultiplier: Xyz; + 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: Contusion; + ArmorDistanceDistanceDamage: Xyz; + Blindness: Xyz; + IsLightAndSoundShot: boolean; + LightAndSoundShotAngle: number; + LightAndSoundShotSelfContusionTime: number; + LightAndSoundShotSelfContusionStrength: number; + MalfMisfireChance: number; + DurabilityBurnModificator: number; + HeatFactor: number; + MalfFeedChance: number; + Accuracy: number; + Recoil: number; + Loudness: number; + EffectiveDistance: number; + RaidModdable: boolean; + ToolModdable: boolean; + BlocksFolding: boolean; + BlocksCollapsible: boolean; + IsAnimated: boolean; + HasShoulderContact: boolean; + DoubleActionAccuracyPenaltyMult: number; + magAnimationIndex: number; + Cartridges: Cartridge[]; + CanFast: boolean; + CanHit: boolean; + CanAdmin: boolean; + LoadUnloadModifier: number; + CheckTimeModifier: number; + CheckOverride: number; + ReloadMagType: string; + VisibleAmmoRangesString: string; + MalfunctionChance: number; + TagColor: number; + TagName: string; + MaximumNumberOfUsage: number; + CustomAimPlane: string; + sightModType: string; + aimingSensitivity: number; + SightModesCount: number; + OpticCalibrationDistances: number[]; + ScopesCount: number; + AimSensitivity: number[][]; + ModesCount: number[]; + Zooms: number[][]; + CalibrationDistances: number[][]; + Intensity: number; + Mask: string; + MaskSize: number; + NoiseIntensity: number; + NoiseScale: number; + Color: Color; + DiffuseIntensity: number; + HasHinge: boolean; + Resource?: number; + CoolFactor?: number; + foodUseTime?: number; + foodEffectType?: string; + MaxRepairResource: number; + RepairQuality: number; + RepairType: string; + TargetItemFilter: string[]; + apResource: number; + krResource: number; +} +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; + _required: boolean; + _mergeSlotWithChildren: boolean; + _proto: string; +} +export interface SlotProps { + filters: Filter[]; +} +export interface Chamber { + _name: string; + _id: string; + _parent: string; + _props: ChamberProps; + _required: boolean; + _mergeSlotWithChildren: boolean; + _proto: string; +} +export interface ChamberProps { + filters: FilterProps[]; +} +export interface FilterProps { + Filter: string[]; +} +export interface Xyz { + x: number; + y: number; + z: number; +} +export interface StackSlot { + _name?: string; + _id: string; + _sptTpl: string; + parent: string; + location: any; + slotId: string; + _max_count: number; + _props?: StackSlotProps; + _proto?: string; + upd: any; +} +export interface StackSlotProps { + filters: Filter[]; +} +export interface EffectsHealth { + Hydration: Hydration; +} +export interface Hydration { + value: number; +} +export interface EffectsDamage { + Pain: Pain; + Contusion: Contusion; +} +export interface Pain { + delay: number; + duration: number; + fadeOut: number; +} +export interface Contusion { + delay: number; + duration: number; + fadeOut: number; +} +export interface Cartridge { + _name: string; + _id: string; + _parent: string; + _max_count: number; + _props: CartridgeProps; + _proto: string; +} +export interface CartridgeProps { + filters: Filter[]; +} +export interface Filter { + Shift?: number; + Filter: string[]; + AnimationIndex?: number; +} +export interface Color { + r: number; + g: number; + b: number; + a: number; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/common/tables/ITrader.d.ts b/Ereshkigal-AkiConfig/types/models/eft/common/tables/ITrader.d.ts new file mode 100644 index 0000000..f0fe2b5 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/customization/IBuyClothingRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/customization/IBuyClothingRequestData.d.ts new file mode 100644 index 0000000..d19b70d --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/customization/IWearClothingRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/customization/IWearClothingRequestData.d.ts new file mode 100644 index 0000000..122d9cf --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/customization/IWearClothingRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IWearClothingRequestData { + Action: "CustomizationWear"; + suites: string[]; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/dialog/IFriendRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/dialog/IFriendRequestData.d.ts new file mode 100644 index 0000000..9c326ac --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/dialog/IFriendRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IFriendRequestData { + to: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetAllAttachmentsRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetAllAttachmentsRequestData.d.ts new file mode 100644 index 0000000..53d8289 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetAllAttachmentsRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetAllAttachmentsRequestData { + dialogId: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetAllAttachmentsResponse.d.ts b/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetAllAttachmentsResponse.d.ts new file mode 100644 index 0000000..076d414 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetChatServerListRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetChatServerListRequestData.d.ts new file mode 100644 index 0000000..8f1beac --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetChatServerListRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetChatServerListRequestData { + VersionId: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetFriendListDataResponse.d.ts b/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetFriendListDataResponse.d.ts new file mode 100644 index 0000000..1d0c0e8 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetMailDialogInfoRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetMailDialogInfoRequestData.d.ts new file mode 100644 index 0000000..eed84b1 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetMailDialogInfoRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetMailDialogInfoRequestData { + dialogId: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetMailDialogListRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetMailDialogListRequestData.d.ts new file mode 100644 index 0000000..f8fbf5d --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetMailDialogListRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IGetMailDialogListRequestData { + limit: number; + offset: number; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetMailDialogViewRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetMailDialogViewRequestData.d.ts new file mode 100644 index 0000000..43d416e --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetMailDialogViewResponseData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/dialog/IGetMailDialogViewResponseData.d.ts new file mode 100644 index 0000000..4f8b946 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/dialog/IPinDialogRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/dialog/IPinDialogRequestData.d.ts new file mode 100644 index 0000000..57b8a00 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/dialog/IPinDialogRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IPinDialogRequestData { + dialogId: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/dialog/IRemoveDialogRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/dialog/IRemoveDialogRequestData.d.ts new file mode 100644 index 0000000..874b828 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/dialog/IRemoveDialogRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IRemoveDialogRequestData { + dialogId: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/dialog/ISendMessageRequest.d.ts b/Ereshkigal-AkiConfig/types/models/eft/dialog/ISendMessageRequest.d.ts new file mode 100644 index 0000000..dd79deb --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/dialog/ISetDialogReadRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/dialog/ISetDialogReadRequestData.d.ts new file mode 100644 index 0000000..2076232 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/dialog/ISetDialogReadRequestData.d.ts @@ -0,0 +1,3 @@ +export interface ISetDialogReadRequestData { + dialogs: string[]; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/game/IGameConfigResponse.d.ts b/Ereshkigal-AkiConfig/types/models/eft/game/IGameConfigResponse.d.ts new file mode 100644 index 0000000..eb37a39 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/game/IGameEmptyCrcRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/game/IGameEmptyCrcRequestData.d.ts new file mode 100644 index 0000000..a3ecad9 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/game/IGameEmptyCrcRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGameEmptyCrcRequestData { + crc: number; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/game/IVersionValidateRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/game/IVersionValidateRequestData.d.ts new file mode 100644 index 0000000..0aa0fed --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/health/IHealthTreatmentRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/health/IHealthTreatmentRequestData.d.ts new file mode 100644 index 0000000..7fb80a8 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/health/IOffraidEatRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/health/IOffraidEatRequestData.d.ts new file mode 100644 index 0000000..8e2b6c3 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/health/IOffraidHealRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/health/IOffraidHealRequestData.d.ts new file mode 100644 index 0000000..c242300 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/health/ISyncHealthRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/health/ISyncHealthRequestData.d.ts new file mode 100644 index 0000000..20e32f6 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/hideout/HideoutAreasEnum.d.ts b/Ereshkigal-AkiConfig/types/models/eft/hideout/HideoutAreasEnum.d.ts new file mode 100644 index 0000000..10f851b --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/hideout/HideoutAreasEnum.d.ts @@ -0,0 +1,25 @@ +export declare enum HideoutAreasEnum { + 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/Ereshkigal-AkiConfig/types/models/eft/hideout/HideoutUpgradeCompleteRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/hideout/HideoutUpgradeCompleteRequestData.d.ts new file mode 100644 index 0000000..8583e8d --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/hideout/HideoutUpgradeCompleteRequestData.d.ts @@ -0,0 +1,5 @@ +export interface HideoutUpgradeCompleteRequestData { + Action: string; + areaType: number; + timestamp: number; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutArea.d.ts b/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutArea.d.ts new file mode 100644 index 0000000..d9fd2bf --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutContinousProductionStartRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutContinousProductionStartRequestData.d.ts new file mode 100644 index 0000000..dba83eb --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutContinousProductionStartRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IHideoutContinousProductionStartRequestData { + Action: "HideoutContinuousProductionStart"; + recipeId: string; + timestamp: number; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutProduction.d.ts b/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutProduction.d.ts new file mode 100644 index 0000000..ce878be --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutPutItemInRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutPutItemInRequestData.d.ts new file mode 100644 index 0000000..8326c55 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutScavCase.d.ts b/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutScavCase.d.ts new file mode 100644 index 0000000..25abcf3 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutScavCaseStartRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutScavCaseStartRequestData.d.ts new file mode 100644 index 0000000..72fda86 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutSettingsBase.d.ts b/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutSettingsBase.d.ts new file mode 100644 index 0000000..8e45939 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutSingleProductionStartRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutSingleProductionStartRequestData.d.ts new file mode 100644 index 0000000..1ed542a --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutTakeItemOutRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutTakeItemOutRequestData.d.ts new file mode 100644 index 0000000..83a740a --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutTakeProductionRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutTakeProductionRequestData.d.ts new file mode 100644 index 0000000..a6847ef --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutTakeProductionRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IHideoutTakeProductionRequestData { + Action: "HideoutTakeProduction"; + recipeId: string; + timestamp: number; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutToggleAreaRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutToggleAreaRequestData.d.ts new file mode 100644 index 0000000..cdea513 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutUpgradeCompleteRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutUpgradeCompleteRequestData.d.ts new file mode 100644 index 0000000..545311e --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutUpgradeCompleteRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IHideoutUpgradeCompleteRequestData { + Action: "HideoutUpgradeComplete"; + areaType: number; + timestamp: number; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutUpgradeRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/hideout/IHideoutUpgradeRequestData.d.ts new file mode 100644 index 0000000..dfbfdca --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/httpResponse/IGetBodyResponseData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/httpResponse/IGetBodyResponseData.d.ts new file mode 100644 index 0000000..b5dc5c1 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/httpResponse/IGetBodyResponseData.d.ts @@ -0,0 +1,5 @@ +export interface IGetBodyResponseData { + err: number; + errmsg: any; + (data: Type): Type; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/httpResponse/INullResponseData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/httpResponse/INullResponseData.d.ts new file mode 100644 index 0000000..a3ae838 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/httpResponse/INullResponseData.d.ts @@ -0,0 +1,5 @@ +export interface INullResponseData { + err: number; + errmsg: any; + data: null; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/inRaid/IRegisterPlayerRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inRaid/IRegisterPlayerRequestData.d.ts new file mode 100644 index 0000000..e2d9cf1 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/inRaid/IRegisterPlayerRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IRegisterPlayerRequestData { + crc: number; + locationId: string; + variantId: number; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/inRaid/ISaveProgressRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inRaid/ISaveProgressRequestData.d.ts new file mode 100644 index 0000000..6930261 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/insurance/IGetInsuranceCostRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/insurance/IGetInsuranceCostRequestData.d.ts new file mode 100644 index 0000000..0e32e96 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/insurance/IGetInsuranceCostRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IGetInsuranceCostRequestData { + traders: string[]; + items: string[]; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/insurance/IInsureRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/insurance/IInsureRequestData.d.ts new file mode 100644 index 0000000..f657bb7 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/inventory/IAddItemRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inventory/IAddItemRequestData.d.ts new file mode 100644 index 0000000..53db97a --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/inventory/IAddItemRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IAddItemRequestData { + tid: string; + items: any[]; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryAddRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryAddRequestData.d.ts new file mode 100644 index 0000000..462e0de --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryBaseActionRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryBaseActionRequestData.d.ts new file mode 100644 index 0000000..b45e459 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryBindRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryBindRequestData.d.ts new file mode 100644 index 0000000..ff35066 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryCreateMarkerRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryCreateMarkerRequestData.d.ts new file mode 100644 index 0000000..1e1ecef --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryDeleteMarkerRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryDeleteMarkerRequestData.d.ts new file mode 100644 index 0000000..0657e1b --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryEditMarkerRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryEditMarkerRequestData.d.ts new file mode 100644 index 0000000..e2857e1 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryExamineRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryExamineRequestData.d.ts new file mode 100644 index 0000000..614711f --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryFoldRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryFoldRequestData.d.ts new file mode 100644 index 0000000..a5fb2a1 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryMergeRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryMergeRequestData.d.ts new file mode 100644 index 0000000..3fcfa35 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryMoveRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryMoveRequestData.d.ts new file mode 100644 index 0000000..b767908 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryReadEncyclopediaRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryReadEncyclopediaRequestData.d.ts new file mode 100644 index 0000000..5487b20 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryRemoveRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryRemoveRequestData.d.ts new file mode 100644 index 0000000..07d1a52 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventorySortRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventorySortRequestData.d.ts new file mode 100644 index 0000000..a0b7928 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventorySplitRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventorySplitRequestData.d.ts new file mode 100644 index 0000000..730ae71 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventorySwapRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventorySwapRequestData.d.ts new file mode 100644 index 0000000..1b0464d --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryTagRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryTagRequestData.d.ts new file mode 100644 index 0000000..f021661 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryToggleRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryToggleRequestData.d.ts new file mode 100644 index 0000000..0955440 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryTransferRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/inventory/IInventoryTransferRequestData.d.ts new file mode 100644 index 0000000..cf4391b --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/itemEvent/IEmptyItemEventRouterResponse.d.ts b/Ereshkigal-AkiConfig/types/models/eft/itemEvent/IEmptyItemEventRouterResponse.d.ts new file mode 100644 index 0000000..689fe75 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/itemEvent/IEmptyItemEventRouterResponse.d.ts @@ -0,0 +1,4 @@ +import { IItemEventRouterBase } from "./IItemEventRouterBase"; +export interface IEmptyItemEventRouterResponse extends IItemEventRouterBase { + profileChanges: ""; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/itemEvent/IItemEventRouterBase.d.ts b/Ereshkigal-AkiConfig/types/models/eft/itemEvent/IItemEventRouterBase.d.ts new file mode 100644 index 0000000..31e62fe --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/itemEvent/IItemEventRouterRequest.d.ts b/Ereshkigal-AkiConfig/types/models/eft/itemEvent/IItemEventRouterRequest.d.ts new file mode 100644 index 0000000..515b49a --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/itemEvent/IItemEventRouterResponse.d.ts b/Ereshkigal-AkiConfig/types/models/eft/itemEvent/IItemEventRouterResponse.d.ts new file mode 100644 index 0000000..72a9b5b --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/itemEvent/IItemEventRouterResponse.d.ts @@ -0,0 +1,3 @@ +import { IItemEventRouterBase } from "./IItemEventRouterBase"; +export interface IItemEventRouterResponse extends IItemEventRouterBase { +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/launcher/IChangeRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/launcher/IChangeRequestData.d.ts new file mode 100644 index 0000000..f0a7838 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/launcher/IGetMiniProfileRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/launcher/IGetMiniProfileRequestData.d.ts new file mode 100644 index 0000000..a14c7c9 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/launcher/IGetMiniProfileRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IGetMiniProfileRequestData { + username: string; + password: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/launcher/ILoginRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/launcher/ILoginRequestData.d.ts new file mode 100644 index 0000000..e965813 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/launcher/ILoginRequestData.d.ts @@ -0,0 +1,4 @@ +export interface ILoginRequestData { + username: string; + password: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/launcher/IMiniProfile.d.ts b/Ereshkigal-AkiConfig/types/models/eft/launcher/IMiniProfile.d.ts new file mode 100644 index 0000000..c12661a --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/launcher/IRegisterData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/launcher/IRegisterData.d.ts new file mode 100644 index 0000000..61a8bbe --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/launcher/IRemoveProfileData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/launcher/IRemoveProfileData.d.ts new file mode 100644 index 0000000..d31c9ac --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/launcher/IRemoveProfileData.d.ts @@ -0,0 +1,2 @@ +import { ILoginRequestData } from "./ILoginRequestData"; +export declare type IRemoveProfileData = ILoginRequestData; diff --git a/Ereshkigal-AkiConfig/types/models/eft/location/IGetLocationRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/location/IGetLocationRequestData.d.ts new file mode 100644 index 0000000..04e84d9 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/location/IGetLocationRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IGetLocationRequestData { + crc: number; + locationId: string; + variantId: number; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/match/IEndOfflineRaidRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/match/IEndOfflineRaidRequestData.d.ts new file mode 100644 index 0000000..811e9a2 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/match/IGetProfileRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/match/IGetProfileRequestData.d.ts new file mode 100644 index 0000000..86b5bbd --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/match/IGetProfileRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetProfileRequestData { + profileId: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/match/IStartOffineRaidRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/match/IStartOffineRaidRequestData.d.ts new file mode 100644 index 0000000..84bccc8 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/notes/INoteActionData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/notes/INoteActionData.d.ts new file mode 100644 index 0000000..610657f --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/notifier/INotifier.d.ts b/Ereshkigal-AkiConfig/types/models/eft/notifier/INotifier.d.ts new file mode 100644 index 0000000..8c48260 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/notifier/ISelectProfileRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/notifier/ISelectProfileRequestData.d.ts new file mode 100644 index 0000000..2bc3d1e --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/notifier/ISelectProfileRequestData.d.ts @@ -0,0 +1,3 @@ +export interface ISelectProfileRequestData { + uid: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/player/IPlayerIncrementSkillLevelRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/player/IPlayerIncrementSkillLevelRequestData.d.ts new file mode 100644 index 0000000..dcd14a2 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts new file mode 100644 index 0000000..99c61f1 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/profile/IAkiProfile.d.ts b/Ereshkigal-AkiConfig/types/models/eft/profile/IAkiProfile.d.ts new file mode 100644 index 0000000..80dd02d --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/profile/IAkiProfile.d.ts @@ -0,0 +1,163 @@ +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 { +} +export interface RightArm { +} +export interface LeftLeg { +} +export interface RightLeg { +} +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/Ereshkigal-AkiConfig/types/models/eft/profile/IProfileChangeNicknameRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/profile/IProfileChangeNicknameRequestData.d.ts new file mode 100644 index 0000000..4a61196 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/profile/IProfileChangeNicknameRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IProfileChangeNicknameRequestData { + nickname: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/profile/IProfileChangeVoiceRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/profile/IProfileChangeVoiceRequestData.d.ts new file mode 100644 index 0000000..91058ce --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/profile/IProfileChangeVoiceRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IProfileChangeVoiceRequestData { + voice: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/profile/IProfileCreateRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/profile/IProfileCreateRequestData.d.ts new file mode 100644 index 0000000..93cc656 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/profile/ISearchFriendRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/profile/ISearchFriendRequestData.d.ts new file mode 100644 index 0000000..e63e386 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/profile/ISearchFriendRequestData.d.ts @@ -0,0 +1,3 @@ +export interface ISearchFriendRequestData { + nickname: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/profile/ISearchFriendResponse.d.ts b/Ereshkigal-AkiConfig/types/models/eft/profile/ISearchFriendResponse.d.ts new file mode 100644 index 0000000..96d88b2 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/profile/IValidateNicknameRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/profile/IValidateNicknameRequestData.d.ts new file mode 100644 index 0000000..9cca7e7 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/profile/IValidateNicknameRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IValidateNicknameRequestData { + nickname: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/quests/IAcceptQuestRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/quests/IAcceptQuestRequestData.d.ts new file mode 100644 index 0000000..0e4821a --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/quests/IAcceptQuestRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IAcceptQuestRequestData { + Action: "QuestAccept"; + qid: string; + type: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/quests/ICompleteQuestRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/quests/ICompleteQuestRequestData.d.ts new file mode 100644 index 0000000..cc67404 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/quests/ICompleteQuestRequestData.d.ts @@ -0,0 +1,5 @@ +export interface ICompleteQuestRequestData { + Action: string; + qid: string; + removeExcessItems: boolean; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/quests/IHandoverQuestRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/quests/IHandoverQuestRequestData.d.ts new file mode 100644 index 0000000..63f10a8 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/quests/IListQuestsRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/quests/IListQuestsRequestData.d.ts new file mode 100644 index 0000000..91f0b8c --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/quests/IListQuestsRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IListQuestsRequestData { + completed: boolean; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/quests/IRepeatableQuestChangeRequest.d.ts b/Ereshkigal-AkiConfig/types/models/eft/quests/IRepeatableQuestChangeRequest.d.ts new file mode 100644 index 0000000..015f58e --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/quests/IRepeatableQuestChangeRequest.d.ts @@ -0,0 +1,4 @@ +export interface IRepeatableQuestChangeRequest { + Action: "RepeatableQuestChange"; + qid: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/ragfair/IAddOfferRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/ragfair/IAddOfferRequestData.d.ts new file mode 100644 index 0000000..465ee02 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/ragfair/IExtendOfferRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/ragfair/IExtendOfferRequestData.d.ts new file mode 100644 index 0000000..2a4a876 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/ragfair/IExtendOfferRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IExtendOfferRequestData { + offerId: string; + renewalTime: number; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/ragfair/IGetItemPriceResult.d.ts b/Ereshkigal-AkiConfig/types/models/eft/ragfair/IGetItemPriceResult.d.ts new file mode 100644 index 0000000..676322a --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/ragfair/IGetItemPriceResult.d.ts @@ -0,0 +1,5 @@ +export interface IGetItemPriceResult { + avg: number; + min: number; + max: number; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/ragfair/IGetMarketPriceRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/ragfair/IGetMarketPriceRequestData.d.ts new file mode 100644 index 0000000..00f8f17 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/ragfair/IGetMarketPriceRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetMarketPriceRequestData { + templateId: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/ragfair/IGetOffersResult.d.ts b/Ereshkigal-AkiConfig/types/models/eft/ragfair/IGetOffersResult.d.ts new file mode 100644 index 0000000..1c11422 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/ragfair/IRagfairOffer.d.ts b/Ereshkigal-AkiConfig/types/models/eft/ragfair/IRagfairOffer.d.ts new file mode 100644 index 0000000..63f655e --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/ragfair/IRemoveOfferRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/ragfair/IRemoveOfferRequestData.d.ts new file mode 100644 index 0000000..d926615 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/ragfair/IRemoveOfferRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IRemoveOfferRequestData { + Action: string; + offerId: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/ragfair/ISearchRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/ragfair/ISearchRequestData.d.ts new file mode 100644 index 0000000..08e7fd3 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/repair/IBaseRepairActionDataRequest.d.ts b/Ereshkigal-AkiConfig/types/models/eft/repair/IBaseRepairActionDataRequest.d.ts new file mode 100644 index 0000000..e645fb3 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/repair/IBaseRepairActionDataRequest.d.ts @@ -0,0 +1,3 @@ +export interface IBaseRepairActionDataRequest { + Action: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/repair/IRepairActionDataRequest.d.ts b/Ereshkigal-AkiConfig/types/models/eft/repair/IRepairActionDataRequest.d.ts new file mode 100644 index 0000000..263d400 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/repair/ITraderRepairActionDataRequest.d.ts b/Ereshkigal-AkiConfig/types/models/eft/repair/ITraderRepairActionDataRequest.d.ts new file mode 100644 index 0000000..e3d469d --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/trade/IProcessBaseTradeRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/trade/IProcessBaseTradeRequestData.d.ts new file mode 100644 index 0000000..a9ef757 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/trade/IProcessBaseTradeRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IProcessBaseTradeRequestData { + Action: string; + type: string; + tid: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/eft/trade/IProcessBuyTradeRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/trade/IProcessBuyTradeRequestData.d.ts new file mode 100644 index 0000000..a9e4c17 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/trade/IProcessRagfairTradeRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/trade/IProcessRagfairTradeRequestData.d.ts new file mode 100644 index 0000000..889dfd1 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/trade/IProcessSellTradeRequestData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/trade/IProcessSellTradeRequestData.d.ts new file mode 100644 index 0000000..f1d555f --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/weather/IWeatherData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/weather/IWeatherData.d.ts new file mode 100644 index 0000000..ecc96ce --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/eft/wishlist/IWishlistActionData.d.ts b/Ereshkigal-AkiConfig/types/models/eft/wishlist/IWishlistActionData.d.ts new file mode 100644 index 0000000..9217864 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/eft/wishlist/IWishlistActionData.d.ts @@ -0,0 +1,4 @@ +export interface IWishlistActionData { + Action: string; + templateId: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/enums/BaseClasses.d.ts b/Ereshkigal-AkiConfig/types/models/enums/BaseClasses.d.ts new file mode 100644 index 0000000..e733bca --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/enums/ConfigTypes.d.ts b/Ereshkigal-AkiConfig/types/models/enums/ConfigTypes.d.ts new file mode 100644 index 0000000..6bd31e8 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/enums/ConfigTypes.d.ts @@ -0,0 +1,18 @@ +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", + LOCATION = "aki-location", + MATCH = "aki-match", + QUEST = "aki-quest", + RAGFAIR = "aki-ragfair", + REPAIR = "aki-repair", + TRADER = "aki-trader", + WEATHER = "aki-weather" +} diff --git a/Ereshkigal-AkiConfig/types/models/enums/ELocationName.d.ts b/Ereshkigal-AkiConfig/types/models/enums/ELocationName.d.ts new file mode 100644 index 0000000..b56cc08 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/enums/EquipmentSlots.d.ts b/Ereshkigal-AkiConfig/types/models/enums/EquipmentSlots.d.ts new file mode 100644 index 0000000..35c18ff --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/enums/HideoutAreas.d.ts b/Ereshkigal-AkiConfig/types/models/enums/HideoutAreas.d.ts new file mode 100644 index 0000000..b44a20a --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/enums/MemberCategory.d.ts b/Ereshkigal-AkiConfig/types/models/enums/MemberCategory.d.ts new file mode 100644 index 0000000..3bd9a21 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/enums/MessageType.d.ts b/Ereshkigal-AkiConfig/types/models/enums/MessageType.d.ts new file mode 100644 index 0000000..1b0c649 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/enums/Money.d.ts b/Ereshkigal-AkiConfig/types/models/enums/Money.d.ts new file mode 100644 index 0000000..0d39613 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/enums/Money.d.ts @@ -0,0 +1,5 @@ +export declare enum Money { + ROUBLES = "5449016a4bdc2d6f028b456f", + EUROS = "569668774bdc2da2298b4568", + DOLLARS = "5696686a4bdc2da3298b456a" +} diff --git a/Ereshkigal-AkiConfig/types/models/enums/Traders.d.ts b/Ereshkigal-AkiConfig/types/models/enums/Traders.d.ts new file mode 100644 index 0000000..163cd71 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/external/mod.d.ts b/Ereshkigal-AkiConfig/types/models/external/mod.d.ts new file mode 100644 index 0000000..ecef460 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/external/tsyringe.d.ts b/Ereshkigal-AkiConfig/types/models/external/tsyringe.d.ts new file mode 100644 index 0000000..56a7e58 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/external/tsyringe.d.ts @@ -0,0 +1,2 @@ +import type { DependencyContainer } from "tsyringe"; +export type { DependencyContainer }; diff --git a/Ereshkigal-AkiConfig/types/models/spt/bindings/Route.d.ts b/Ereshkigal-AkiConfig/types/models/spt/bindings/Route.d.ts new file mode 100644 index 0000000..1b29d7d --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/spt/bindings/Route.d.ts @@ -0,0 +1,3 @@ +export interface IRoute { + aki: any; +} diff --git a/Ereshkigal-AkiConfig/types/models/spt/callbacks/IBotCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IBotCallbacks.d.ts new file mode 100644 index 0000000..2c42813 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IBundleCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IBundleCallbacks.d.ts new file mode 100644 index 0000000..7e37c6e --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/ICustomizationCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/ICustomizationCallbacks.d.ts new file mode 100644 index 0000000..d10027f --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IDataCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IDataCallbacks.d.ts new file mode 100644 index 0000000..a098560 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IDialogueCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IDialogueCallbacks.d.ts new file mode 100644 index 0000000..fe2115a --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IGameCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IGameCallbacks.d.ts new file mode 100644 index 0000000..38ebc5f --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IHandbookCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IHandbookCallbacks.d.ts new file mode 100644 index 0000000..5857a3e --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IHandbookCallbacks.d.ts @@ -0,0 +1,3 @@ +export interface IHandbookCallbacks { + load(): void; +} diff --git a/Ereshkigal-AkiConfig/types/models/spt/callbacks/IHealthCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IHealthCallbacks.d.ts new file mode 100644 index 0000000..d238c7a --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IHideoutCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IHideoutCallbacks.d.ts new file mode 100644 index 0000000..e9badb6 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IHttpCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IHttpCallbacks.d.ts new file mode 100644 index 0000000..3ecd945 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IInraidCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IInraidCallbacks.d.ts new file mode 100644 index 0000000..e959b98 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IInsuranceCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IInsuranceCallbacks.d.ts new file mode 100644 index 0000000..082112d --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IInventoryCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IInventoryCallbacks.d.ts new file mode 100644 index 0000000..e53f7d0 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IItemEventCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IItemEventCallbacks.d.ts new file mode 100644 index 0000000..59db771 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/ILauncherCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/ILauncherCallbacks.d.ts new file mode 100644 index 0000000..52dfec6 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/ILocationCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/ILocationCallbacks.d.ts new file mode 100644 index 0000000..71656a4 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IMatchCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IMatchCallbacks.d.ts new file mode 100644 index 0000000..fcbf173 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IModCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IModCallbacks.d.ts new file mode 100644 index 0000000..1a4cd7b --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/INoteCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/INoteCallbacks.d.ts new file mode 100644 index 0000000..8453a4f --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/INotifierCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/INotifierCallbacks.d.ts new file mode 100644 index 0000000..a211310 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IPresetBuildCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IPresetBuildCallbacks.d.ts new file mode 100644 index 0000000..97c6487 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IPresetCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IPresetCallbacks.d.ts new file mode 100644 index 0000000..4169857 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IPresetCallbacks.d.ts @@ -0,0 +1,3 @@ +export interface IPresetCallbacks { + load(): void; +} diff --git a/Ereshkigal-AkiConfig/types/models/spt/callbacks/IProfileCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IProfileCallbacks.d.ts new file mode 100644 index 0000000..9d4d2df --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IQuestCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IQuestCallbacks.d.ts new file mode 100644 index 0000000..1c4d0c3 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IRagfairCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IRagfairCallbacks.d.ts new file mode 100644 index 0000000..9282bd4 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IRepairCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IRepairCallbacks.d.ts new file mode 100644 index 0000000..e8183c9 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/ISaveCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/ISaveCallbacks.d.ts new file mode 100644 index 0000000..1ad3b82 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/spt/callbacks/ISaveCallbacks.d.ts @@ -0,0 +1,4 @@ +export interface ISaveCallbacks { + load(): void; + update(secondsSinceLastRun: number): boolean; +} diff --git a/Ereshkigal-AkiConfig/types/models/spt/callbacks/ITradeCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/ITradeCallbacks.d.ts new file mode 100644 index 0000000..2f41d54 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/ITraderCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/ITraderCallbacks.d.ts new file mode 100644 index 0000000..e0d7d06 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IWeatherCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IWeatherCallbacks.d.ts new file mode 100644 index 0000000..9ac72ae --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/callbacks/IWishlistCallbacks.d.ts b/Ereshkigal-AkiConfig/types/models/spt/callbacks/IWishlistCallbacks.d.ts new file mode 100644 index 0000000..e5d519c --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/config/IAirdropConfig.d.ts b/Ereshkigal-AkiConfig/types/models/spt/config/IAirdropConfig.d.ts new file mode 100644 index 0000000..f4aee89 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/config/IBaseConfig.d.ts b/Ereshkigal-AkiConfig/types/models/spt/config/IBaseConfig.d.ts new file mode 100644 index 0000000..8b6ba88 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/spt/config/IBaseConfig.d.ts @@ -0,0 +1,3 @@ +export interface IBaseConfig { + kind: string; +} diff --git a/Ereshkigal-AkiConfig/types/models/spt/config/IBotConfig.d.ts b/Ereshkigal-AkiConfig/types/models/spt/config/IBotConfig.d.ts new file mode 100644 index 0000000..f8ea940 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/spt/config/IBotConfig.d.ts @@ -0,0 +1,112 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IBotConfig extends IBaseConfig { + kind: "aki-bot"; + presetBatch: PresetBatch; + bosses: string[]; + durability: Durability; + lootNValue: LootNvalue; + 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; +} +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/Ereshkigal-AkiConfig/types/models/spt/config/ICoreConfig.d.ts b/Ereshkigal-AkiConfig/types/models/spt/config/ICoreConfig.d.ts new file mode 100644 index 0000000..cfcaf61 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/config/IHealthConfig.d.ts b/Ereshkigal-AkiConfig/types/models/spt/config/IHealthConfig.d.ts new file mode 100644 index 0000000..fdbf656 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/config/IHideoutConfig.d.ts b/Ereshkigal-AkiConfig/types/models/spt/config/IHideoutConfig.d.ts new file mode 100644 index 0000000..4658fa6 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/config/IHttpConfig.d.ts b/Ereshkigal-AkiConfig/types/models/spt/config/IHttpConfig.d.ts new file mode 100644 index 0000000..c41d035 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/config/IInRaidConfig.d.ts b/Ereshkigal-AkiConfig/types/models/spt/config/IInRaidConfig.d.ts new file mode 100644 index 0000000..baaf083 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/config/IInsuranceConfig.d.ts b/Ereshkigal-AkiConfig/types/models/spt/config/IInsuranceConfig.d.ts new file mode 100644 index 0000000..6e9c744 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/config/IInventoryConfig.d.ts b/Ereshkigal-AkiConfig/types/models/spt/config/IInventoryConfig.d.ts new file mode 100644 index 0000000..ffffa41 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/config/ILocationConfig.d.ts b/Ereshkigal-AkiConfig/types/models/spt/config/ILocationConfig.d.ts new file mode 100644 index 0000000..0551d57 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/config/IMatchConfig.d.ts b/Ereshkigal-AkiConfig/types/models/spt/config/IMatchConfig.d.ts new file mode 100644 index 0000000..92c4d77 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/config/IQuestConfig.d.ts b/Ereshkigal-AkiConfig/types/models/spt/config/IQuestConfig.d.ts new file mode 100644 index 0000000..be4a97b --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/config/IRagfairConfig.d.ts b/Ereshkigal-AkiConfig/types/models/spt/config/IRagfairConfig.d.ts new file mode 100644 index 0000000..2d151ca --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/config/IRepairConfig.d.ts b/Ereshkigal-AkiConfig/types/models/spt/config/IRepairConfig.d.ts new file mode 100644 index 0000000..4966eb5 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/config/ITraderConfig.d.ts b/Ereshkigal-AkiConfig/types/models/spt/config/ITraderConfig.d.ts new file mode 100644 index 0000000..dab73e3 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/config/IWeatherConfig.d.ts b/Ereshkigal-AkiConfig/types/models/spt/config/IWeatherConfig.d.ts new file mode 100644 index 0000000..c52cab3 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/controllers/IBotController.d.ts b/Ereshkigal-AkiConfig/types/models/spt/controllers/IBotController.d.ts new file mode 100644 index 0000000..010e208 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/generators/IBotGenerator.d.ts b/Ereshkigal-AkiConfig/types/models/spt/generators/IBotGenerator.d.ts new file mode 100644 index 0000000..f3e8586 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/generators/ILocationGenerator.d.ts b/Ereshkigal-AkiConfig/types/models/spt/generators/ILocationGenerator.d.ts new file mode 100644 index 0000000..530ceca --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/generators/IPMCLootGenerator.d.ts b/Ereshkigal-AkiConfig/types/models/spt/generators/IPMCLootGenerator.d.ts new file mode 100644 index 0000000..a9db89b --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/spt/generators/IPMCLootGenerator.d.ts @@ -0,0 +1,4 @@ +export interface IPMCLootGenerator { + generatePMCPocketLootPool(): string[]; + generatePMCBackpackLootPool(): string[]; +} diff --git a/Ereshkigal-AkiConfig/types/models/spt/generators/IRagfairAssortGenerator.d.ts b/Ereshkigal-AkiConfig/types/models/spt/generators/IRagfairAssortGenerator.d.ts new file mode 100644 index 0000000..6670540 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/generators/IRagfairOfferGenerator.d.ts b/Ereshkigal-AkiConfig/types/models/spt/generators/IRagfairOfferGenerator.d.ts new file mode 100644 index 0000000..30b4be5 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/helpers/Traders.d.ts b/Ereshkigal-AkiConfig/types/models/spt/helpers/Traders.d.ts new file mode 100644 index 0000000..e935d29 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/spt/helpers/Traders.d.ts @@ -0,0 +1,10 @@ +export declare const enum Traders { + PRAPOR = "54cb50c76803fa8b248b4571", + THERAPIST = "54cb57776803fa99248b456e", + FENCE = "579dc571d53a0658a154fbec", + SKIER = "58330581ace78e27b8b10cee", + PEACEKEEPER = "5935c25fb3acc3127c3d8cd9", + MECHANIC = "5a7c2eca46aef81a7ca2145d", + RAGMAN = "5ac3b934156ae10c4430e83c", + JAEGER = "5c0647fdd443bc2504c2d371" +} diff --git a/Ereshkigal-AkiConfig/types/models/spt/mod/IMod.d.ts b/Ereshkigal-AkiConfig/types/models/spt/mod/IMod.d.ts new file mode 100644 index 0000000..e6eec79 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/mod/IModLoader.d.ts b/Ereshkigal-AkiConfig/types/models/spt/mod/IModLoader.d.ts new file mode 100644 index 0000000..5398c9b --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/spt/mod/IModLoader.d.ts @@ -0,0 +1,8 @@ +import { DependencyContainer } from "tsyringe"; +export interface IModLoader { + load(container: DependencyContainer): void; + getBundles(local: boolean): string; + getBundle(key: string, local: boolean): void; + getImportedModsNames(): string[]; + getModPath(mod: string): string; +} diff --git a/Ereshkigal-AkiConfig/types/models/spt/mod/IPackageJsonData.d.ts b/Ereshkigal-AkiConfig/types/models/spt/mod/IPackageJsonData.d.ts new file mode 100644 index 0000000..09472cd --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/spt/mod/IPackageJsonData.d.ts @@ -0,0 +1,11 @@ +export interface IPackageJsonData { + incompatibilities?: string[]; + dependencies?: string[]; + name: string; + author: string; + version: string; + akiVersion: string; + licence: string; + main: string; + contributors: string[]; +} diff --git a/Ereshkigal-AkiConfig/types/models/spt/ragfair/IRagfairServerPrices.d.ts b/Ereshkigal-AkiConfig/types/models/spt/ragfair/IRagfairServerPrices.d.ts new file mode 100644 index 0000000..c7d246a --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/spt/ragfair/IRagfairServerPrices.d.ts @@ -0,0 +1,4 @@ +export interface IRagfairServerPrices { + static: Record; + dynamic: Record; +} diff --git a/Ereshkigal-AkiConfig/types/models/spt/server/IDatabaseTables.d.ts b/Ereshkigal-AkiConfig/types/models/spt/server/IDatabaseTables.d.ts new file mode 100644 index 0000000..dbb71be --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/spt/server/IDatabaseTables.d.ts @@ -0,0 +1,51 @@ +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 { 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: any; + 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/Ereshkigal-AkiConfig/types/models/spt/server/IHttpServer.d.ts b/Ereshkigal-AkiConfig/types/models/spt/server/IHttpServer.d.ts new file mode 100644 index 0000000..50e5c91 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/spt/server/IHttpServer.d.ts @@ -0,0 +1,11 @@ +/// +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/Ereshkigal-AkiConfig/types/models/spt/server/ILocaleBase.d.ts b/Ereshkigal-AkiConfig/types/models/spt/server/ILocaleBase.d.ts new file mode 100644 index 0000000..a20084d --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/spt/server/ILocaleBase.d.ts @@ -0,0 +1,61 @@ +export interface ILocaleBase { + global: ILocaleGlobalBase; + 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/Ereshkigal-AkiConfig/types/models/spt/server/ILocations.d.ts b/Ereshkigal-AkiConfig/types/models/spt/server/ILocations.d.ts new file mode 100644 index 0000000..18f0262 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/server/IServerBase.d.ts b/Ereshkigal-AkiConfig/types/models/spt/server/IServerBase.d.ts new file mode 100644 index 0000000..d033db3 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/spt/server/IServerBase.d.ts @@ -0,0 +1,4 @@ +export interface IServerBase { + ip: string; + port: number; +} diff --git a/Ereshkigal-AkiConfig/types/models/spt/server/ISettingsBase.d.ts b/Ereshkigal-AkiConfig/types/models/spt/server/ISettingsBase.d.ts new file mode 100644 index 0000000..c067cda --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/utils/IAsyncQueue.d.ts b/Ereshkigal-AkiConfig/types/models/spt/utils/IAsyncQueue.d.ts new file mode 100644 index 0000000..2be801a --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/models/spt/utils/ICommand.d.ts b/Ereshkigal-AkiConfig/types/models/spt/utils/ICommand.d.ts new file mode 100644 index 0000000..696bb83 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/spt/utils/ICommand.d.ts @@ -0,0 +1,4 @@ +export interface ICommand { + uuid: string; + cmd: () => Promise; +} diff --git a/Ereshkigal-AkiConfig/types/models/spt/utils/ILogger.d.ts b/Ereshkigal-AkiConfig/types/models/spt/utils/ILogger.d.ts new file mode 100644 index 0000000..c983701 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/spt/utils/ILogger.d.ts @@ -0,0 +1,10 @@ +import { Daum } from "../../eft/itemEvent/IItemEventRouterRequest"; +export interface ILogger { + writeToLogFile(data: string | Daum): void; + log(data: string | Record | Error, color: string): 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/Ereshkigal-AkiConfig/types/models/spt/utils/IUuidGenerator.d.ts b/Ereshkigal-AkiConfig/types/models/spt/utils/IUuidGenerator.d.ts new file mode 100644 index 0000000..3870469 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/models/spt/utils/IUuidGenerator.d.ts @@ -0,0 +1,3 @@ +export interface IUUidGenerator { + generate(): string; +} diff --git a/Ereshkigal-AkiConfig/types/routers/HttpRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/HttpRouter.d.ts new file mode 100644 index 0000000..44edc0b --- /dev/null +++ b/Ereshkigal-AkiConfig/types/routers/HttpRouter.d.ts @@ -0,0 +1,11 @@ +/// +import { IncomingMessage } from "http"; +import { DynamicRouter, StaticRouter } from "../di/Router"; +export declare class HttpRouter { + private staticRouters; + private dynamicRoutes; + constructor(staticRouters: StaticRouter[], dynamicRoutes: DynamicRouter[]); + private groupBy; + getResponse(req: IncomingMessage, info: any, sessionID: string): string; + private handleRoute; +} diff --git a/Ereshkigal-AkiConfig/types/routers/ImageRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/ImageRouter.d.ts new file mode 100644 index 0000000..97e580d --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private vfs; + private 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/Ereshkigal-AkiConfig/types/routers/ItemEventRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/ItemEventRouter.d.ts new file mode 100644 index 0000000..bb20152 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private logger; + private jsonUtil; + private profileHelper; + private itemEventRouters; + constructor(logger: ILogger, jsonUtil: JsonUtil, profileHelper: ProfileHelper, itemEventRouters: ItemEventRouterDefinition[]); + private output; + handleEvents(info: IItemEventRouterRequest, sessionID: string): IItemEventRouterResponse; + getOutput(sessionID: string): IItemEventRouterResponse; + private resetOutput; +} diff --git a/Ereshkigal-AkiConfig/types/routers/dynamic/BotDynamicRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/dynamic/BotDynamicRouter.d.ts new file mode 100644 index 0000000..dd2f68a --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private botCallbacks; + constructor(botCallbacks: BotCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/dynamic/BundleDynamicRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/dynamic/BundleDynamicRouter.d.ts new file mode 100644 index 0000000..be27008 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private bundleCallbacks; + constructor(bundleCallbacks: BundleCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/dynamic/CustomizationDynamicRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/dynamic/CustomizationDynamicRouter.d.ts new file mode 100644 index 0000000..03a5967 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private customizationCallbacks; + constructor(customizationCallbacks: CustomizationCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/dynamic/DataDynamicRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/dynamic/DataDynamicRouter.d.ts new file mode 100644 index 0000000..c30501a --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private dataCallbacks; + constructor(dataCallbacks: DataCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/dynamic/HttpDynamicRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/dynamic/HttpDynamicRouter.d.ts new file mode 100644 index 0000000..b2933e9 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private imageRouter; + constructor(imageRouter: ImageRouter); +} diff --git a/Ereshkigal-AkiConfig/types/routers/dynamic/InraidDynamicRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/dynamic/InraidDynamicRouter.d.ts new file mode 100644 index 0000000..ea4a9ae --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private inraidCallbacks; + constructor(inraidCallbacks: InraidCallbacks); + getTopLevelRoute(): string; +} diff --git a/Ereshkigal-AkiConfig/types/routers/dynamic/LocationDynamicRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/dynamic/LocationDynamicRouter.d.ts new file mode 100644 index 0000000..30741db --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private locationCallbacks; + constructor(locationCallbacks: LocationCallbacks); + getTopLevelRoute(): string; +} diff --git a/Ereshkigal-AkiConfig/types/routers/dynamic/NotifierDynamicRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/dynamic/NotifierDynamicRouter.d.ts new file mode 100644 index 0000000..4786817 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private notifierCallbacks; + constructor(notifierCallbacks: NotifierCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/dynamic/TraderDynamicRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/dynamic/TraderDynamicRouter.d.ts new file mode 100644 index 0000000..a100b4c --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private traderCallbacks; + constructor(traderCallbacks: TraderCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/item_events/CustomizationItemEventRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/item_events/CustomizationItemEventRouter.d.ts new file mode 100644 index 0000000..3025e2c --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private customizationCallbacks; + constructor(customizationCallbacks: CustomizationCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/Ereshkigal-AkiConfig/types/routers/item_events/HealthItemEventRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/item_events/HealthItemEventRouter.d.ts new file mode 100644 index 0000000..bad9af2 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private healthCallbacks; + constructor(healthCallbacks: HealthCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/Ereshkigal-AkiConfig/types/routers/item_events/HideoutItemEventRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/item_events/HideoutItemEventRouter.d.ts new file mode 100644 index 0000000..2cec18b --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private hideoutCallbacks; + constructor(hideoutCallbacks: HideoutCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/Ereshkigal-AkiConfig/types/routers/item_events/InsuranceItemEventRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/item_events/InsuranceItemEventRouter.d.ts new file mode 100644 index 0000000..8efc2c2 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private insuranceCallbacks; + constructor(insuranceCallbacks: InsuranceCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/Ereshkigal-AkiConfig/types/routers/item_events/InventoryItemEventRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/item_events/InventoryItemEventRouter.d.ts new file mode 100644 index 0000000..1d93e7b --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private inventoryCallbacks; + constructor(inventoryCallbacks: InventoryCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/Ereshkigal-AkiConfig/types/routers/item_events/NoteItemEventRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/item_events/NoteItemEventRouter.d.ts new file mode 100644 index 0000000..12af594 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private noteCallbacks; + constructor(noteCallbacks: NoteCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/Ereshkigal-AkiConfig/types/routers/item_events/PresetBuildItemEventRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/item_events/PresetBuildItemEventRouter.d.ts new file mode 100644 index 0000000..7298c52 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private presetBuildCallbacks; + constructor(presetBuildCallbacks: PresetBuildCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/Ereshkigal-AkiConfig/types/routers/item_events/QuestItemEventRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/item_events/QuestItemEventRouter.d.ts new file mode 100644 index 0000000..9944ae9 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/routers/item_events/QuestItemEventRouter.d.ts @@ -0,0 +1,10 @@ +import { IPmcData } from "../../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../../models/eft/itemEvent/IItemEventRouterResponse"; +import { QuestCallbacks } from "../../callbacks/QuestCallbacks"; +import { HandledRoute, ItemEventRouterDefinition } from "../../di/Router"; +export declare class QuestItemEventRouter extends ItemEventRouterDefinition { + private questCallbacks; + constructor(questCallbacks: QuestCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/Ereshkigal-AkiConfig/types/routers/item_events/RagfairItemEventRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/item_events/RagfairItemEventRouter.d.ts new file mode 100644 index 0000000..88e52ba --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private ragfairCallbacks; + constructor(ragfairCallbacks: RagfairCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/Ereshkigal-AkiConfig/types/routers/item_events/RepairItemEventRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/item_events/RepairItemEventRouter.d.ts new file mode 100644 index 0000000..b292ded --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private repairCallbacks; + constructor(repairCallbacks: RepairCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/Ereshkigal-AkiConfig/types/routers/item_events/TradeItemEventRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/item_events/TradeItemEventRouter.d.ts new file mode 100644 index 0000000..1bca2b8 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private tradeCallbacks; + constructor(tradeCallbacks: TradeCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/Ereshkigal-AkiConfig/types/routers/item_events/WishlistItemEventRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/item_events/WishlistItemEventRouter.d.ts new file mode 100644 index 0000000..38831f6 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private wishlistCallbacks; + constructor(wishlistCallbacks: WishlistCallbacks); + getHandledRoutes(): HandledRoute[]; + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} diff --git a/Ereshkigal-AkiConfig/types/routers/save_load/HealthSaveLoadRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/save_load/HealthSaveLoadRouter.d.ts new file mode 100644 index 0000000..114f5b2 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/routers/save_load/InraidSaveLoadRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/save_load/InraidSaveLoadRouter.d.ts new file mode 100644 index 0000000..4c00b40 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/routers/save_load/InsuranceSaveLoadRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/save_load/InsuranceSaveLoadRouter.d.ts new file mode 100644 index 0000000..30ce98e --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/routers/save_load/ProfileSaveLoadRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/save_load/ProfileSaveLoadRouter.d.ts new file mode 100644 index 0000000..16c7619 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/routers/serializers/BundleSerializer.d.ts b/Ereshkigal-AkiConfig/types/routers/serializers/BundleSerializer.d.ts new file mode 100644 index 0000000..7952e9c --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private logger; + private 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/Ereshkigal-AkiConfig/types/routers/serializers/ImageSerializer.d.ts b/Ereshkigal-AkiConfig/types/routers/serializers/ImageSerializer.d.ts new file mode 100644 index 0000000..29340d0 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private imageRouter; + constructor(imageRouter: ImageRouter); + serialize(sessionID: string, req: any, resp: any, body: any, httpServer: IHttpServer): void; + canHandle(route: string): boolean; +} diff --git a/Ereshkigal-AkiConfig/types/routers/serializers/NotifySerializer.d.ts b/Ereshkigal-AkiConfig/types/routers/serializers/NotifySerializer.d.ts new file mode 100644 index 0000000..8be8ac2 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private notifierController; + private 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/Ereshkigal-AkiConfig/types/routers/static/BotStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/BotStaticRouter.d.ts new file mode 100644 index 0000000..d8b0bf4 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private botCallbacks; + constructor(botCallbacks: BotCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/static/BundleStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/BundleStaticRouter.d.ts new file mode 100644 index 0000000..3905b82 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private bundleCallbacks; + constructor(bundleCallbacks: BundleCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/static/CustomizationStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/CustomizationStaticRouter.d.ts new file mode 100644 index 0000000..46c71b8 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private customizationCallbacks; + constructor(customizationCallbacks: CustomizationCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/static/DataStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/DataStaticRouter.d.ts new file mode 100644 index 0000000..a493d3a --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private dataCallbacks; + constructor(dataCallbacks: DataCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/static/DialogStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/DialogStaticRouter.d.ts new file mode 100644 index 0000000..a59fb14 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private dialogueCallbacks; + constructor(dialogueCallbacks: DialogueCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/static/GameStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/GameStaticRouter.d.ts new file mode 100644 index 0000000..988b673 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private gameCallbacks; + constructor(gameCallbacks: GameCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/static/HealthStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/HealthStaticRouter.d.ts new file mode 100644 index 0000000..e644861 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private healthCallbacks; + constructor(healthCallbacks: HealthCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/static/InraidStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/InraidStaticRouter.d.ts new file mode 100644 index 0000000..66ed860 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private inraidCallbacks; + constructor(inraidCallbacks: InraidCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/static/InsuranceStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/InsuranceStaticRouter.d.ts new file mode 100644 index 0000000..8da26b3 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private insuranceCallbacks; + constructor(insuranceCallbacks: InsuranceCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/static/ItemEventStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/ItemEventStaticRouter.d.ts new file mode 100644 index 0000000..08ba6bb --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private itemEventCallbacks; + constructor(itemEventCallbacks: ItemEventCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/static/LauncherStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/LauncherStaticRouter.d.ts new file mode 100644 index 0000000..9d07f78 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private launcherCallbacks; + constructor(launcherCallbacks: LauncherCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/static/LocationStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/LocationStaticRouter.d.ts new file mode 100644 index 0000000..9c5c52e --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private locationCallbacks; + constructor(locationCallbacks: LocationCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/static/MatchStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/MatchStaticRouter.d.ts new file mode 100644 index 0000000..d746381 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private matchCallbacks; + constructor(matchCallbacks: MatchCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/static/NotifierStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/NotifierStaticRouter.d.ts new file mode 100644 index 0000000..1c8566d --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private notifierCallbacks; + constructor(notifierCallbacks: NotifierCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/static/PresetStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/PresetStaticRouter.d.ts new file mode 100644 index 0000000..2272f82 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private presetCallbacks; + constructor(presetCallbacks: PresetBuildCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/static/ProfileStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/ProfileStaticRouter.d.ts new file mode 100644 index 0000000..fd787f1 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private profileCallbacks; + constructor(profileCallbacks: ProfileCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/static/QuestStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/QuestStaticRouter.d.ts new file mode 100644 index 0000000..fda3c23 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private questCallbacks; + constructor(questCallbacks: QuestCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/static/RagfairStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/RagfairStaticRouter.d.ts new file mode 100644 index 0000000..618374f --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private ragfairCallbacks; + constructor(ragfairCallbacks: RagfairCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/static/TraderStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/TraderStaticRouter.d.ts new file mode 100644 index 0000000..18f0629 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private traderCallbacks; + constructor(traderCallbacks: TraderCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/routers/static/WeatherStaticRouter.d.ts b/Ereshkigal-AkiConfig/types/routers/static/WeatherStaticRouter.d.ts new file mode 100644 index 0000000..61b904d --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private weatherCallbacks; + constructor(weatherCallbacks: WeatherCallbacks); +} diff --git a/Ereshkigal-AkiConfig/types/servers/ConfigServer.d.ts b/Ereshkigal-AkiConfig/types/servers/ConfigServer.d.ts new file mode 100644 index 0000000..83af38d --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private logger; + private vfs; + private jsonUtil; + private configs; + constructor(logger: ILogger, vfs: VFS, jsonUtil: JsonUtil); + getConfig(configType: ConfigTypes): T; + getConfigByString(configType: string): T; + initialize(): void; +} diff --git a/Ereshkigal-AkiConfig/types/servers/DatabaseServer.d.ts b/Ereshkigal-AkiConfig/types/servers/DatabaseServer.d.ts new file mode 100644 index 0000000..521bcf9 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/servers/DatabaseServer.d.ts @@ -0,0 +1,6 @@ +import { IDatabaseTables } from "../models/spt/server/IDatabaseTables"; +export declare class DatabaseServer { + private tableData; + getTables(): IDatabaseTables; + setTables(any: any): void; +} diff --git a/Ereshkigal-AkiConfig/types/servers/HttpServer.d.ts b/Ereshkigal-AkiConfig/types/servers/HttpServer.d.ts new file mode 100644 index 0000000..d0db7e4 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/servers/HttpServer.d.ts @@ -0,0 +1,47 @@ +/// +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 { 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 { + private httpRouter; + private logger; + private randomUtil; + private jsonUtil; + private httpResponse; + private databaseServer; + private notifierHelper; + private httpServerHelper; + private serializers; + private 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); + private buffers; + private onReceive; + private onRespond; + private httpConfig; + private webSockets; + private websocketPingHandler; + 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; + private getRandomisedMessage; + wsOnConnection(ws: any, req: any): void; +} diff --git a/Ereshkigal-AkiConfig/types/servers/RagfairServer.d.ts b/Ereshkigal-AkiConfig/types/servers/RagfairServer.d.ts new file mode 100644 index 0000000..cf56d64 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/servers/RagfairServer.d.ts @@ -0,0 +1,30 @@ +import { RagfairOfferGenerator } from "../generators/RagfairOfferGenerator"; +import { IRagfairOffer } from "../models/eft/ragfair/IRagfairOffer"; +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 { + private logger; + private ragfairOfferGenerator; + private ragfairOfferService; + private ragfairCategoriesService; + private ragfairRequiredItemsService; + private configServer; + private ragfairConfig; + 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/Ereshkigal-AkiConfig/types/servers/SaveServer.d.ts b/Ereshkigal-AkiConfig/types/servers/SaveServer.d.ts new file mode 100644 index 0000000..fdf92e4 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private vfs; + private saveLoadRouters; + private jsonUtil; + private hashUtil; + private logger; + private profileFilepath; + private profiles; + private onSave; + private 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/Ereshkigal-AkiConfig/types/services/FenceService.d.ts b/Ereshkigal-AkiConfig/types/services/FenceService.d.ts new file mode 100644 index 0000000..27d14ef --- /dev/null +++ b/Ereshkigal-AkiConfig/types/services/FenceService.d.ts @@ -0,0 +1,38 @@ +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 { 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 { + private logger; + private hashUtil; + private jsonUtil; + private randomUtil; + private databaseServer; + private handbookHelper; + private itemHelper; + private presetHelper; + private configServer; + private fenceAssort; + private traderConfig; + constructor(logger: ILogger, hashUtil: HashUtil, jsonUtil: JsonUtil, randomUtil: RandomUtil, databaseServer: DatabaseServer, handbookHelper: HandbookHelper, itemHelper: ItemHelper, presetHelper: PresetHelper, configServer: ConfigServer); + private setFenceAssort; + getFenceAssorts(): ITraderAssort; + hasExpiredCache(refreshAssort: boolean): boolean; + generateFenceAssortCache(pmcData: IPmcData): void; + /** + * + * @param pmcData Get the fence level the passed in profile has + * @returns FenceLevel + */ + getFenceInfo(pmcData: IPmcData): FenceLevel; + removeFenceOffer(assortIdToRemove: string): void; + updateFenceOffers(pmcData: IPmcData): void; +} diff --git a/Ereshkigal-AkiConfig/types/services/HashCacheService.d.ts b/Ereshkigal-AkiConfig/types/services/HashCacheService.d.ts new file mode 100644 index 0000000..c9b0170 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private vfs; + private hashUtil; + private jsonUtil; + private logger; + private jsonHashes; + private modHashes; + private readonly modCachePath; + 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/Ereshkigal-AkiConfig/types/services/InsuranceService.d.ts b/Ereshkigal-AkiConfig/types/services/InsuranceService.d.ts new file mode 100644 index 0000000..160faba --- /dev/null +++ b/Ereshkigal-AkiConfig/types/services/InsuranceService.d.ts @@ -0,0 +1,41 @@ +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 { 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 { + private logger; + private databaseServer; + private secureContainerHelper; + private randomUtil; + private timeUtil; + private saveServer; + private traderHelper; + private dialogueHelper; + private configServer; + private insured; + private templatesById; + private insuranceConfig; + 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; + private addGearToSend; + getPremium(pmcData: IPmcData, inventoryItem: Item, traderId: string): number; +} diff --git a/Ereshkigal-AkiConfig/types/services/MatchLocationService.d.ts b/Ereshkigal-AkiConfig/types/services/MatchLocationService.d.ts new file mode 100644 index 0000000..f7b7d3b --- /dev/null +++ b/Ereshkigal-AkiConfig/types/services/MatchLocationService.d.ts @@ -0,0 +1,8 @@ +import { TimeUtil } from "../utils/TimeUtil"; +export declare class MatchLocationService { + private timeUtil; + private locations; + constructor(timeUtil: TimeUtil); + createGroup(sessionID: string, info: any): any; + deleteGroup(info: any): void; +} diff --git a/Ereshkigal-AkiConfig/types/services/ModCompilerService.d.ts b/Ereshkigal-AkiConfig/types/services/ModCompilerService.d.ts new file mode 100644 index 0000000..cf7cc21 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/services/ModCompilerService.d.ts @@ -0,0 +1,15 @@ +import { ILogger } from "../models/spt/utils/ILogger"; +import { VFS } from "../utils/VFS"; +import { HashCacheService } from "./HashCacheService"; +export declare class ModCompilerService { + private logger; + private hashCacheService; + private vfs; + constructor(logger: ILogger, hashCacheService: HashCacheService, vfs: VFS); + compileMod(modName: string, modPath: string, modTypeScriptFiles: string[]): Promise; + private compile; + private buildDepth; + private calculateDepth; + private areFilesReady; + private delay; +} diff --git a/Ereshkigal-AkiConfig/types/services/NotificationService.d.ts b/Ereshkigal-AkiConfig/types/services/NotificationService.d.ts new file mode 100644 index 0000000..9c6c143 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/services/NotificationService.d.ts @@ -0,0 +1,21 @@ +import { INotification } from "../models/eft/notifier/INotifier"; +export declare class NotificationService { + private 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/Ereshkigal-AkiConfig/types/services/PaymentService.d.ts b/Ereshkigal-AkiConfig/types/services/PaymentService.d.ts new file mode 100644 index 0000000..0a6c4d6 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/services/PaymentService.d.ts @@ -0,0 +1,48 @@ +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 { 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 { + private logger; + private httpResponse; + private databaseServer; + private handbookHelper; + private traderHelper; + private itemHelper; + private inventoryHelper; + private 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 + */ + private isItemInStash; + addPaymentToOutput(pmcData: IPmcData, currencyTpl: string, amountToPay: number, sessionID: string, output: IItemEventRouterResponse): IItemEventRouterResponse; +} diff --git a/Ereshkigal-AkiConfig/types/services/PlayerService.d.ts b/Ereshkigal-AkiConfig/types/services/PlayerService.d.ts new file mode 100644 index 0000000..99e5986 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private logger; + private 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/Ereshkigal-AkiConfig/types/services/RagfairCategoriesService.d.ts b/Ereshkigal-AkiConfig/types/services/RagfairCategoriesService.d.ts new file mode 100644 index 0000000..fb9efa2 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/services/RagfairCategoriesService.d.ts @@ -0,0 +1,10 @@ +import { IRagfairOffer } from "../models/eft/ragfair/IRagfairOffer"; +export declare class RagfairCategoriesService { + updateCategories(offers: IRagfairOffer[]): void; + private categories; + getCategories(): Record; + getCategoryByItemId(itemId: string): number; + resetCategories(): void; + setCategoryValue(itemId: string, newValue: number): void; + incrementCategory(itemId: string): void; +} diff --git a/Ereshkigal-AkiConfig/types/services/RagfairLinkedItemService.d.ts b/Ereshkigal-AkiConfig/types/services/RagfairLinkedItemService.d.ts new file mode 100644 index 0000000..3dbcf6f --- /dev/null +++ b/Ereshkigal-AkiConfig/types/services/RagfairLinkedItemService.d.ts @@ -0,0 +1,9 @@ +import { DatabaseServer } from "../servers/DatabaseServer"; +export declare class RagfairLinkedItemService { + private databaseServer; + private linkedItemsCache; + constructor(databaseServer: DatabaseServer); + getLinkedItems(linkedSearchId: string): Iterable; + private buildLinkedItemTable; + private getFilters; +} diff --git a/Ereshkigal-AkiConfig/types/services/RagfairOfferService.d.ts b/Ereshkigal-AkiConfig/types/services/RagfairOfferService.d.ts new file mode 100644 index 0000000..9b1bf8d --- /dev/null +++ b/Ereshkigal-AkiConfig/types/services/RagfairOfferService.d.ts @@ -0,0 +1,64 @@ +import { ProfileHelper } from "../helpers/ProfileHelper"; +import { RagfairServerHelper } from "../helpers/RagfairServerHelper"; +import { Item } from "../models/eft/common/tables/IItem"; +import { IRagfairOffer } from "../models/eft/ragfair/IRagfairOffer"; +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 { + private logger; + private timeUtil; + private databaseServer; + private saveServer; + private ragfairServerHelper; + private profileHelper; + private itemEventRouter; + private httpResponse; + private configServer; + private playerOffersLoaded; + private toUpdate; + private expiredOffers; + private offers; + private ragfairConfig; + 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 + */ + private getStaleOffers; + private isStale; + private processStaleOffer; + private returnPlayerOffer; +} diff --git a/Ereshkigal-AkiConfig/types/services/RagfairPriceService.d.ts b/Ereshkigal-AkiConfig/types/services/RagfairPriceService.d.ts new file mode 100644 index 0000000..7cdf854 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/services/RagfairPriceService.d.ts @@ -0,0 +1,30 @@ +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 { 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 { + private handbookHelper; + private databaseServer; + private logger; + private itemHelper; + private presetHelper; + private randomUtil; + private configServer; + private ragfairConfig; + private prices; + 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/Ereshkigal-AkiConfig/types/services/RagfairRequiredItemsService.d.ts b/Ereshkigal-AkiConfig/types/services/RagfairRequiredItemsService.d.ts new file mode 100644 index 0000000..e4582d0 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private logger; + private paymentHelper; + private ragfairOfferService; + private requiredItemsCache; + constructor(logger: ILogger, paymentHelper: PaymentHelper, ragfairOfferService: RagfairOfferService); + getRequiredItems(searchId: string): any; + buildRequiredItemTable(): void; +} diff --git a/Ereshkigal-AkiConfig/types/services/TraderAssortService.d.ts b/Ereshkigal-AkiConfig/types/services/TraderAssortService.d.ts new file mode 100644 index 0000000..ccb9e45 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/services/TraderAssortService.d.ts @@ -0,0 +1,6 @@ +import { ITraderAssort } from "../models/eft/common/tables/ITrader"; +export declare class TraderAssortService { + private pristineTraderAssorts; + getPristineTraderAssort(traderId: string): ITraderAssort; + setPristineTraderAssort(traderId: string, assort: ITraderAssort): void; +} diff --git a/Ereshkigal-AkiConfig/types/services/mod/dynamicRouter/DynamicRouterMod.d.ts b/Ereshkigal-AkiConfig/types/services/mod/dynamicRouter/DynamicRouterMod.d.ts new file mode 100644 index 0000000..abfe237 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/services/mod/dynamicRouter/DynamicRouterModService.d.ts b/Ereshkigal-AkiConfig/types/services/mod/dynamicRouter/DynamicRouterModService.d.ts new file mode 100644 index 0000000..6742fc6 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/services/mod/image/imageRouteService.d.ts b/Ereshkigal-AkiConfig/types/services/mod/image/imageRouteService.d.ts new file mode 100644 index 0000000..854083c --- /dev/null +++ b/Ereshkigal-AkiConfig/types/services/mod/image/imageRouteService.d.ts @@ -0,0 +1,6 @@ +export declare class ImageRouteService { + private routes; + addRoute(urlKey: string, route: string): void; + getByKey(urlKey: string): string; + existsByKey(urlKey: string): boolean; +} diff --git a/Ereshkigal-AkiConfig/types/services/mod/onLoad/OnLoadMod.d.ts b/Ereshkigal-AkiConfig/types/services/mod/onLoad/OnLoadMod.d.ts new file mode 100644 index 0000000..53fb062 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/services/mod/onLoad/OnLoadModService.d.ts b/Ereshkigal-AkiConfig/types/services/mod/onLoad/OnLoadModService.d.ts new file mode 100644 index 0000000..89bad14 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/services/mod/onLoad/OnLoadModService.d.ts @@ -0,0 +1,6 @@ +import { DependencyContainer } from "tsyringe"; +export declare class OnLoadModService { + private container; + constructor(container: DependencyContainer); + registerOnLoad(name: string, onLoad: () => void, getRoute: () => string): void; +} diff --git a/Ereshkigal-AkiConfig/types/services/mod/onUpdate/OnUpdateMod.d.ts b/Ereshkigal-AkiConfig/types/services/mod/onUpdate/OnUpdateMod.d.ts new file mode 100644 index 0000000..ee89043 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/services/mod/onUpdate/OnUpdateModService.d.ts b/Ereshkigal-AkiConfig/types/services/mod/onUpdate/OnUpdateModService.d.ts new file mode 100644 index 0000000..32419f4 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/services/mod/onUpdate/OnUpdateModService.d.ts @@ -0,0 +1,6 @@ +import { DependencyContainer } from "tsyringe"; +export declare class OnUpdateModService { + private container; + constructor(container: DependencyContainer); + registerOnUpdate(name: string, onUpdate: (timeSinceLastRun: number) => boolean, getRoute: () => string): void; +} diff --git a/Ereshkigal-AkiConfig/types/services/mod/staticRouter/StaticRouterMod.d.ts b/Ereshkigal-AkiConfig/types/services/mod/staticRouter/StaticRouterMod.d.ts new file mode 100644 index 0000000..1e62747 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/services/mod/staticRouter/StaticRouterModService.d.ts b/Ereshkigal-AkiConfig/types/services/mod/staticRouter/StaticRouterModService.d.ts new file mode 100644 index 0000000..d4c42aa --- /dev/null +++ b/Ereshkigal-AkiConfig/types/services/mod/staticRouter/StaticRouterModService.d.ts @@ -0,0 +1,7 @@ +import { DependencyContainer } from "tsyringe"; +import { RouteAction } from "../../../di/Router"; +export declare class StaticRouterModService { + private container; + constructor(container: DependencyContainer); + registerStaticRouter(name: string, routes: RouteAction[], topLevelRoute: string): void; +} diff --git a/Ereshkigal-AkiConfig/types/utils/App.d.ts b/Ereshkigal-AkiConfig/types/utils/App.d.ts new file mode 100644 index 0000000..a11f576 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private logger; + private timeUtil; + private onLoadComponents; + private onUpdateComponents; + private onUpdateLastRun; + constructor(logger: ILogger, timeUtil: TimeUtil, onLoadComponents: OnLoad[], onUpdateComponents: OnUpdate[]); + load(): void; + private update; +} diff --git a/Ereshkigal-AkiConfig/types/utils/AyncQueue.d.ts b/Ereshkigal-AkiConfig/types/utils/AyncQueue.d.ts new file mode 100644 index 0000000..a99aa37 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private commandsQueue; + constructor(); + waitFor(command: ICommand): Promise; +} diff --git a/Ereshkigal-AkiConfig/types/utils/DatabaseImporter.d.ts b/Ereshkigal-AkiConfig/types/utils/DatabaseImporter.d.ts new file mode 100644 index 0000000..97dda30 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/utils/DatabaseImporter.d.ts @@ -0,0 +1,18 @@ +import { VFS } from "./VFS"; +import { JsonUtil } from "./JsonUtil"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { ImageRouter } from "../routers/ImageRouter"; +import { OnLoad } from "../di/OnLoad"; +import { ILogger } from "../models/spt/utils/ILogger"; +export declare class DatabaseImporter extends OnLoad { + private logger; + private vfs; + private jsonUtil; + private databaseServer; + private imageRouter; + constructor(logger: ILogger, vfs: VFS, jsonUtil: JsonUtil, databaseServer: DatabaseServer, imageRouter: ImageRouter); + onLoad(): void; + getRoute(): string; + loadRecursive(filepath: string): any; + loadImages(filepath: string): void; +} diff --git a/Ereshkigal-AkiConfig/types/utils/HashUtil.d.ts b/Ereshkigal-AkiConfig/types/utils/HashUtil.d.ts new file mode 100644 index 0000000..cf92b47 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/utils/HashUtil.d.ts @@ -0,0 +1,11 @@ +/// +import crypto from "crypto"; +import { TimeUtil } from "./TimeUtil"; +export declare class HashUtil { + private timeUtil; + constructor(timeUtil: TimeUtil); + generate(): string; + generateMd5ForData(data: string): string; + generateSha1ForData(data: string): string; + generateHashForData(algorithm: string, data: crypto.BinaryLike): string; +} diff --git a/Ereshkigal-AkiConfig/types/utils/HttpResponseUtil.d.ts b/Ereshkigal-AkiConfig/types/utils/HttpResponseUtil.d.ts new file mode 100644 index 0000000..85c28bd --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private jsonUtil; + constructor(jsonUtil: JsonUtil); + private clearString; + 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/Ereshkigal-AkiConfig/types/utils/JsonUtil.d.ts b/Ereshkigal-AkiConfig/types/utils/JsonUtil.d.ts new file mode 100644 index 0000000..20b7448 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private vfs; + private hashUtil; + private logger; + private fileHashes; + 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/Ereshkigal-AkiConfig/types/utils/Logger.d.ts b/Ereshkigal-AkiConfig/types/utils/Logger.d.ts new file mode 100644 index 0000000..9d5b32a --- /dev/null +++ b/Ereshkigal-AkiConfig/types/utils/Logger.d.ts @@ -0,0 +1,25 @@ +/// +import { Daum } from "../models/eft/itemEvent/IItemEventRouterRequest"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { IAsyncQueue } from "../models/spt/utils/IAsyncQueue"; +import { IUUidGenerator } from "../models/spt/utils/IUuidGenerator"; +import fs from "fs"; +export declare class WinstonLogger implements ILogger { + private asyncQueue; + private uuidGenerator; + private showDebugInConsole; + private folderPath; + private file; + private filePath; + private logLevels; + private logger; + 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): Promise; + error(data: string | Record): Promise; + warning(data: string | Record): Promise; + success(data: string | Record): Promise; + info(data: string | Record): Promise; + debug(data: string | Record, onlyShowInConsole?: boolean): Promise; +} diff --git a/Ereshkigal-AkiConfig/types/utils/MathUtil.d.ts b/Ereshkigal-AkiConfig/types/utils/MathUtil.d.ts new file mode 100644 index 0000000..ea5fd69 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/utils/ObjectId.d.ts b/Ereshkigal-AkiConfig/types/utils/ObjectId.d.ts new file mode 100644 index 0000000..b100572 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/utils/ObjectId.d.ts @@ -0,0 +1,14 @@ +/// +import { TimeUtil } from "./TimeUtil"; +export declare class ObjectId { + private timeUtil; + constructor(timeUtil: TimeUtil); + private randomBytes; + private constglobalCounter; + private consttime; + private globalCounter; + private time; + incGlobalCounter(): number; + toHexString(byteArray: string | any[] | Buffer): string; + generate(): string; +} diff --git a/Ereshkigal-AkiConfig/types/utils/RandomUtil.d.ts b/Ereshkigal-AkiConfig/types/utils/RandomUtil.d.ts new file mode 100644 index 0000000..3a3ecb6 --- /dev/null +++ b/Ereshkigal-AkiConfig/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 { + private jsonUtil; + private logger; + 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/Ereshkigal-AkiConfig/types/utils/TimeUtil.d.ts b/Ereshkigal-AkiConfig/types/utils/TimeUtil.d.ts new file mode 100644 index 0000000..9733be9 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/utils/UUidGenerator.d.ts b/Ereshkigal-AkiConfig/types/utils/UUidGenerator.d.ts new file mode 100644 index 0000000..000b719 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/utils/VFS.d.ts b/Ereshkigal-AkiConfig/types/utils/VFS.d.ts new file mode 100644 index 0000000..d567615 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/utils/VFS.d.ts @@ -0,0 +1,54 @@ +/// +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 { + private asyncQueue; + private uuidGenerator; + 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/Ereshkigal-AkiConfig/types/utils/Watermark.d.ts b/Ereshkigal-AkiConfig/types/utils/Watermark.d.ts new file mode 100644 index 0000000..3a8cb3a --- /dev/null +++ b/Ereshkigal-AkiConfig/types/utils/Watermark.d.ts @@ -0,0 +1,29 @@ +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +export declare class WatermarkLocale { + private locales; + getLocale(): string; + getDescription(): string[]; + getWarning(): string[]; + getModding(): string[]; +} +export declare class Watermark { + private logger; + private configServer; + private watermarkLocale?; + private akiConfig; + constructor(logger: ILogger, configServer: ConfigServer, watermarkLocale?: WatermarkLocale); + private text; + private versionLabel; + 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 */ + private textLength; +} diff --git a/Ereshkigal-AkiConfig/types/utils/decorators/Singleton.d.ts b/Ereshkigal-AkiConfig/types/utils/decorators/Singleton.d.ts new file mode 100644 index 0000000..7e89026 --- /dev/null +++ b/Ereshkigal-AkiConfig/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/Ereshkigal-AkiConfig/types/utils/decorators/constructor.d.ts b/Ereshkigal-AkiConfig/types/utils/decorators/constructor.d.ts new file mode 100644 index 0000000..416f354 --- /dev/null +++ b/Ereshkigal-AkiConfig/types/utils/decorators/constructor.d.ts @@ -0,0 +1,4 @@ +declare type constructor = { + new (...args: any[]): T; +}; +export default constructor;