From 047cbb11fd3e98bce4e177516a93a1af2683b95b Mon Sep 17 00:00:00 2001 From: Mangiang Date: Thu, 2 Jun 2022 21:49:11 -0400 Subject: [PATCH 1/3] add trader in progress --- JavaScript/Revingly-FoodDrink-Redux/LICENSE | 31 + JavaScript/Revingly-FoodDrink-Redux/README.md | 2 + .../Revingly-FoodDrink-Redux/db/base.json | 85 ++ .../Revingly-FoodDrink-Redux/package.js | 8 + .../Revingly-FoodDrink-Redux/package.json | 8 + .../res/FoodDrink.jpg | Bin 0 -> 28968 bytes .../Revingly-FoodDrink-Redux/src/config.json | 3 + .../Revingly-FoodDrink-Redux/src/mod.js | 106 ++ TypeScript/11AddTrader/.eslintignore | 9 + TypeScript/11AddTrader/.eslintrc.json | 75 + TypeScript/11AddTrader/README.md | 64 + TypeScript/11AddTrader/config/config.json | 3 + TypeScript/11AddTrader/db/base.json | 85 ++ TypeScript/11AddTrader/mod.code-workspace | 12 + TypeScript/11AddTrader/out/config/config.json | 3 + TypeScript/11AddTrader/out/db/base.json | 85 ++ TypeScript/11AddTrader/out/src/mod.js | 132 ++ TypeScript/11AddTrader/package.json | 25 + TypeScript/11AddTrader/res/cat.png | Bin 0 -> 2010556 bytes TypeScript/11AddTrader/src/mod.ts | 146 ++ TypeScript/11AddTrader/tsconfig.json | 21 + TypeScript/11AddTrader/types/Program.d.ts | 4 + TypeScript/11AddTrader/types/TYPES.d.ts | 3 + TypeScript/11AddTrader/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 | 24 + .../types/controllers/GameController.d.ts | 20 + .../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 + .../11AddTrader/types/di/Container.d.ts | 14 + TypeScript/11AddTrader/types/di/OnLoad.d.ts | 4 + .../11AddTrader/types/di/OnLoadOnUpdate.d.ts | 7 + TypeScript/11AddTrader/types/di/OnUpdate.d.ts | 4 + TypeScript/11AddTrader/types/di/Router.d.ts | 40 + .../11AddTrader/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 | 17 + .../generators/RagfairOfferGenerator.d.ts | 51 + .../types/generators/WeatherGenerator.d.ts | 19 + .../types/helpers/AssortHelper.d.ts | 16 + .../types/helpers/BotGeneratorHelper.d.ts | 60 + .../11AddTrader/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 | 64 + .../types/helpers/HttpServerHelper.d.ts | 12 + .../types/helpers/InRaidHelper.d.ts | 33 + .../types/helpers/InventoryHelper.d.ts | 77 + .../11AddTrader/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 | 39 + .../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 | 31 + .../types/helpers/TraderAssortHelper.d.ts | 23 + .../types/helpers/TraderHelper.d.ts | 35 + .../types/helpers/UtilityHelper.d.ts | 3 + .../types/helpers/WeightedRandomHelper.d.ts | 28 + .../11AddTrader/types/ide/Compiler.d.ts | 1 + .../11AddTrader/types/ide/DebugEntry.d.ts | 1 + .../11AddTrader/types/ide/ReleaseEntry.d.ts | 1 + .../11AddTrader/types/ide/TestEntry.d.ts | 1 + .../types/loaders/BundleLoader.d.ts | 22 + .../types/loaders/DelayedModLoader.d.ts | 21 + .../types/loaders/InitialModLoader.d.ts | 39 + .../eft/bot/IGenerateBotsRequestData.d.ts | 8 + .../models/eft/common/IEmptyRequestData.d.ts | 2 + .../types/models/eft/common/IGlobals.d.ts | 1176 ++++++++++++++ .../types/models/eft/common/ILocation.d.ts | 6 + .../models/eft/common/ILocationBase.d.ts | 198 +++ .../ILocationsSourceDestinationBase.d.ts | 9 + .../types/models/eft/common/ILooseLoot.d.ts | 45 + .../models/eft/common/IMetricsTableData.d.ts | 7 + .../types/models/eft/common/IPmcData.d.ts | 341 +++++ .../request/IBaseInteractionRequestData.d.ts | 9 + .../models/eft/common/tables/IBotBase.d.ts | 101 ++ .../models/eft/common/tables/IBotCore.d.ts | 133 ++ .../models/eft/common/tables/IBotType.d.ts | 176 +++ .../eft/common/tables/ICustomizationItem.d.ts | 33 + .../eft/common/tables/IHandbookBase.d.ts | 16 + .../types/models/eft/common/tables/IItem.d.ts | 108 ++ .../eft/common/tables/ILocationsBase.d.ts | 10 + .../models/eft/common/tables/ILootBase.d.ts | 64 + .../models/eft/common/tables/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 + .../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 + .../11AddTrader/types/models/enums/Money.d.ts | 5 + .../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 | 12 + .../types/models/spt/server/ILocaleBase.d.ts | 61 + .../types/models/spt/server/ILocations.d.ts | 26 + .../types/models/spt/server/IServerBase.d.ts | 4 + .../models/spt/server/ISettingsBase.d.ts | 43 + .../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 + .../11AddTrader/types/routers/HttpRouter.d.ts | 11 + .../types/routers/ImageRouter.d.ts | 14 + .../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 + .../11AddTrader/types/servers/HttpServer.d.ts | 48 + .../types/servers/RagfairServer.d.ts | 46 + .../11AddTrader/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 | 13 + .../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 | 52 + .../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 + TypeScript/11AddTrader/types/utils/App.d.ts | 14 + .../11AddTrader/types/utils/AyncQueue.d.ts | 7 + .../types/utils/DatabaseImporter.d.ts | 18 + .../11AddTrader/types/utils/HashUtil.d.ts | 11 + .../types/utils/HttpResponseUtil.d.ts | 16 + .../11AddTrader/types/utils/JsonUtil.d.ts | 25 + .../11AddTrader/types/utils/Logger.d.ts | 25 + .../11AddTrader/types/utils/MathUtil.d.ts | 53 + .../11AddTrader/types/utils/ObjectId.d.ts | 14 + .../11AddTrader/types/utils/RandomUtil.d.ts | 153 ++ .../11AddTrader/types/utils/TimeUtil.d.ts | 8 + .../types/utils/UUidGenerator.d.ts | 4 + TypeScript/11AddTrader/types/utils/VFS.d.ts | 55 + .../11AddTrader/types/utils/Watermark.d.ts | 28 + .../types/utils/decorators/Singleton.d.ts | 4 + .../types/utils/decorators/constructor.d.ts | 4 + TypeScript/11AddTrader/yarn.lock | 1349 +++++++++++++++++ 445 files changed, 12535 insertions(+) create mode 100644 JavaScript/Revingly-FoodDrink-Redux/LICENSE create mode 100644 JavaScript/Revingly-FoodDrink-Redux/README.md create mode 100644 JavaScript/Revingly-FoodDrink-Redux/db/base.json create mode 100644 JavaScript/Revingly-FoodDrink-Redux/package.js create mode 100644 JavaScript/Revingly-FoodDrink-Redux/package.json create mode 100644 JavaScript/Revingly-FoodDrink-Redux/res/FoodDrink.jpg create mode 100644 JavaScript/Revingly-FoodDrink-Redux/src/config.json create mode 100644 JavaScript/Revingly-FoodDrink-Redux/src/mod.js create mode 100644 TypeScript/11AddTrader/.eslintignore create mode 100644 TypeScript/11AddTrader/.eslintrc.json create mode 100644 TypeScript/11AddTrader/README.md create mode 100644 TypeScript/11AddTrader/config/config.json create mode 100644 TypeScript/11AddTrader/db/base.json create mode 100644 TypeScript/11AddTrader/mod.code-workspace create mode 100644 TypeScript/11AddTrader/out/config/config.json create mode 100644 TypeScript/11AddTrader/out/db/base.json create mode 100644 TypeScript/11AddTrader/out/src/mod.js create mode 100644 TypeScript/11AddTrader/package.json create mode 100644 TypeScript/11AddTrader/res/cat.png create mode 100644 TypeScript/11AddTrader/src/mod.ts create mode 100644 TypeScript/11AddTrader/tsconfig.json create mode 100644 TypeScript/11AddTrader/types/Program.d.ts create mode 100644 TypeScript/11AddTrader/types/TYPES.d.ts create mode 100644 TypeScript/11AddTrader/types/Utils.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/BotCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/BundleCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/CustomizationCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/DataCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/DialogueCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/GameCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/HandbookCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/HealthCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/HideoutCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/HttpCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/InraidCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/InsuranceCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/InventoryCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/ItemEventCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/LauncherCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/LocationCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/MatchCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/ModCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/NoteCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/NotifierCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/PresetBuildCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/PresetCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/ProfileCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/QuestCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/RagfairCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/RepairCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/SaveCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/TradeCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/TraderCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/WeatherCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/callbacks/WishlistCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/BotController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/CustomizationController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/DialogueController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/GameController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/HandbookController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/HealthController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/HideoutController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/InraidController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/InsuranceController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/InventoryController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/LauncherController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/LocationController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/MatchController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/NoteController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/NotifierController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/PresetBuildController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/PresetController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/ProfileController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/QuestController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/RagfairController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/RepairController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/RepeatableQuestController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/TradeController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/TraderController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/WeatherController.d.ts create mode 100644 TypeScript/11AddTrader/types/controllers/WishlistController.d.ts create mode 100644 TypeScript/11AddTrader/types/di/Container.d.ts create mode 100644 TypeScript/11AddTrader/types/di/OnLoad.d.ts create mode 100644 TypeScript/11AddTrader/types/di/OnLoadOnUpdate.d.ts create mode 100644 TypeScript/11AddTrader/types/di/OnUpdate.d.ts create mode 100644 TypeScript/11AddTrader/types/di/Router.d.ts create mode 100644 TypeScript/11AddTrader/types/di/Serializer.d.ts create mode 100644 TypeScript/11AddTrader/types/generators/BotGenerator.d.ts create mode 100644 TypeScript/11AddTrader/types/generators/BotInventoryGenerator.d.ts create mode 100644 TypeScript/11AddTrader/types/generators/BotLootGenerator.d.ts create mode 100644 TypeScript/11AddTrader/types/generators/BotWeaponGenerator.d.ts create mode 100644 TypeScript/11AddTrader/types/generators/LocationGenerator.d.ts create mode 100644 TypeScript/11AddTrader/types/generators/PMCLootGenerator.d.ts create mode 100644 TypeScript/11AddTrader/types/generators/RagfairAssortGenerator.d.ts create mode 100644 TypeScript/11AddTrader/types/generators/RagfairOfferGenerator.d.ts create mode 100644 TypeScript/11AddTrader/types/generators/WeatherGenerator.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/AssortHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/BotGeneratorHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/BotHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/ContainerHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/DialogueHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/DurabilityLimitsHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/ExtendedProfileHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/GameEventHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/HandbookHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/HealthHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/HideoutHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/HttpServerHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/InRaidHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/InventoryHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/ItemHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/NotificationSendHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/NotifierHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/PaymentHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/PresetHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/ProfileHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/QuestConditionHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/QuestHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/RagfairHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/RagfairOfferHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/RagfairSellHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/RagfairServerHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/RagfairSortHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/RagfairTaxHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/RepairHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/SecureContainerHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/TradeHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/TraderAssortHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/TraderHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/UtilityHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/helpers/WeightedRandomHelper.d.ts create mode 100644 TypeScript/11AddTrader/types/ide/Compiler.d.ts create mode 100644 TypeScript/11AddTrader/types/ide/DebugEntry.d.ts create mode 100644 TypeScript/11AddTrader/types/ide/ReleaseEntry.d.ts create mode 100644 TypeScript/11AddTrader/types/ide/TestEntry.d.ts create mode 100644 TypeScript/11AddTrader/types/loaders/BundleLoader.d.ts create mode 100644 TypeScript/11AddTrader/types/loaders/DelayedModLoader.d.ts create mode 100644 TypeScript/11AddTrader/types/loaders/InitialModLoader.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/bot/IGenerateBotsRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/IEmptyRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/IGlobals.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/ILocation.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/ILocationBase.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/ILocationsSourceDestinationBase.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/ILooseLoot.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/IMetricsTableData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/IPmcData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/request/IBaseInteractionRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/tables/IBotBase.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/tables/IBotCore.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/tables/IBotType.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/tables/ICustomizationItem.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/tables/IHandbookBase.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/tables/IItem.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/tables/ILocationsBase.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/tables/ILootBase.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/tables/IQuest.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/tables/IRepeatableQuests.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/tables/ITemplateItem.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/common/tables/ITrader.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/customization/IBuyClothingRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/customization/IWearClothingRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/dialog/IFriendRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/dialog/IGetAllAttachmentsRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/dialog/IGetAllAttachmentsResponse.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/dialog/IGetChatServerListRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/dialog/IGetFriendListDataResponse.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/dialog/IGetMailDialogInfoRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/dialog/IGetMailDialogListRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/dialog/IGetMailDialogViewRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/dialog/IGetMailDialogViewResponseData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/dialog/IPinDialogRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/dialog/IRemoveDialogRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/dialog/ISendMessageRequest.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/dialog/ISetDialogReadRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/game/IGameConfigResponse.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/game/IGameEmptyCrcRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/game/IVersionValidateRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/health/IHealthTreatmentRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/health/IOffraidEatRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/health/IOffraidHealRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/health/ISyncHealthRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/hideout/HideoutUpgradeCompleteRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/hideout/IHideoutArea.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/hideout/IHideoutContinousProductionStartRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/hideout/IHideoutProduction.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/hideout/IHideoutPutItemInRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/hideout/IHideoutScavCase.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/hideout/IHideoutScavCaseStartRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/hideout/IHideoutSettingsBase.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/hideout/IHideoutSingleProductionStartRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/hideout/IHideoutTakeItemOutRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/hideout/IHideoutTakeProductionRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/hideout/IHideoutToggleAreaRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/hideout/IHideoutUpgradeCompleteRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/hideout/IHideoutUpgradeRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/httpResponse/IGetBodyResponseData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/httpResponse/INullResponseData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inRaid/IRegisterPlayerRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inRaid/ISaveProgressRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/insurance/IGetInsuranceCostRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/insurance/IInsureRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inventory/IAddItemRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inventory/IInventoryAddRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inventory/IInventoryBaseActionRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inventory/IInventoryBindRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inventory/IInventoryCreateMarkerRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inventory/IInventoryDeleteMarkerRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inventory/IInventoryEditMarkerRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inventory/IInventoryExamineRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inventory/IInventoryFoldRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inventory/IInventoryMergeRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inventory/IInventoryMoveRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inventory/IInventoryReadEncyclopediaRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inventory/IInventoryRemoveRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inventory/IInventorySortRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inventory/IInventorySplitRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inventory/IInventorySwapRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inventory/IInventoryTagRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inventory/IInventoryToggleRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/inventory/IInventoryTransferRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/itemEvent/IEmptyItemEventRouterResponse.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/itemEvent/IItemEventRouterBase.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/itemEvent/IItemEventRouterRequest.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/itemEvent/IItemEventRouterResponse.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/launcher/IChangeRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/launcher/IGetMiniProfileRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/launcher/ILoginRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/launcher/IMiniProfile.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/launcher/IRegisterData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/launcher/IRemoveProfileData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/location/IGetLocationRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/match/IEndOfflineRaidRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/match/IGetProfileRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/match/IStartOffineRaidRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/notes/INoteActionData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/notifier/INotifier.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/notifier/ISelectProfileRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/player/IPlayerIncrementSkillLevelRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/profile/IAkiProfile.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/profile/IProfileChangeNicknameRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/profile/IProfileChangeVoiceRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/profile/IProfileCreateRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/profile/ISearchFriendRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/profile/ISearchFriendResponse.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/profile/IValidateNicknameRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/quests/IAcceptQuestRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/quests/ICompleteQuestRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/quests/IHandoverQuestRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/quests/IListQuestsRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/quests/IRepeatableQuestChangeRequest.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/ragfair/IAddOfferRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/ragfair/IExtendOfferRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/ragfair/IGetItemPriceResult.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/ragfair/IGetMarketPriceRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/ragfair/IGetOffersResult.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/ragfair/IRagfairOffer.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/ragfair/IRemoveOfferRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/ragfair/ISearchRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/repair/IBaseRepairActionDataRequest.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/repair/IRepairActionDataRequest.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/repair/ITraderRepairActionDataRequest.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/trade/IProcessBaseTradeRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/trade/IProcessBuyTradeRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/trade/IProcessRagfairTradeRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/trade/IProcessSellTradeRequestData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/weather/IWeatherData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/eft/wishlist/IWishlistActionData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/enums/BaseClasses.d.ts create mode 100644 TypeScript/11AddTrader/types/models/enums/ConfigTypes.d.ts create mode 100644 TypeScript/11AddTrader/types/models/enums/ELocationName.d.ts create mode 100644 TypeScript/11AddTrader/types/models/enums/EquipmentSlots.d.ts create mode 100644 TypeScript/11AddTrader/types/models/enums/HideoutAreas.d.ts create mode 100644 TypeScript/11AddTrader/types/models/enums/MemberCategory.d.ts create mode 100644 TypeScript/11AddTrader/types/models/enums/MessageType.d.ts create mode 100644 TypeScript/11AddTrader/types/models/enums/Money.d.ts create mode 100644 TypeScript/11AddTrader/types/models/external/mod.d.ts create mode 100644 TypeScript/11AddTrader/types/models/external/tsyringe.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/bindings/Route.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IBotCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IBundleCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/ICustomizationCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IDataCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IDialogueCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IGameCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IHandbookCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IHealthCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IHideoutCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IHttpCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IInraidCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IInsuranceCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IInventoryCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IItemEventCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/ILauncherCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/ILocationCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IMatchCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IModCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/INoteCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/INotifierCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IPresetBuildCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IPresetCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IProfileCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IQuestCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IRagfairCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IRepairCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/ISaveCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/ITradeCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/ITraderCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IWeatherCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/callbacks/IWishlistCallbacks.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/config/IAirdropConfig.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/config/IBaseConfig.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/config/IBotConfig.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/config/ICoreConfig.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/config/IHealthConfig.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/config/IHideoutConfig.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/config/IHttpConfig.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/config/IInRaidConfig.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/config/IInsuranceConfig.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/config/IInventoryConfig.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/config/ILocationConfig.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/config/IMatchConfig.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/config/IQuestConfig.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/config/IRagfairConfig.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/config/IRepairConfig.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/config/ITraderConfig.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/config/IWeatherConfig.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/controllers/IBotController.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/generators/IBotGenerator.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/generators/ILocationGenerator.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/generators/IPMCLootGenerator.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/generators/IRagfairAssortGenerator.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/generators/IRagfairOfferGenerator.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/helpers/Traders.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/mod/IMod.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/mod/IModLoader.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/mod/IPackageJsonData.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/ragfair/IRagfairServerPrices.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/server/IDatabaseTables.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/server/IHttpServer.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/server/ILocaleBase.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/server/ILocations.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/server/IServerBase.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/server/ISettingsBase.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/utils/IAsyncQueue.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/utils/ICommand.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/utils/ILogger.d.ts create mode 100644 TypeScript/11AddTrader/types/models/spt/utils/IUuidGenerator.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/HttpRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/ImageRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/ItemEventRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/dynamic/BotDynamicRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/dynamic/BundleDynamicRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/dynamic/CustomizationDynamicRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/dynamic/DataDynamicRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/dynamic/HttpDynamicRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/dynamic/InraidDynamicRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/dynamic/LocationDynamicRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/dynamic/NotifierDynamicRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/dynamic/TraderDynamicRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/item_events/CustomizationItemEventRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/item_events/HealthItemEventRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/item_events/HideoutItemEventRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/item_events/InsuranceItemEventRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/item_events/InventoryItemEventRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/item_events/NoteItemEventRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/item_events/PresetBuildItemEventRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/item_events/QuestItemEventRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/item_events/RagfairItemEventRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/item_events/RepairItemEventRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/item_events/TradeItemEventRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/item_events/WishlistItemEventRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/save_load/HealthSaveLoadRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/save_load/InraidSaveLoadRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/save_load/InsuranceSaveLoadRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/save_load/ProfileSaveLoadRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/serializers/BundleSerializer.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/serializers/ImageSerializer.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/serializers/NotifySerializer.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/BotStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/BundleStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/CustomizationStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/DataStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/DialogStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/GameStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/HealthStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/InraidStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/InsuranceStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/ItemEventStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/LauncherStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/LocationStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/MatchStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/NotifierStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/PresetStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/ProfileStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/QuestStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/RagfairStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/TraderStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/routers/static/WeatherStaticRouter.d.ts create mode 100644 TypeScript/11AddTrader/types/servers/ConfigServer.d.ts create mode 100644 TypeScript/11AddTrader/types/servers/DatabaseServer.d.ts create mode 100644 TypeScript/11AddTrader/types/servers/HttpServer.d.ts create mode 100644 TypeScript/11AddTrader/types/servers/RagfairServer.d.ts create mode 100644 TypeScript/11AddTrader/types/servers/SaveServer.d.ts create mode 100644 TypeScript/11AddTrader/types/services/FenceService.d.ts create mode 100644 TypeScript/11AddTrader/types/services/HashCacheService.d.ts create mode 100644 TypeScript/11AddTrader/types/services/InsuranceService.d.ts create mode 100644 TypeScript/11AddTrader/types/services/MatchLocationService.d.ts create mode 100644 TypeScript/11AddTrader/types/services/ModCompilerService.d.ts create mode 100644 TypeScript/11AddTrader/types/services/NotificationService.d.ts create mode 100644 TypeScript/11AddTrader/types/services/PaymentService.d.ts create mode 100644 TypeScript/11AddTrader/types/services/PlayerService.d.ts create mode 100644 TypeScript/11AddTrader/types/services/RagfairCategoriesService.d.ts create mode 100644 TypeScript/11AddTrader/types/services/RagfairLinkedItemService.d.ts create mode 100644 TypeScript/11AddTrader/types/services/RagfairOfferService.d.ts create mode 100644 TypeScript/11AddTrader/types/services/RagfairPriceService.d.ts create mode 100644 TypeScript/11AddTrader/types/services/RagfairRequiredItemsService.d.ts create mode 100644 TypeScript/11AddTrader/types/services/TraderAssortService.d.ts create mode 100644 TypeScript/11AddTrader/types/services/mod/dynamicRouter/DynamicRouterMod.d.ts create mode 100644 TypeScript/11AddTrader/types/services/mod/dynamicRouter/DynamicRouterModService.d.ts create mode 100644 TypeScript/11AddTrader/types/services/mod/image/imageRouteService.d.ts create mode 100644 TypeScript/11AddTrader/types/services/mod/onLoad/OnLoadMod.d.ts create mode 100644 TypeScript/11AddTrader/types/services/mod/onLoad/OnLoadModService.d.ts create mode 100644 TypeScript/11AddTrader/types/services/mod/onUpdate/OnUpdateMod.d.ts create mode 100644 TypeScript/11AddTrader/types/services/mod/onUpdate/OnUpdateModService.d.ts create mode 100644 TypeScript/11AddTrader/types/services/mod/staticRouter/StaticRouterMod.d.ts create mode 100644 TypeScript/11AddTrader/types/services/mod/staticRouter/StaticRouterModService.d.ts create mode 100644 TypeScript/11AddTrader/types/utils/App.d.ts create mode 100644 TypeScript/11AddTrader/types/utils/AyncQueue.d.ts create mode 100644 TypeScript/11AddTrader/types/utils/DatabaseImporter.d.ts create mode 100644 TypeScript/11AddTrader/types/utils/HashUtil.d.ts create mode 100644 TypeScript/11AddTrader/types/utils/HttpResponseUtil.d.ts create mode 100644 TypeScript/11AddTrader/types/utils/JsonUtil.d.ts create mode 100644 TypeScript/11AddTrader/types/utils/Logger.d.ts create mode 100644 TypeScript/11AddTrader/types/utils/MathUtil.d.ts create mode 100644 TypeScript/11AddTrader/types/utils/ObjectId.d.ts create mode 100644 TypeScript/11AddTrader/types/utils/RandomUtil.d.ts create mode 100644 TypeScript/11AddTrader/types/utils/TimeUtil.d.ts create mode 100644 TypeScript/11AddTrader/types/utils/UUidGenerator.d.ts create mode 100644 TypeScript/11AddTrader/types/utils/VFS.d.ts create mode 100644 TypeScript/11AddTrader/types/utils/Watermark.d.ts create mode 100644 TypeScript/11AddTrader/types/utils/decorators/Singleton.d.ts create mode 100644 TypeScript/11AddTrader/types/utils/decorators/constructor.d.ts create mode 100644 TypeScript/11AddTrader/yarn.lock diff --git a/JavaScript/Revingly-FoodDrink-Redux/LICENSE b/JavaScript/Revingly-FoodDrink-Redux/LICENSE new file mode 100644 index 0000000..9eb2465 --- /dev/null +++ b/JavaScript/Revingly-FoodDrink-Redux/LICENSE @@ -0,0 +1,31 @@ +Copyright (c) 2022 Revingly. All rights reserved. + +Developed by: - Wulv + - Revingly + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation files +(the "Software"), to deal with the Software without restriction, +including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, +and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + +* Neither the names of Revingly, Food&Drinks-redux nor the names of its + contributors may be used to endorse or promote products derived from + this Software without specific prior written permission. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH +THE SOFTWARE. \ No newline at end of file diff --git a/JavaScript/Revingly-FoodDrink-Redux/README.md b/JavaScript/Revingly-FoodDrink-Redux/README.md new file mode 100644 index 0000000..0c8873c --- /dev/null +++ b/JavaScript/Revingly-FoodDrink-Redux/README.md @@ -0,0 +1,2 @@ +This file should be placed into user/mods. +File name should be FoodDrink \ No newline at end of file diff --git a/JavaScript/Revingly-FoodDrink-Redux/db/base.json b/JavaScript/Revingly-FoodDrink-Redux/db/base.json new file mode 100644 index 0000000..3522616 --- /dev/null +++ b/JavaScript/Revingly-FoodDrink-Redux/db/base.json @@ -0,0 +1,85 @@ +{ + "_id": "FoodDrink", + "working": true, + "customization_seller": false, + "name": "FoodDrink", + "surname": " ", + "nickname": "FoodDrink", + "location": "Get your food and drinks here ", + "avatar": "/files/trader/avatar/FoodDrink.jpg", + "balance_rub": 5000000, + "balance_dol": 0, + "balance_eur": 0, + "unlockedByDefault": true, + "discount": 0, + "discount_end": 0, + "buyer_up": true, + "currency": "RUB", + "nextResupply": 1615141448, + "repair": { + "availability": false, + "quality": "2", + "excluded_id_list": [], + "excluded_category": [], + "currency": "5449016a4bdc2d6f028b456f", + "currency_coefficient": 1, + "price_rate": 10 + }, + "insurance": { + "availability": false, + "min_payment": 0, + "min_return_hour": 0, + "max_return_hour": 0, + "max_storage_time": 99, + "excluded_category": [] + }, + "gridHeight": 150, + "loyaltyLevels": [ + { + "minLevel": 1, + "minSalesSum": 0, + "minStanding": 0, + "buy_price_coef": 38, + "repair_price_coef": 175, + "insurance_price_coef": 10, + "exchange_price_coef": 0, + "heal_price_coef": 0 + } + ], + "sell_category": [ + "82e7fac0b7495d72d4083356", + "ac705d3440c1407645e33579", + "dc97aee367144dc03389405d", + "7ffcc96aa06c7e90940330c5", + "e8f46e3ad74b9d862121f9dc", + "5b47574386f77428ca22b33e", + "5b47574386f77428ca22b33f", + "5b5f78dc86f77409407a7f8e", + "5b47574386f77428ca22b346", + "5b47574386f77428ca22b340", + "5b47574386f77428ca22b344", + "5b47574386f77428ca22b342", + "5b47574386f77428ca22b341", + "5b47574386f77428ca22b345", + "5b47574386f77428ca22b343", + "5b5f71b386f774093f2ecf11", + "5b5f71c186f77409407a7ec0", + "5b5f71de86f774093f2ecf13", + "5b5f724186f77447ed5636ad", + "5b5f736886f774094242f193", + "5b5f73ec86f774093e6cb4fd", + "5b5f74cc86f77447ec5d770a", + "5b5f750686f774093e6cb503", + "5b5f751486f77447ec5d770c", + "5b5f752e86f774093e6cb505", + "5b5f754a86f774094242f19b", + "5b5f755f86f77447ec5d770e", + "5b5f757486f774093e6cb507", + "5b5f75b986f77447ec5d7710", + "5b5f75c686f774094242f19f", + "5b5f75e486f77447ec5d7712", + "5b5f760586f774093e6cb509", + "5b5f761f86f774094242f1a1", + "5b5f764186f77447ec5d7714" + ] +} diff --git a/JavaScript/Revingly-FoodDrink-Redux/package.js b/JavaScript/Revingly-FoodDrink-Redux/package.js new file mode 100644 index 0000000..d05b420 --- /dev/null +++ b/JavaScript/Revingly-FoodDrink-Redux/package.js @@ -0,0 +1,8 @@ +/** + * authors: - Wulv + * - Revingly +*/ + +const { Mod } = require("./src/mod.js"); + +module.exports.mod = new Mod(); diff --git a/JavaScript/Revingly-FoodDrink-Redux/package.json b/JavaScript/Revingly-FoodDrink-Redux/package.json new file mode 100644 index 0000000..2ae758e --- /dev/null +++ b/JavaScript/Revingly-FoodDrink-Redux/package.json @@ -0,0 +1,8 @@ +{ + "name": "FoodDrink-Redux", + "author": "Revingly", + "version": "2.9.0", + "license": "NCSA", + "main": "package.js", + "akiVersion": "2.3.1" +} \ No newline at end of file diff --git a/JavaScript/Revingly-FoodDrink-Redux/res/FoodDrink.jpg b/JavaScript/Revingly-FoodDrink-Redux/res/FoodDrink.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3e284182ca0b9f684ba6ee7920a6fd70d298a3e7 GIT binary patch literal 28968 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

2;3A@a|SvU037?w3q#oGEquaVwTn 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 literal 0 HcmV?d00001 diff --git a/JavaScript/Revingly-FoodDrink-Redux/src/config.json b/JavaScript/Revingly-FoodDrink-Redux/src/config.json new file mode 100644 index 0000000..056c5a7 --- /dev/null +++ b/JavaScript/Revingly-FoodDrink-Redux/src/config.json @@ -0,0 +1,3 @@ +{ + "original_prices": true +} \ No newline at end of file diff --git a/JavaScript/Revingly-FoodDrink-Redux/src/mod.js b/JavaScript/Revingly-FoodDrink-Redux/src/mod.js new file mode 100644 index 0000000..c0e40f9 --- /dev/null +++ b/JavaScript/Revingly-FoodDrink-Redux/src/mod.js @@ -0,0 +1,106 @@ +/** + * authors: - Wulv + * - Revingly +*/ + +"use strict"; + +class Mod { + constructor() { + this.mod = "Revingly-FoodDrink-Redux"; + this.funcptr = HttpServer.onRespond["IMAGE"]; + + Logger.info(`Loading: ${this.mod}`); + ModLoader.onLoad[this.mod] = this.load.bind(this); + HttpServer.onRespond["IMAGE"] = this.getImage.bind(this); + this.itemsToSell = {}; + } + + getImage(sessionID, req, resp, body) { + const filepath = `${ModLoader.getModPath(this.mod)}res/`; + + if (req.url.includes("/avatar/FoodDrink")) { + HttpServer.sendFile(resp, `${filepath}FoodDrink.jpg`); + return; + } + + this.funcptr(sessionID, req, resp, body); + } + + + + load() { + Logger.info(`Loading: ${this.mod}`); + + const filepath = `${ModLoader.getModPath(this.mod)}db/`; + + DatabaseServer.tables.traders.FoodDrink = { + "assort": this.createFoodAndDrinkAssortTable(), + "base": JsonUtil.deserialize(VFS.readFile(`${filepath}base.json`)) + }; + + let locales = DatabaseServer.tables.locales.global; + + for (const locale in locales) { + locales[locale].trading.FoodDrink = { + "FullName": "Food & Drink", + "FirstName": "Food & Drink", + "Nickname": "Food & Drink", + "Location": "In the food shop", + "Description": "Get your food and drink here!" + }; + } + + DatabaseServer.tables.locales.global = locales; + + // Add refresh time in seconds + const traderRefreshConfig = {"traderId": "FoodDrink","seconds": 3600} + TraderConfig["updateTime"].push(traderRefreshConfig); + } + + createFoodAndDrinkAssortTable() { + const { original_prices } = require('./config.json'); + const FOOD_ID = "5448e8d04bdc2ddf718b4569"; + const WATER_ID = "5448e8d64bdc2dce718b4568"; + const FOOD_CONTAINER_ID = "5c093db286f7740a1b2617e3"; + const SELL_AMOUNT = 10000; + const ROUBLE_ID = "5449016a4bdc2d6f028b456f"; + const items = DatabaseServer.tables.templates.items; + const prices = DatabaseServer.tables.templates.prices; + + return Object + .values(items) + .filter(item => item._parent === FOOD_ID || item._parent === WATER_ID || item._id === FOOD_CONTAINER_ID) + .map(item => { + return { + "_id": HashUtil.generate(), + "_tpl": item._id, + "parentId": "hideout", + "slotId": "hideout", + "upd": { + "UnlimitedCount": true, + "StackObjectsCount": 999999999 + } + } + }) + .reduce((acc, item) => { + acc.items.push(item); + acc.barter_scheme[item._id] = [ + [ + { + "count": original_prices ? prices[item._tpl] : SELL_AMOUNT , + "_tpl": ROUBLE_ID + } + ] + ]; + acc.loyal_level_items[item._id] = 1; + return acc; + }, + { + items: [], barter_scheme: {}, loyal_level_items: {} + } + ); + } +} + +module.exports.Mod = Mod; diff --git a/TypeScript/11AddTrader/.eslintignore b/TypeScript/11AddTrader/.eslintignore new file mode 100644 index 0000000..9922d9a --- /dev/null +++ b/TypeScript/11AddTrader/.eslintignore @@ -0,0 +1,9 @@ +# Exclude these folders from linting +node_modules +dist/ +types/ + +# Exclude these filetypes from linting +*.json +*.txt +*.exe \ No newline at end of file diff --git a/TypeScript/11AddTrader/.eslintrc.json b/TypeScript/11AddTrader/.eslintrc.json new file mode 100644 index 0000000..c505160 --- /dev/null +++ b/TypeScript/11AddTrader/.eslintrc.json @@ -0,0 +1,75 @@ +{ + "root": true, + "parser": "@typescript-eslint/parser", + "plugins": [ + "@typescript-eslint" + ], + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + "@typescript-eslint/no-explicit-any": 0, + "@typescript-eslint/no-unused-vars": 1, + "@typescript-eslint/no-empty-interface": 0, + "@typescript-eslint/no-namespace": 0, + "@typescript-eslint/comma-dangle": 1, + "@typescript-eslint/func-call-spacing": 2, + "@typescript-eslint/quotes": 1, + "@typescript-eslint/brace-style": [ + "warn", + "allman" + ], + "@typescript-eslint/naming-convention": [ + "warn", + { + "selector": "default", + "format": ["camelCase"], + "leadingUnderscore": "allow" + }, + { + "selector": "typeLike", + "format": ["PascalCase"] + }, + { + "selector": "objectLiteralProperty", + "format": ["PascalCase", "camelCase"], + "leadingUnderscore": "allow" + }, + { + "selector": "typeProperty", + "format": ["PascalCase", "camelCase"], + "leadingUnderscore": "allow" + }, + { + "selector": "enumMember", + "format": ["UPPER_CASE"] + } + ], + "@typescript-eslint/indent": [ + "warn", + 4 + ], + "@typescript-eslint/no-unused-expressions": [ + "warn", + { + "allowShortCircuit": false, + "allowTernary": false + } + ], + "@typescript-eslint/keyword-spacing": [ + "warn", + { + "before": true, + "after": true + } + ], + "@typescript-eslint/explicit-module-boundary-types": [ + "warn", + { + "allowArgumentsExplicitlyTypedAsAny": true + } + ] + } +} \ No newline at end of file diff --git a/TypeScript/11AddTrader/README.md b/TypeScript/11AddTrader/README.md new file mode 100644 index 0000000..efc31a4 --- /dev/null +++ b/TypeScript/11AddTrader/README.md @@ -0,0 +1,64 @@ + +This project was created to automate most parts of building and setting up an environment. + +## **NodeJS 14.15.3:** + +The first step would be to install nodejs on your pc, the version you NEED is **14.15.3** + +That version is the one that has been used to test the mod templates and build scripts. + +It can be downloaded from here: https://nodejs.org/download/release/v14.15.3/ + +A system reboot may be needed after install. + +## **IDE:** + +The second step is having an IDE ready. For the currect purpose we've setup a VSCodium workspace file. + +You CAN use Visual Studio Code if you so desire, just keep in mind that our dev tests on the mod files was done using VSCodium. + +You can get VSCodium here: https://vscodium.com/#install + +## **Workspace:** + +Once you have NodeJS and VSCodium ready, open the mod.code-workspace file with VSCodium (File->Open Worspace from File...). + +Once the project loads into VSCodium you will be recommended to install the ESLint plugin. This is HIGHLY recommended. + +## **Environment Setup:** + +There is a task that will automatically setup your environment to use typescript. + +To run it, you just need to go to: + +> Terminal->Run Task...->Show All Tasks...->npm: install + +After running this task, your environment will be ready to start coding. + +DO NOT remove the node_modules folder, this is an auto generated directory that has the required dependencies to be able to use typescript and more. + +## **IMPORTANT:** + +Before starting to work on your mod, we suggest you read about Dependency Injection and Inversion of Control as this is the adopted architecture SPT-AKI has adopted. + +It will be difficult to understand some of the problems you may be having if you dont understand the basics of it. + +A guide explaining all the essentials will be available on the hub on release for you to read about. + +## **Coding:** + +All your work should be centered around the mod.ts file as an entry point. +You can ONLY change the following properties from the package.json file: `"name"`, `"version"`, `"license"`: `"MIT"`, `"author"`, `"akiVersion"`. + +If you have never used typescript before, you can read about it here: https://www.typescriptlang.org/docs/ + +## **Distributing your mod:** + +The project has been set up with an automatic task that will copy and zip ALL required files for your mod to work on SPT-AKI. +To run this task you just need to go to: + +> Terminal->Run Task...->Show All Tasks...->npm: build:zip + +The output will be a mod.zip file that will appear on the root of the project. + +Always verify that all files were included into the zip file. \ No newline at end of file diff --git a/TypeScript/11AddTrader/config/config.json b/TypeScript/11AddTrader/config/config.json new file mode 100644 index 0000000..056c5a7 --- /dev/null +++ b/TypeScript/11AddTrader/config/config.json @@ -0,0 +1,3 @@ +{ + "original_prices": true +} \ No newline at end of file diff --git a/TypeScript/11AddTrader/db/base.json b/TypeScript/11AddTrader/db/base.json new file mode 100644 index 0000000..6a85430 --- /dev/null +++ b/TypeScript/11AddTrader/db/base.json @@ -0,0 +1,85 @@ +{ + "_id": "cat", + "working": true, + "customization_seller": false, + "name": "Cat", + "surname": " ", + "nickname": "Cat", + "location": "Get your food and drinks here ", + "avatar": "/files/trader/avatar/cat", + "balance_rub": 5000000, + "balance_dol": 0, + "balance_eur": 0, + "unlockedByDefault": true, + "discount": 0, + "discount_end": 0, + "buyer_up": true, + "currency": "RUB", + "nextResupply": 1615141448, + "repair": { + "availability": false, + "quality": "2", + "excluded_id_list": [], + "excluded_category": [], + "currency": "5449016a4bdc2d6f028b456f", + "currency_coefficient": 1, + "price_rate": 10 + }, + "insurance": { + "availability": false, + "min_payment": 0, + "min_return_hour": 0, + "max_return_hour": 0, + "max_storage_time": 99, + "excluded_category": [] + }, + "gridHeight": 150, + "loyaltyLevels": [ + { + "minLevel": 1, + "minSalesSum": 0, + "minStanding": 0, + "buy_price_coef": 38, + "repair_price_coef": 175, + "insurance_price_coef": 10, + "exchange_price_coef": 0, + "heal_price_coef": 0 + } + ], + "sell_category": [ + "82e7fac0b7495d72d4083356", + "ac705d3440c1407645e33579", + "dc97aee367144dc03389405d", + "7ffcc96aa06c7e90940330c5", + "e8f46e3ad74b9d862121f9dc", + "5b47574386f77428ca22b33e", + "5b47574386f77428ca22b33f", + "5b5f78dc86f77409407a7f8e", + "5b47574386f77428ca22b346", + "5b47574386f77428ca22b340", + "5b47574386f77428ca22b344", + "5b47574386f77428ca22b342", + "5b47574386f77428ca22b341", + "5b47574386f77428ca22b345", + "5b47574386f77428ca22b343", + "5b5f71b386f774093f2ecf11", + "5b5f71c186f77409407a7ec0", + "5b5f71de86f774093f2ecf13", + "5b5f724186f77447ed5636ad", + "5b5f736886f774094242f193", + "5b5f73ec86f774093e6cb4fd", + "5b5f74cc86f77447ec5d770a", + "5b5f750686f774093e6cb503", + "5b5f751486f77447ec5d770c", + "5b5f752e86f774093e6cb505", + "5b5f754a86f774094242f19b", + "5b5f755f86f77447ec5d770e", + "5b5f757486f774093e6cb507", + "5b5f75b986f77447ec5d7710", + "5b5f75c686f774094242f19f", + "5b5f75e486f77447ec5d7712", + "5b5f760586f774093e6cb509", + "5b5f761f86f774094242f1a1", + "5b5f764186f77447ec5d7714" + ] +} diff --git a/TypeScript/11AddTrader/mod.code-workspace b/TypeScript/11AddTrader/mod.code-workspace new file mode 100644 index 0000000..6732c67 --- /dev/null +++ b/TypeScript/11AddTrader/mod.code-workspace @@ -0,0 +1,12 @@ +{ + "folders": [ + { + "path": "." + } + ], + "extensions": { + "recommendations": [ + "dbaeumer.vscode-eslint" + ] + } +} \ No newline at end of file diff --git a/TypeScript/11AddTrader/out/config/config.json b/TypeScript/11AddTrader/out/config/config.json new file mode 100644 index 0000000..f846653 --- /dev/null +++ b/TypeScript/11AddTrader/out/config/config.json @@ -0,0 +1,3 @@ +{ + "original_prices": true +} diff --git a/TypeScript/11AddTrader/out/db/base.json b/TypeScript/11AddTrader/out/db/base.json new file mode 100644 index 0000000..84487e7 --- /dev/null +++ b/TypeScript/11AddTrader/out/db/base.json @@ -0,0 +1,85 @@ +{ + "_id": "cat", + "working": true, + "customization_seller": false, + "name": "Cat", + "surname": " ", + "nickname": "Cat", + "location": "Get your food and drinks here ", + "avatar": "/files/trader/avatar/cat", + "balance_rub": 5000000, + "balance_dol": 0, + "balance_eur": 0, + "unlockedByDefault": true, + "discount": 0, + "discount_end": 0, + "buyer_up": true, + "currency": "RUB", + "nextResupply": 1615141448, + "repair": { + "availability": false, + "quality": "2", + "excluded_id_list": [], + "excluded_category": [], + "currency": "5449016a4bdc2d6f028b456f", + "currency_coefficient": 1, + "price_rate": 10 + }, + "insurance": { + "availability": false, + "min_payment": 0, + "min_return_hour": 0, + "max_return_hour": 0, + "max_storage_time": 99, + "excluded_category": [] + }, + "gridHeight": 150, + "loyaltyLevels": [ + { + "minLevel": 1, + "minSalesSum": 0, + "minStanding": 0, + "buy_price_coef": 38, + "repair_price_coef": 175, + "insurance_price_coef": 10, + "exchange_price_coef": 0, + "heal_price_coef": 0 + } + ], + "sell_category": [ + "82e7fac0b7495d72d4083356", + "ac705d3440c1407645e33579", + "dc97aee367144dc03389405d", + "7ffcc96aa06c7e90940330c5", + "e8f46e3ad74b9d862121f9dc", + "5b47574386f77428ca22b33e", + "5b47574386f77428ca22b33f", + "5b5f78dc86f77409407a7f8e", + "5b47574386f77428ca22b346", + "5b47574386f77428ca22b340", + "5b47574386f77428ca22b344", + "5b47574386f77428ca22b342", + "5b47574386f77428ca22b341", + "5b47574386f77428ca22b345", + "5b47574386f77428ca22b343", + "5b5f71b386f774093f2ecf11", + "5b5f71c186f77409407a7ec0", + "5b5f71de86f774093f2ecf13", + "5b5f724186f77447ed5636ad", + "5b5f736886f774094242f193", + "5b5f73ec86f774093e6cb4fd", + "5b5f74cc86f77447ec5d770a", + "5b5f750686f774093e6cb503", + "5b5f751486f77447ec5d770c", + "5b5f752e86f774093e6cb505", + "5b5f754a86f774094242f19b", + "5b5f755f86f77447ec5d770e", + "5b5f757486f774093e6cb507", + "5b5f75b986f77447ec5d7710", + "5b5f75c686f774094242f19f", + "5b5f75e486f77447ec5d7712", + "5b5f760586f774093e6cb509", + "5b5f761f86f774094242f1a1", + "5b5f764186f77447ec5d7714" + ] +} diff --git a/TypeScript/11AddTrader/out/src/mod.js b/TypeScript/11AddTrader/out/src/mod.js new file mode 100644 index 0000000..52757e0 --- /dev/null +++ b/TypeScript/11AddTrader/out/src/mod.js @@ -0,0 +1,132 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const config_json_1 = require("../config/config.json"); +const baseJson = __importStar(require("../db/base.json")); +class SampleTrader { + constructor() { + this.mod = "SampleTrader"; + } + // Perform these actions before server fully loads + load(container) { + const logger = container.resolve("WinstonLogger"); + logger.info(`Loading: ${this.mod}`); + this.initialModLoader = container.resolve("InitialModLoader"); + this.hashUtil = container.resolve("HashUtil"); + const imageRouteService = container.resolve("ImageRouteService"); + const staticRouterModService = container.resolve("StaticRouterModService"); + staticRouterModService.registerStaticRouter("SampleTraderImage", [ + { + url: `${baseJson.avatar}`, + action: (url, info, sessionId, output) => { + logger.info("Custom static route hit"); + return JSON.stringify({ response: "OK" }); + } + } + ], "custom-static-my-mod"); + const test = "aki-core" /* CORE */; + switch (test) { + case "aki-core" /* CORE */: + break; + case "aki-hideout" /* HIDEOUT */: + break; + case "aki-bot" /* BOT */: + break; + default: + break; + } + const imageFilepath = `${this.initialModLoader.getModPath(this.mod)}res`; + imageRouteService.addRoute(baseJson.avatar, `${imageFilepath}/cat.jpg`); + // Add refresh time in seconds when Config server allows to set configs + const configServer = container.resolve("ConfigServer"); + const traderConfig = configServer.getConfig("aki-trader" /* TRADER */); + const traderRefreshConfig = { traderId: "cat", seconds: 3600 }; + traderConfig.updateTime.push(traderRefreshConfig); + } + delayedLoad(container) { + const databaseServer = container.resolve("DatabaseServer"); + const jsonUtil = container.resolve("JsonUtil"); + this.tables = databaseServer.getTables(); + this.tables.traders = { + ...this.tables.traders, cat: { + assort: this.createFoodAndDrinkAssortTable(), + base: jsonUtil.deserialize(jsonUtil.serialize(baseJson)), + questassort: {} + } + }; + const locales = this.tables.locales.global; + for (const locale in locales) { + locales[locale].trading.cat = { + FullName: "Cat", + FirstName: "Cat", + Nickname: "Cat", + Location: "In the cat shop", + Description: "This is the cat shop" + }; + } + this.tables.locales = { ...this.tables.locales, global: locales }; + databaseServer.setTables(this.tables); + } + createFoodAndDrinkAssortTable() { + const FOOD_ID = "5448e8d04bdc2ddf718b4569"; + const WATER_ID = "5448e8d64bdc2dce718b4568"; + const FOOD_CONTAINER_ID = "5c093db286f7740a1b2617e3"; + const SELL_AMOUNT = 10000; + const ROUBLE_ID = "5449016a4bdc2d6f028b456f"; + const items = this.tables.templates.items; + const prices = this.tables.templates.prices; + return Object + .values(items) + .filter(item => item._parent === FOOD_ID || item._parent === WATER_ID || item._id === FOOD_CONTAINER_ID) + .map(item => { + return { + "_id": this.hashUtil.generate(), + "_tpl": item._id, + "parentId": "hideout", + "slotId": "hideout", + "upd": { + "UnlimitedCount": true, + "StackObjectsCount": 999999999 + } + }; + }) + .reduce((acc, item) => { + acc.items.push(item); + acc.barter_scheme[item._id] = [ + [ + { + "count": config_json_1.original_prices ? prices[item._tpl] : SELL_AMOUNT, + "_tpl": ROUBLE_ID + } + ] + ]; + acc.loyal_level_items[item._id] = 1; + return acc; + }, { + items: [], barter_scheme: {}, loyal_level_items: {} + }); + } +} +module.exports = { mod: new SampleTrader() }; diff --git a/TypeScript/11AddTrader/package.json b/TypeScript/11AddTrader/package.json new file mode 100644 index 0000000..f4304f0 --- /dev/null +++ b/TypeScript/11AddTrader/package.json @@ -0,0 +1,25 @@ +{ + "name": "AddTrader", + "version": "1.0.0", + "main": "src/mod.js", + "license": "MIT", + "author": "Shirito", + "akiVersion": "3.0.0", + "scripts": { + "setup:environment": "npm i", + "build:unzipped": "copyfiles -e \"./node_modules/**/*.*\" -e \"./dist/**/*.*\" -e \"./package-lock.json\" -e \"./tsconfig.json\" -e \"./README.txt\" -e \"./mod.code-workspace\" ./**/*.* ./dist", + "zip:files": "cd dist/ && bestzip ../mod.zip *", + "build:zip": "npm run clean:environment && npm run build:unzipped && npm run zip:files", + "clean:environment": "node -e \"require('fs').rm('mod.zip', ()=>{})\" && node -e \"require('fs').rmdir('./dist/',{recursive:true},()=>{})\"" + }, + "devDependencies": { + "@types/node": "^14.15.3", + "@typescript-eslint/eslint-plugin": "^4.33.0", + "@typescript-eslint/parser": "^4.33.0", + "copyfiles": "2.4.1", + "eslint": "7.26.0", + "tsyringe": "4.6.0", + "typescript": "4.6.4", + "bestzip": "2.2.1" + } +} diff --git a/TypeScript/11AddTrader/res/cat.png b/TypeScript/11AddTrader/res/cat.png new file mode 100644 index 0000000000000000000000000000000000000000..effb80f137dd1dbf4687312b92231b30e75e913c GIT binary patch literal 2010556 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Ν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²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

RV$nY7*W9!>)B7k&#Q;iHAgK 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

R&A@eJBjewWYavEA+tza8v49WxWd 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

ZdKhcb5#ys^;fB46*X$z(AWH=iIz#NUb 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�dj!#>qyZIQ8$X+}x6=0#M=LDj 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℞UA_WXlM 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

kTlUMN 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%0DXaM(z7Yzhlw;Do>Fm+p`oJtuR% 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

Go)6QeI!Qb&w9=Nh4bF(`cuPkiPL1XsBf@BdC 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�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 z z>a854`B~-}L*#?oeiT02jv$-H&l%s)by*e}#}*@o!)G1iPfCm}U0@53bmqQebJ}!b zn0)k2{~p_ycx56XL-59r@j85oUyOS@I8Ef|`)8?H8JWZfP;ukIx&1Bmyb{=WF*Zjo z7EdHQqfEy6Cw>R6AAht+AH2~IyzEz79}(6!@uc3!IKK8+Y^Fzg`}pIJYa@1ob^$4E zl~pd~e`r7}JZLBH+7VxnKY8HyHJ#WVynIQD!k3t0WW^>dzNo|2wY?iUEp*B2!e;Du zfB6gyi+#^RBip-@v9k-u$?pP8>^Niv|Bb$a^}TNZ9S<)$W(S`SF|&0x-2R_3?Q3hn zSvz6Zu~l;M4X)W0IDWVNC$u(xN?(|_DdrVi;|ss74>v_z^7w6ijISp{uy>Kaz9}@r zOMZ4wdVo=$QpfA6d^+Diu9agFI#>(2N%Ta(c(D7*H9c8ybRPYhYm)h`S(N5~kM>~0 zZ49%}RC^Dsm5csGU-(?O>Ncik7NOstdT{fFvvW0lHD!LnU(%myKS_KR-LL^R5iyLO z*<579Z#l>h-^$S6g`WE9@eSe!w5MA2nxe!0jnDIkj{1sRlRsGKod^3Rv1L+Y_273e zzUbIko1Vq$%|m13(BzLz&tf&Zm~mw23#!_Wd;IG+jr$a!qcGA=|C+4YKHJFUq#>~Q zz~*nr28{K)?W4Iz*EW>5zKIPKCr|^faJSta(w>!Vdb!T)(s{k}`pyx}oST#D@_Yu< zS$XLinJQzCCsNK~9QE7&I1kMZd9BoHmuYS$Z|b;Q@X}tNv45n?`uo4M^{)KGzx|)S zUqed36>ZcKyc9{tB4DU8hjL#|rdPu79CacxSLm*DI6!vjZ)W3%N!Zl~J8S z=^V%KGN>`wG1{J^n~~LVe;oO*a0Ce8w6jL~bq>x;L+?0_LqFObb>+84^4P!xDB~~< zOzr5oFV5P);h4ZrSz2jaM>HuAlMhCDJnEO;miaf=DL!mr(gd*P?&yCj?-cN?KRxmj_l${+jRJBo$y2r^3hT}U?iVSx@EiMk8XT*Vh5Hes(ISv zU*rd7`|2SNdFU8jxIY{|9VK78rUS2f{Zp<_8dQ>0Mdi7T%Nv~yJ<3(np8h&Gg*N9& z@{hs8UCK_d@;7Y^MC0UZbNPd#gHy^J>|*;i-VHDY(@BD&k(WbIPM7ph8!4NI9p_I% zhk?4Z_&eyysddrQK^pGzidGY&&|4jiyhCQ&`CB?A`2}`L!IARHChgJWzxvvwfk}@7 zszbg3G9ZSwmKAVv0;jmqx%K>)gO1QrndiDP$pljs`QVd#<&pBCA?*rh_*JJ1$KerO z{Pgg!rb3?-U67$k!yg6Zy#H?TlmWsNZ}^eT#Bz*`&8m zYRNyi$$AzA67)u9#zit>1J3Z!gK-X?@gecIp~s{t%Iw7B=7iEqBdFK-o3iouTLT)yHG4vSq$l9E_L9k4uWHz zbl;dK)1e0(6A*2;kAtNx|HX#70MvG#`m%|iy8!Zi;F0a@`m&2@`Xm}HjhJ?1o@(iJ;JST;h9}^5h3u& zt9aN^^h4k5gber;JZo!r4xC=?llZcJ2PtsytgzpP@_oYCmvZphmoiSk%l6>(i$e4` zi@>v>Wn5rCM+d`QlO-p2pHZDDqNkotTMejD4wr-A93U68BEK6*6wT3HvdQ=h*2 z-64G>^(?mWE$CtE@Z+^V51xDV^g$D6eVjs(XkiKdU34aYdLd(e2Ys8bf8qyj@_=6% z-|WY0@LAhTd%83aVk7#g#R+)aE2l@gQs)@i`oD(*7J1oZvc`5Y(I*?f_V)GH-^TyV z2fMuzi3>i*qL8tTzhq-z>&qQ)Lzj;S>!;{y43>FT{Z8l!S)ChMfxGNeYugh$!EX-d zn?B?MEE8~D!P~uSr{Y8&f17&Y^wcMQ7!? zs+|sv4!)tR6hFPP0SL)LqLtEJIf9_BHkUW(s?7#>VIFl(DcAf@?Lph%MhCbBI#o{B zO#x7S=g@A`=DmFUT6$HzUiWab$5}l`(oi(E`SV%5xk&C_AN6}~)@6QS0DOQy^=K!2O>tuU?$LuVaEt`EN}%hI!Oc9)OKE&0>W{w^FDr!GX^M#=?Z)d zWrIhZ6|H!1uER~50cDoT;9#$w zIPO?-c_janKwp&XADs$sft7Qjbk3gHO%MHtBFx zlYii8esH_4OgXjO&)_&PBzkjQ`R2U#TR3Thcx@zkLM`lf(Eh#N4Z3T zZHKP>tBoZs&BfKagPRYbzqZL)dEqWC&cOlS&@=5MdK8sI4hIZJ?gt|*};cQC1{)=ar&*1kT`Uj6&?MH5bleX=zA*Zid#fO7k zUJkhyK6?n=K=S{qZ}7@X{wd2%>5%LKK!*fI?IDLT%LMYRw*;C)yFedZ^OSY^JzBt3 zhkT6*0^E^fg8c9ar?E;ua|X*(Q*sv+b&(8wV`iT|&abGTUw~_3AmA-0sb?&;c+=Oz zf&*M*k|(UQXmQb3sRf>J3w+t#OjeF>^TnrD#tC5U>gnVslOy!t0YBtVrf638%dfuZ z(|bIR+{X^oQ{QB|I>@#0(L*4>aF+sQJhkkJI;DL&I zc9P%=UQdbl6#?xX#(lh2DET+EP9IZWx%M+A%!H`laS9wf3%vJQUGM>7`xaYF@bJTK z(8pHcMVmY}WC2c)AN0Xb=hN5m4R_(9J@7_GvvZ8x!G;@LA7}-4?RD)*?6P_ggZLJO zg_C&=^7~`qY9`dPplw0s`|h+xqX{p$`q^Q9neCcTtLq_|GQJkfm{EBGw{(Tpp?T=; zYX{+!jzUs>$?!e)U^kBX=#`wo*`y3UylFEFVMDh(6RNMj8GBNuuMFOq7_s?IDub8* z-?6Xsgf|c4$lszC80>BOz`P<;vQnRn;bSXeMKn%KGX9>ORKLM(qMyswVHfh$?LtE6 znw>`DQ}G1u@G?Jl&2O;1?H5QO>q#?qDjPY+cID<8EvxsHp=){S$#boq`VR0V*O*n_ z1cTg+co}c$W4G_juL+Y$ zAk^;gtqmS(OR1|38jTgk1P{UeY&yHve(crjXMUaUr;86h{3yO_cCzp}#t*z;n(lU| z&?ldM+VQ2|gbO@+QHFj=9X8{eKl+Y*c=66=@oe0ZPhRAw5xQ!t`0V1(%)7>}e(w0C zf9MzbA{@2Nl=Gw7d$7W$jFZ}QaVfIqGx1xV$)divr34 zhq9%;{z_T+p;vUTT;>q(j325$IOL)|KhTtWe{((Z7#U7Gk6wxa( z=z!K;LhiIrTlIRKJaXIo&bQ>LtAQ)H+^0@+Fmj}|1$}LJ++%#-9{F!@xqdmF(f=NpI4N`LC)ovU+uTHT``BY=1>zoW6fd0m?OM*0(kZc7>D850a~}F7oC1_wO$VSIzL*-e1ZK~D12UZ=f55IV|J{tRT7yj|+9 z_;brq>jx5}v}Npe+qka{rfp@DIt`j48}-3= zHi))Ot_SuZ=K&Oj@i>Iv@RH#tat>Zk#>!C`Tf25sAJ?58qHgTX(1tlSI`m2299 z>x^b~wmzG{lSxMhkJOt%V&t%R*`UCy_xW>;h7LAqb2OOq!q4Bd9s8@?S{w*HdfT*l zwb9&<-7O7M$93g%G!zhQ9l9FdbLcYig&(}B$G*vNWf`2MCwhtxZ8~Tu{2b)M2fAbjqSu1Lr?82ePQJ|a?N$h$pOqskx%NV z*B}&^Yafd9AKadD)(0m)Bo)6heFu&FIePE`&f-<(dT1X0674+=D+b`A|Qu;9CP;ZMoU86rG(ktSll! z!8E)k%zi>%*#w;*Z8jBheVA3GP9n1C4jJk;Vx#5H!0 z;a44b?1YTrMjO6-WYtd!3*_e&skiEr$PJzFd${EnwD4?U=aY{=>BL9;qb|R}-;#G@ zroi2gbdyOy1kO)=VC6;|Keujz@p*XW709L!@Yq*$CEgK3p}=(r1f1QIe8$(YZStZsu<-H2@$Dda>d7|`s1FG2 z)rqoM_?a;aO@$TRxUUc5+an*m>;L=!f2CgiZ~TltXz_tfSa9;Xr3GG#jr?h2{K&*2 zMHejtOMAa$wz6B=;DDQWyEBGg4L#^|&0pC0!{+$;{vy|tXVKI2Jqsypo=wByM+-bq z*B8l@?UuJI*ZPX6I{FG*Tp!KnZVc{Y&)TO^>yih0_#5TZucGVl?i^;@7GLPET}FQJ zgG)vhtJ@}RT|3i}1!(2kf`OjODmaz1_b#r*{^-gtsHJMk=41T$fDfI{#+KQ!IQ^x4 zmaRw5{JuOg!Sm9r|Bw%R0Rz8q`*x5##@o0dyllC4{7UT)ZGkTtL#xZuWbtVFzIw(8 zeDmx0RL7w{m@6Ot1-%VN)i2lxA= z&p@qHGlCMAe*#0!Ogq;WbH?e+prxJ;X!oA@XP-Toaa_)w^!f|T31-G2j(vMk94 zY>?Byb0&VuIJF)8;YUlMrmjJq&TB`htBo@4wKE9&v(>!x=8rwD?Jj>DucTe7lokZa zS4V2lm_r_VIx$Ep565xRnd=;aX6M2PonY&G?j2xNp7|>cP*KOA96r$Me84WO1BXe% zE=Xx#y+hUZQ)l>)7luQr&5@OQxhorOJcl%Z99K4{nbZ`nj1G@k@l(g#N3`#gMY=#mCr=t&?Uuu@M@ zD}Q|WOafZZU+Uta{2qAt&FW1bPx}U3r8V$#oy$%PG}l2qZ^F z`a3!Vvv1#+;BoB=K4aWa7?NTe)pd9fkb^~r{J#LnmThpZ1s5|ay-6k{V0txa^T--* zeb~bae7HB}dDW-iFo`|u_r@{{A!MXIx)BBDY>EHA+u8AjesJV>B9VST9u_6&%y_xq zao7aDwhc@p7!PzjZMCpr;zFii!mHdtp5-a+`fw+G6@A9(88>EfL;30r?K9E#0Eh3D z=jXP+<#D7*c7?3Z?EW?1pMxU4+_UCc(swp z(WDJ6?A16T&q9+Y*`AE!pFOX9;UWLKY4`CbAGf}7$paXNqdwx>i1b}Ll2?1IZNAxs zDD_Olyz;oVyRp>j6-{VmOJX8A-U+vJR!8UqRY4A(Zcbi50kGg zddZAmkWZJ+7XI`ha)4iQ9vhmzOu}MDaV9?v{_b*MqZPJ#2S3`v32w65-}pT^)tLq8 z;hRms)3GJ@9e2`RU6W}v%SYevV`6{AA<;`GN2x=`4)R*Moh$1c?zNZHLnj=2;AN9~ zY+!g8U+Gv~N&FhW2uBwzQ%+F&>!k6$QWx=pLx%p+o$i6JPm({F#{c?w^aR%KsFCQb z3u9uBH)g?+uKmn=3e#?E9`9h-0Rs-&fB0c`BeEF_J#bnu;v|g)`uXbKLdrMkUlu$! z4kx>%lWq1R#(`7aB=Kj)3h?PvJ3h?Lt$U#p+?^LF;}6<5V>hb@{+7J-4SH~Z#XsYZ z|Kum>e02jBymUwQtdyO3Er_ks3z>eK@ku`ilWzE*!l~WN0*vv(*Dt(A{OM<(C(k0o zm5W>HYv8jps_Yrm5?@HABPLzr|xVXRMKY|7ZIWdEi@HcD;TX9G#1R*J~-&ehsMF>OY!6A>(;@e4mp5r5u3f2m;B=^^#ye-_<5y|EIj<* zSkSnKUUkqQ@p0g>88TyQrLwK zu}KYgFXx}q8I0G~kxtp_9G9<3=Vjm>m%lG9-V^>`Y5Qs#UzEk`)2r#f@@IedufN}w z(Imz!=;70z6gXRc6{OH3PvyN(2nFG;D1QU`@&mqo$GVdbmRDxWAuX_v_EI8A? zq7XxZ(^EcytPa8%b6zGA9n90tz#-_V0}cHB%DsV#@i9mN*iIh6g@^Nz2d@Poh64`A zKx}AUqt?+Ih{rqMxOu0)0(0B)vh=hX_AUPP>( z4%tqWYaP0WYsc|-p0*=(ppO7d#>k@bIGl#VJ*S+TIuDiU328dEI&jd%IuOCVcFI*u z?m^46G1$|sC!q4`xYAA@r>CyLz+#>H>h;NgS>PmGI6`6xv9XTntNo*d}NyfSU&85|mnV?tIA_3$hp*hQexSs5)qqcgSVNlBf$ds%W*N8aR* z9G31jOFOWq?$F!7F*I}jeM*x*Fy%|-VjB1C@-z@8k1eWO{Uk$ud% zo_p{cI2iz|%S+qs}>r*fc!*(BymwSdhkF z=vO}KjOKlipuL5bYgcD7fCuBJpZ0zC-G>eIK6>&|1JMSuq#O ztM;+b4F^GNEI>XMT<~d^3w=xQph3RfGbSte*3S6cog*o$edpW-pEMYbR+CL*BPw3@Yu+xq` z`+gE$E8F1GN0sq)cqSufF!<{82^gBe(oUZdqoSK{#FqmOZPh`eel+$KxrJ8OWCLC< z>UZHFH}Kggp2eT~UTrY-@WCITRg$kAc&_!q?HB4gl$lsc>x-465gs_$&n!X=O#Gmg z&GB{OS8**n0JHryXA8aHOY9MD{f_Tu%iXcUrgDg(=5@@O^l2ww8$LmMKAo)O^>xJ1 zI(^t{ROA^vu?aM4JMx(rf<2*=FJntxT#l@!%*XV7T-fWh9_Ypf;wQG<;>Hh|piv)! zZywf6|5|@QHtbqkwA;0VPH__5ou&>Cu<7}YCUMCKp#UG1g{NG>x%YV6xVsxu5xNDc_L6=`dvylGi z@#FSka@X(J9Q$K0#xnhg9^fT6;}^L4h(;Sfqt9l+U@yiLa4ZD!pY%ii#cdQaF8wi z8!y0Ohxq3Q=mC!s+p50~Onwax;}Si9r``I|fUKO_FLS>K+O;w*L0 z-ng*!haU1Qtd!~FrQ_(Il{=b)0~|L0b6_e(M|A*+q`k`&7Up5=g_K5cs~~UnyUD#{ z$06F*$;tSTrZOFigG|*r zT7$S1ejSO^){!1Qd>8^pnSDZ+b}LYA7@%O--~mo|48I z_Tg&0Spjy9<}v*F;GDVw!rS-mU);L;&c*G!_qy}PN1%NNXnp}~Iu5kp7yXd%=T0@3 z*T8ta!Y>i4)6RBuhB?OBoyz<7VrpmWF#|;h@f>v`>Cp1Xa)JaCy5J}f|IJ_t58P~r zjyNIs(zG_9uE0u0yS9Ry!E6UbWAY3V&S-|$S>S-CeHyw>Ntt$R(*(BxcVNk60a&YuAiJzbDU9cO4KU>#dfUjkPh6;QVF zT-(_}u{7j>3m%onb_M1$$v}&A(m}52gbZ<(a@Jk&#IhejQ6UOor*>51$grOw3`D^f|ACG+s zh(?N2wL6dwo0G#=^Hp8k#QVXAU)pi5&p2=lJu{gupDEW49{kB8J3;L4e)qd>^|yGn z0hhq7PwRqPpX7VkrS<~yk;&DLU3e9QTBI=X|M=riI$nD9;Q43II~E#WyC9Op4#Bzq z;6cYa6Rmq0d%!S8kzoVW(2I8uXZ-Z}1h6*`{C+*@yN;2P2OLkIJ}D3QB0v-TFEjZt z!8Q5mBF(YjP`i!XE&PF{4|gY5^JDMnpI(hXJ6(}2xM1R45N@Fb&B_Zabp*I%&CWVW zPkpaJdA&~im3eJ0PRe!F;`wl}|EWQ)PKcdid}`={8xiz+$HiIzCQ}5+Gdx z%_B10%ptGoM>B!;y$N+C4~y6gd$V(Z9ht~k_#<09lfAg0_8Z;%iDV05^iExPE%^#cAH(aw*5B12dI0LKl4$bqS-C6LVH+q^0|12c6?|%FJ#b5oaf92xIlPBeE z+CwN4KC$|dnAy~mkWPUNXCphfD0IJyBlP0OeL zbUuD5erP$46ch8_gR7^BpVn^7Z^MT~$K#Wao|F%C zpq1X)o(1;1nfqASu{*^pyL8t$HhOee$fCo>%&}p<(SoM_%r|!DU+CXOeR$a0`aj_k z+VNaFC(qj2k6nz%qy9~v{Fu59cE%>q=fl(HLFiz2eb|$;{yS-G!??<~fB)Sq+EtIi zr~fM~oz1@t` z*b)1(3oK)q9h1oyZ`eJB2DH%wy4gDYvBU0QO22aOC*nnm40cJv+Xn&BS9KW}BiC6p z?ZSBO+m}-pe{EA9=S`XMWh0y7rW-m>8wuRc;=h%d>yR~F^Sfx_N5oQeIlkzK*J4-N zO1%$!u-A7OTWUvCmNIZE$JnR`3+j?l>Cs2hZt6@-v`L#o`Ay0epE7OP4L<^wWc;DP zr3YN8q~yMKlz+t^7vW=TE4I{eGa>9YKnWiO}m zIxp1U%jCTZ%2Y+yw0pTu^IGW@t&jSP?*+WCNWZWA^=asPRl4$z{=5I;eFC1<-x&7M zku0z;ClbpzBGw>Hu`V87yF z#aidzK#}9sS;1p$8$fwdpqxSMB!ZE`=h^_Fb94BdA=;I}gLWNUCw0vcbG)t%bjq|* z_vWqJ7xy1Ny104!&c)q(_xt*np8@uPHVZ%uz5)56%nJ3-tCJ(u1YQH>{YH3xX51J0Zm*D0yj z3yza>g)?wM3z{$6Pv1IEr6YfZnL2g8hn$r4=%8~9BBf9M&?vzt;D8^FG%c+Yh_J0> zq`LFLTH#ejxmQR2EFc^UPUuXg2?jm3|H27Wd6>aQ-pZ^rs#0__5TQX??J2G5TP#4K zC2e=`lvav(*H|5O`H;1b$}44y6J7EI64RV4(44D-Z?fQ@R;HybWySXfIHPx|a1Yta z*9Pu`w4>exKP`)FXnX@;2b$HwCKfb8UrhU=w&jztq4HtR%3t z8+(h6Wu^_huKDc-tic5)x=?OcfC&hQq(waI$=e$zP&f$b(<$xvuQu%G0KuGyM6$Vc`li-yDd?p=?gax&>_DhYP^Joeqb8NIW$nS@V2@cjq%1%LGVQ6{;z)2rtJi*c1a zR!8ul$Jo0&dOCqM`3)`;J$3O7kFDcVdR{Isuy8yd&Ex*fMW@k~%0xOg*eTf|Z>Ftz}-i!>j`OxLfDR+*tqM z!NbbAJ~a5XZ_s}79pk$^9o_{kyLii2{=^XM91ahX=KDuJ=<0h!p8U^_33Z+)j_|4i z+A8D7{Cx6k^0*I!O#JcVTR-Tsiy6<#_y!YUIJ$!;azZ~FXUFhcJW-dWZ)ll*@x#TR{^_4~H;xJBKK1XnCL$kpp?|Sc6LEIAlN6n-PpgkO$1Wl5yYQ8| z_*9Q9(AQV}!>`@hzj^Pyv3){Fq9cjE_*Q-dOmelbMsFs5^bTJq)qzJZ^au{yoP~{f zHIaXi)Tw=^&Mt1!4c|ikb!Zvg{tI|S4xA9RW} zOx*0|P=`D%Z1LgfVWaBHx2RY@V~jvg#L|VN96XRkM0|MVmfZADXFi#qfKMMAKR!Nu z{T+RveeHnF=*w#>;NzKG_(JW$Lj<1z4nElqzR_Oan>uK4uS|Q#@(MS&V6g-FV7rD_ zTd^Nh&e$e{_T`jWlqL%{%HQj^+E|RUdoUO28y1NyfTYjFzWWPbH`70Y`$}l>>fq<; zd-TAUnc(Z&z9&lmd>5M`TRs&5^B_8NkN1AlzBoQ%#wfl(|6iHt$F9M|7oPP?`m$iF z?@nKwMHBWXkG$~7PTzUwe(f9G77r|HSP0kGEI{$uXeCSSEC2X>XF}@&Q23w^3)y@< zAJ+Wn`J*S#dge3m=qKCJ)9=~T$ILH**&RpT#+2>Z6ZbYmKRc&xg^YI@;O!q;I;Wqv`i{ z09h2}+keQs@J{so@Zz)QpH_eLO_uuaxvjEOFe>BdNEtod>%!6OL?iRcE`5&SRtGtw z2Ml&+%zE(9>%+$R8PmvZUJYY66U*uA7Mt)S2D0O4eLb6Vrb9-F|Bf5Mvl}Ipqj`D9 zhjB@M`&!yK^Xu{;CR1|mf^l%t&09C(^8=gBl-|^v2U|yM7ka^I{1<#brC&DYJQDus zSwB^dCh;~sx4#lZ61nv{himxJw0z)g>lAO3I5d7Dd0?SQg1_yP&|Y}xTe5P$@kebd zS>P((v;UlTtmo^BKlLlW)N8eaCa_#@-X1Tf^E&5g;WdKIzn9y;Q2)HCddKA-noh7@ z)$k17)_Vc>OX=6jem&vuxO^#H`FsEMfAs!439kCYFh)-}-g~A*j?+^j&hStE(x0>e zBWDy0P4Lbcufpnl;xIn?$kWI933tY-vl;Me^f7G4Q`UnE91f^PoxFC&bWmkA_M;Q+ z!0ce4I(Use*XZW-1S<@bvohHkCpb<`J1g(=Avb|~I<>O2Cmjw1z2E)t)5V>8?_9in z>rNMhu3WouaW&4t?w_T*!pz|`|NZ$=W$-KQU$1a9OlMI=2XjwndrY}NZaeB_V*d23 zgH4c;U`Zem+0Xsdnln14qnZF3kWU>lhpPrkx$A`C&|@dP$!>rhJZ_d90~tNhd0`$7 zXZW4Yt$hOygL-5yxR77|;wZE${W->V;+W*+YS0Wm&J?|D&p;y+y|chEsaTPl3um-R z&g7v2+?NYv;Ew#AB|I#Qby~`&-7L85Ax|nF$32-0orlwd=b%Gb7dcW-fJ-*5hqhGd zpmHSorUU(L^OugrtBnD9CaIT!vf^no_1t&xM@MPd_O9jirfm#98*u1HQ z1`jDEX?IMN)jRa91fAMzfnWU4abf1qc?Vl*2cRvNl)(>(YX`reJd)^nY+e1K4X?;l z-hb^o2A%OI25Ys+m`?*^_)6=vMJpR&^R1X97+9JLt27>R4({y>tNYVn$}gRzE?ya6 zoue=G;i)zeSa1A1JT;&>`V&9NMwGWs>Nj9XpTNV?Rhn{H`^dirA9R{~H8v=ePqz+% zk?Pu!D=AoTS@?Ludl$x3geQ4RFa4E&d;%gB|MV%oy)sIwz7v26&bxpY9Gaj*pw$m~ zMs5uz1$OkUAEfQ-N6^U5!DOqW7cxqq8n|$L`K1XZKTifn@N@*#u06EqBra{yKQs)F zZ^bs&r`SI4HEH(ZCx0dKnu+iPt>j=q!U4C%853>%bmDYn9wl8V(1ervv+~B zyiY#;qzf2+B~aahix_mW@&(rd>B!x#tyy?wjo#S}J(-Yi-$NT)(B3bL&C~C1OP}<^PqUbdCjQ1b&8ic>EQe1t!DA9j zF15KYXJL(9`kQ_>-~GY2HWqd|o`g1VOsZUK=ctY%V|4E8A86HY*z4K_+X0K**$q78 z17>$7geQH2yf!YPC$XtXstLCb4L4p1F0!I03j`*zyF-Y*u_blDzz2V!%=pUgr;i+C zTI`%H=@)E)AM7GoY+C%HZhdQodeMbWV<0_Vzc#Pe&?O!V=fET32aWi|lY7ZMnH69X zpG0n}Z*n3JeQ@q)M*-QhC27Y2_}ebm`~o@OG!YJezWozH<=;%ei#PS)CMSIO6)m)b z!M^xRvU#2fe^3_=S)f6zj=!&BH}Kk3_Id1|&MYQ<^x=oI$dh*LLS60Hfdv__JUx2+ z2=TRH_Dg1Hhu@rlyy@M-urpeeInP{Vd^}z(ly-Mn^4@*;ZtaTAsslIM<2!e;+(L5s zsm-U~d`};59yVbi*ekSOPv?ogGOg$W&kue*G+7ouz@;0D>Ud;#=1puEuNH#XzJ)0~ zvR%AC|Maum&u$>{?zon5MtqC6iCgGY>@xKG=8(F^D6%uYqaPl=3J-A9Z>Ei%kaS3n z&U~GI?jFq!GBq!=pyC<~ve8G}u!$RQTZn!$ZEs~Bc_)3)g7o-lGI%3p=;x#ON&HFZ zYMg@>ueL^Ldz}tGikIvs${`$0foOBN7%K!4;|Bd%EBv;r5E)#A+g01Ve z6LLtOjZRcS*9^MBkql*UatL)q2QGTq z#G%kNoSmd5uM@lCOFHnf4|N-Sq@MEfpR-1Ab4(|G)3nwbTF}R)IX!Sj7Rl$>Llge$ zG{H+lWV(iOgL8@I z(joRP=kj;ZS3Z*0zMDhZ0ZiEr2BWL7i^9(z81zR7>MXD7lArnpw_R|{zm~5}rAhtE zv>85fIoGMI4w}=lfAA>dQ&SKH-I1=pkseLBS zYzce|_yX9~gYlq2Tlg{gUYoZdW70Wt%|s%T5IzbY@R1`1D$YpMbVdW%6rcvwcN9fjt>{MI3%IGfB|Fx`>~Y;+Ba~ z@Z_K$6KE6Ld2lcbwd4ps+-ylbv`=s3mu8Y}_X2q+v)jc3FnnldjAB#x@fsajh=VHk z;DRIMMII(vKEON^MX*ey^%1*HWLdbQe9thde(!FX?+- zhz-4X_9}$bg_^Wu7xLL?7qaq)o{-r(V3~mGi}Ztsl@opHOLPWrzbA9ZuZyC|M>`zk zb^Eqoyqg^i>Q#m*CtGKIsXGJ07nL+r#%#Q*gBSXQdwCoBX4lY+Pe;s=YyHzgO0o*WMSWe$0UtjqrWOw!V`}Q` zgE9TD%1;6lE@j3T_@$F?J$x9Mh~LS(K0I<&KCu|uu3Wrz_05Z$b|$1A+`iq?u_Lmv zNQ5@8Zv|lGsL!$~i#T+TB>3@cp@6SwO1tmAn{R`nLth&DM&`y4whN|3X8o^=YN3H| z)KAch7CYYble>5Cgzxy6_+g0*R+n(FE%y#-Uvp(6@Uvg^8GH0m3$pwux+QYvXW(YP z;PZL($A`6F$H()dWXiVKXOP6_eG#5!LJPm$mSm!xd#__DlgJCd;NWk3;d~_C?o~9X zW4!5yqEna7)#ZyCR{+F5DyP{AyRpnXQ23(tz<^)BnD6x5DXcC|=FAS-cMjX~Y8^R{ z0s8f6_3ccO$7gCc`NkqUndT?o{lve%she73 zGqdvw{d5Zk2>J*7?2sSeOVOyF{zq^0jSmYhT{uhr%C-F^fSk7;`BYAUy?sad!W|ig z|Ia^f8%aGfl5aO8{fZZAN5KguI^lB9cG=?CIDbFz8|R@b?ecH>MJ_hZ+i_##_x2$b zBdNJhC9+G7c3^EBHGO_)T|KBX^z(sQjVwTL2Ve73O+LU*alZb=m35iRUHPq9fBe1ER#PIK8}8#e$A66JClZyBdE_clVto1S`j!_ z&{-;@6*%eG@{1>R1$tJW+u0Z;9&!jI?%cb7@%Ak%-8cJQtzQDWa=rtoM|DT8f38%u z{{d}Zr|@*)&`YVu(d%&%m*;7FI`{vIMQ>^c;ZW&d9qu?3c~ic}bkyUVdoX8^-E#7a zGl}g$S6C^n(@6Q!Q+Njs`gNAyiEH7ElUw~4SpI3_qA>E8tCsm22Pr>z14sS@S6~g@ z9a!N`CH0-hnF_R*KTQV?T2x{aP;pv00o`)-!9*wfnYu%}H1rNUwpn_QBo81ba%=k} zI1Mh9L-K0VxmK?*IvDzAKpbaVSVtPLp&|W8E;^Ib|Is#fKKjtdS0@Ic@?9Gk+{&cM zAN*vYOdYmYe$kYq4!jd6&j2fxywU~E!0!D)m!!-wH-Q!ShzE;&I)OpcQKu8kz``Gx zo4_nxFVoMKb1jd3mX2IIgH>Av&yl+FRtB}7z<}F5AJB83;SN3H*YpR2;?PG1Zdyk* zr`CzyQfH}#+abwA!|;K3xc$S^q1V8Lk8IQ_&27w1W)Ma*JL+V$ePf!Vv}gNlL_ZUZ3If5<25yH0Hs8axRt8(H z41DN}Cnj5T2mVe94#rEHAWD!4@3hr7GfDh56XH;J{ko^v!@IGd`bj>#WT_olXbT6J zvtwZ%XyA`b1({teQtzO37u5vWoe(8qr<1Chs$C3krw;rRfIHZ#u?;M6!Duj;gqH^0 zX^V#HBUHGyOJNs>Oa{oAO{|{CNziTbV0;VsimGKD1MNJRV7c~~3_PgAzN_2h(G3{t zNhUmG;q0lV1irq`3N1o>_x&tpq0<2o^ z`!~AKUtNY)`q;$3ik0{xw0YGEZ|FuR{kG@kpK=Qs7R8npu;{q`Hn`yZ5gnl&4`j1? z(Qoy2w3q(0L2oC!DMSAcDesu5e(-_+&DY=d$+$%$GV+?n%HXZYW_FuIUT94|S(tb-dzoi{tw&R)wMYtq=r3<`~eRUJK>N&)6-C+{j zBpbB;lzNhd0kF1@lIQZsrpd(u2RL9#^D0MhrVd>oZRGYtK_BMAC*sjke4@f>nF-8v(P}^+t20k!DCm(>DWkc1$}Ya9m!XYznC2% zbYQn(WgJ<8&qu%se(nG8XJ}y~we!e=e6;Tvllta8{12aRN6Y%f`qD$z@Te=>#x7N_~tufE|u7&F?P)OfV5D-H%Ro*#p}>8pPdLD z=^J(&%Ij;rfr<9MVi}&vh3v*3&Z}YiO#NYOll?W$qyHS^qm7xflM@ZVuo~C-Bur zLvbZfAD_jmiS^;aKfL5fcIc%e^w1HTG(PD2bj`-;-`Gv=Y)w71YExeqSYGor&!lBC zw+L4IO8MxAz06{b1U9_rVt@E5?%-hSY#&~FV1*-C@Typ_suywOMH~JcsNR$ns?M`o4tNT`bFKj znsk2ia@mn4@5PeW;yY#MV*Z`#{u+(a?<;?O!ryWEQo8aF|Mq|UehoKZ<f{sUMi0bd?iRWjg#xdVU>*})+lOlA4tYOAA;K~1oze(?pK z!9)kt-qWw`*qpr1#V8wqqyx?q5AV{>mi{$n1MPMe`5Y`-z?UZInywHX-)*x>+lZVL%BAh+`;aa`)aMxHJwupb&acpQ{~t%AW8 z47u9iqs}MSf;fr(%AVc1tJxW$~u06QNCMTlg+>-hgTY1gSEHCu#ci;6y(u ztiA8x+sRn2$=^uY=ouA5fs7kxq;st{Z5TkKtK;?ezn^ zA6XNq<=T^8bXYt=OBb0UGjJBBZP*Brr!o4pQ?HYm26gPg?v~?WNbczqPV@>a?IQAu zz||`=?$kaH8F+$gyt@C+gUZzt*!t1HFzM+N>A>xTG_=_L;q|IMjOjuVdl`KQyiGpQ zU@~s(#LGMP?-!q^lWf<-n0)=m-u9IM_|aZ|la`l$TPJz#*Wp#3GHt6beK+vs+vP;Q z=N}}d7drHsg+ejK*jUDnl(8d|6}(h`sbgGVSE*DSGYO#Exn~IA^Qp#d-_xiqrOX2! z@~}WAPu)&Z#UjyNV~o@z6LgX-`b|9GGqLcUqW*emU`TX6_JY@0JC(fxiF_VcWzd8M(uMdSL z@zRuq8u=HzVL2(z^$YUqJU~0b$DeMZLCMC{|sd83d-!5mIH{fo~vX%v@AXzup_a}5vv@oXoBS50aIu}5cq z*frW_GS8-FLL&}vjZ?U1N8NmSz_)_vt3P3rfAv*}OH#jf8#?G@C+=i{rtWM=86FEa zeCx+1W#D(5P0daUTQ6~J`tte|^~+n}x!_awdsqDzxZrQUA73>xmW*j&O@E?~=|^Z8 zp2z>w=fE17ozv`$#~Z10{fY&|iKo$9T^=0s| zUG^pI!o5WbXB_SB7J1rxwYU$7Q;vWAm#^_*Vsei&EG+-C12zPo{&&kOZJ&L1aW!q| z#7C5O%nXy|libj;W6{WN`ja-*OY~1S9S0+$>LGQ${)Ru!b?E5a=cvoaGckQxA7lgU z-vT{&#$@pnA4kUfswEuG>b73$Xe%F2=;f=Gp@Z#JZsCFd@Ky!d){ZRf;1e8n;?o=O zz5DKi>QLRvE^z5gJ9&L&ifr76KfVsU_RSkH5t*^)W>D#QBA z@qq!6BV$RmH)DKdop!F#;9f$PHejmFSB{^aemAtwVzoNzl9OZlCphyxA3j^2IE0?- zpWUY|oZ7ap2a#*_#Yy0<-vST)=wbt{mqR-DO;X{JS(3ir#Uc4Q51ip&0-mA|bcrQYd! z(|P$TQf=x;zifM)kMvqNFJ!}aTsB?a^lA%pa("WinstonLogger"); + logger.info(`Loading: ${this.mod}`); + + this.initialModLoader = container.resolve("InitialModLoader"); + this.hashUtil = container.resolve("HashUtil"); + const imageRouteService = container.resolve("ImageRouteService"); + const staticRouterModService = container.resolve("StaticRouterModService"); + staticRouterModService.registerStaticRouter( + "SampleTraderImage", + [ + { + url: `${baseJson.avatar}`, + action: (url, info, sessionId, output) => { + logger.info("Custom static route hit") + return JSON.stringify({ response: "OK" }); + } + } + ], + "custom-static-my-mod" + ); + + const test: string = ConfigTypes.CORE; + switch (test) { + case ConfigTypes.CORE: + break; + case ConfigTypes.HIDEOUT: + break; + case ConfigTypes.BOT: + break; + default: + break + } + + const imageFilepath = `${this.initialModLoader.getModPath(this.mod)}res`; + imageRouteService.addRoute(baseJson.avatar, `${imageFilepath}/cat.jpg`); + + // Add refresh time in seconds when Config server allows to set configs + const configServer = container.resolve("ConfigServer"); + const traderConfig = configServer.getConfig(ConfigTypes.TRADER); + const traderRefreshConfig: UpdateTime = { traderId: "cat", seconds: 3600 } + traderConfig.updateTime.push(traderRefreshConfig); + } + + public delayedLoad(container: DependencyContainer): void { + const databaseServer = container.resolve("DatabaseServer"); + const jsonUtil = container.resolve("JsonUtil"); + + this.tables = databaseServer.getTables(); + this.tables.traders = { + ...this.tables.traders, cat: { + assort: this.createFoodAndDrinkAssortTable(), + base: jsonUtil.deserialize(jsonUtil.serialize(baseJson)) as ITraderBase, + questassort: {} + } + }; + + const locales = this.tables.locales.global; + for (const locale in locales) { + locales[locale].trading.cat = { + FullName: "Cat", + FirstName: "Cat", + Nickname: "Cat", + Location: "In the cat shop", + Description: "This is the cat shop" + }; + } + + this.tables.locales = { ...this.tables.locales, global: locales }; + databaseServer.setTables(this.tables); + } + + createFoodAndDrinkAssortTable() { + const FOOD_ID = "5448e8d04bdc2ddf718b4569"; + const WATER_ID = "5448e8d64bdc2dce718b4568"; + const FOOD_CONTAINER_ID = "5c093db286f7740a1b2617e3"; + const SELL_AMOUNT = 10000; + const ROUBLE_ID = "5449016a4bdc2d6f028b456f"; + const items = this.tables.templates.items; + const prices = this.tables.templates.prices; + + return Object + .values(items) + .filter(item => item._parent === FOOD_ID || item._parent === WATER_ID || item._id === FOOD_CONTAINER_ID) + .map(item => { + return { + "_id": this.hashUtil.generate(), + "_tpl": item._id, + "parentId": "hideout", + "slotId": "hideout", + "upd": { + "UnlimitedCount": true, + "StackObjectsCount": 999999999 + } + } + }) + .reduce((acc, item) => { + acc.items.push(item); + acc.barter_scheme[item._id] = [ + [ + { + "count": original_prices ? prices[item._tpl] : SELL_AMOUNT, + "_tpl": ROUBLE_ID + } + ] + ]; + acc.loyal_level_items[item._id] = 1; + return acc; + }, + { + items: [], barter_scheme: {}, loyal_level_items: {} + } + ); + } +} + +module.exports = { mod: new SampleTrader() } \ No newline at end of file diff --git a/TypeScript/11AddTrader/tsconfig.json b/TypeScript/11AddTrader/tsconfig.json new file mode 100644 index 0000000..8ba3117 --- /dev/null +++ b/TypeScript/11AddTrader/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "allowJs": true, + "module": "CommonJS", + "target": "es2020", + "moduleResolution": "node", + "esModuleInterop": true, + "downlevelIteration": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "resolveJsonModule": true, + "outDir": "out" + }, + "lib": [ + "es2020" + ], + "include": [ + "src/*", + "src/**/*" + ] +} \ No newline at end of file diff --git a/TypeScript/11AddTrader/types/Program.d.ts b/TypeScript/11AddTrader/types/Program.d.ts new file mode 100644 index 0000000..d4b71b9 --- /dev/null +++ b/TypeScript/11AddTrader/types/Program.d.ts @@ -0,0 +1,4 @@ +export declare class Program { + constructor(); + start(): void; +} diff --git a/TypeScript/11AddTrader/types/TYPES.d.ts b/TypeScript/11AddTrader/types/TYPES.d.ts new file mode 100644 index 0000000..6407c3a --- /dev/null +++ b/TypeScript/11AddTrader/types/TYPES.d.ts @@ -0,0 +1,3 @@ +export declare const TYPES: { + [name: string]: symbol; +}; diff --git a/TypeScript/11AddTrader/types/Utils.d.ts b/TypeScript/11AddTrader/types/Utils.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/TypeScript/11AddTrader/types/callbacks/BotCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/BotCallbacks.d.ts new file mode 100644 index 0000000..9602975 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/BundleCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/BundleCallbacks.d.ts new file mode 100644 index 0000000..b007ab8 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/CustomizationCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/CustomizationCallbacks.d.ts new file mode 100644 index 0000000..918b8b6 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/DataCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/DataCallbacks.d.ts new file mode 100644 index 0000000..018420e --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/DialogueCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/DialogueCallbacks.d.ts new file mode 100644 index 0000000..3b6fbd1 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/GameCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/GameCallbacks.d.ts new file mode 100644 index 0000000..44a30ea --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/HandbookCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/HandbookCallbacks.d.ts new file mode 100644 index 0000000..0db5fec --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/HealthCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/HealthCallbacks.d.ts new file mode 100644 index 0000000..a50dd42 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/HideoutCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/HideoutCallbacks.d.ts new file mode 100644 index 0000000..3698176 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/HttpCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/HttpCallbacks.d.ts new file mode 100644 index 0000000..9fe387d --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/InraidCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/InraidCallbacks.d.ts new file mode 100644 index 0000000..2d53227 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/InsuranceCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/InsuranceCallbacks.d.ts new file mode 100644 index 0000000..79feb67 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/InventoryCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/InventoryCallbacks.d.ts new file mode 100644 index 0000000..9795aa0 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/ItemEventCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/ItemEventCallbacks.d.ts new file mode 100644 index 0000000..74e79c4 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/LauncherCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/LauncherCallbacks.d.ts new file mode 100644 index 0000000..4bd5e2c --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/LocationCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/LocationCallbacks.d.ts new file mode 100644 index 0000000..5ecab74 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/MatchCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/MatchCallbacks.d.ts new file mode 100644 index 0000000..63d38d9 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/ModCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/ModCallbacks.d.ts new file mode 100644 index 0000000..2011f0e --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/NoteCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/NoteCallbacks.d.ts new file mode 100644 index 0000000..fd7c5ca --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/NotifierCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/NotifierCallbacks.d.ts new file mode 100644 index 0000000..416e6a3 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/PresetBuildCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/PresetBuildCallbacks.d.ts new file mode 100644 index 0000000..639c33f --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/PresetCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/PresetCallbacks.d.ts new file mode 100644 index 0000000..f62afd6 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/ProfileCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/ProfileCallbacks.d.ts new file mode 100644 index 0000000..efce47d --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/QuestCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/QuestCallbacks.d.ts new file mode 100644 index 0000000..f742096 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/RagfairCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/RagfairCallbacks.d.ts new file mode 100644 index 0000000..152475f --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/RepairCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/RepairCallbacks.d.ts new file mode 100644 index 0000000..f63ec18 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/SaveCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/SaveCallbacks.d.ts new file mode 100644 index 0000000..b7219a0 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/TradeCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/TradeCallbacks.d.ts new file mode 100644 index 0000000..9928951 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/TraderCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/TraderCallbacks.d.ts new file mode 100644 index 0000000..2a8af7f --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/WeatherCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/WeatherCallbacks.d.ts new file mode 100644 index 0000000..e40ab3e --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/callbacks/WishlistCallbacks.d.ts b/TypeScript/11AddTrader/types/callbacks/WishlistCallbacks.d.ts new file mode 100644 index 0000000..e0249fd --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/controllers/BotController.d.ts b/TypeScript/11AddTrader/types/controllers/BotController.d.ts new file mode 100644 index 0000000..8ecb97f --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/controllers/CustomizationController.d.ts b/TypeScript/11AddTrader/types/controllers/CustomizationController.d.ts new file mode 100644 index 0000000..6fd3b12 --- /dev/null +++ b/TypeScript/11AddTrader/types/controllers/CustomizationController.d.ts @@ -0,0 +1,22 @@ +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 { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +import { ILogger } from "../models/spt/utils/ILogger"; +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/TypeScript/11AddTrader/types/controllers/DialogueController.d.ts b/TypeScript/11AddTrader/types/controllers/DialogueController.d.ts new file mode 100644 index 0000000..8cf2531 --- /dev/null +++ b/TypeScript/11AddTrader/types/controllers/DialogueController.d.ts @@ -0,0 +1,24 @@ +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 removeExpiredItems; + update(): void; +} diff --git a/TypeScript/11AddTrader/types/controllers/GameController.d.ts b/TypeScript/11AddTrader/types/controllers/GameController.d.ts new file mode 100644 index 0000000..5c9a464 --- /dev/null +++ b/TypeScript/11AddTrader/types/controllers/GameController.d.ts @@ -0,0 +1,20 @@ +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; + getGameConfig(sessionID: string): IGameConfigResponse; + getServer(): any[]; + private getActiveRepeatableQuests; +} diff --git a/TypeScript/11AddTrader/types/controllers/HandbookController.d.ts b/TypeScript/11AddTrader/types/controllers/HandbookController.d.ts new file mode 100644 index 0000000..5a55e89 --- /dev/null +++ b/TypeScript/11AddTrader/types/controllers/HandbookController.d.ts @@ -0,0 +1,8 @@ +import { DatabaseServer } from "../servers/DatabaseServer"; +import { HandbookHelper } from "../helpers/HandbookHelper"; +export declare class HandbookController { + private databaseServer; + private handbookHelper; + constructor(databaseServer: DatabaseServer, handbookHelper: HandbookHelper); + load(): void; +} diff --git a/TypeScript/11AddTrader/types/controllers/HealthController.d.ts b/TypeScript/11AddTrader/types/controllers/HealthController.d.ts new file mode 100644 index 0000000..ca049f6 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/controllers/HideoutController.d.ts b/TypeScript/11AddTrader/types/controllers/HideoutController.d.ts new file mode 100644 index 0000000..f35c23b --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/controllers/InraidController.d.ts b/TypeScript/11AddTrader/types/controllers/InraidController.d.ts new file mode 100644 index 0000000..c1cd6f5 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/controllers/InsuranceController.d.ts b/TypeScript/11AddTrader/types/controllers/InsuranceController.d.ts new file mode 100644 index 0000000..b175a06 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/controllers/InventoryController.d.ts b/TypeScript/11AddTrader/types/controllers/InventoryController.d.ts new file mode 100644 index 0000000..8235082 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/controllers/LauncherController.d.ts b/TypeScript/11AddTrader/types/controllers/LauncherController.d.ts new file mode 100644 index 0000000..2a30713 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/controllers/LocationController.d.ts b/TypeScript/11AddTrader/types/controllers/LocationController.d.ts new file mode 100644 index 0000000..dde270c --- /dev/null +++ b/TypeScript/11AddTrader/types/controllers/LocationController.d.ts @@ -0,0 +1,18 @@ +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 { JsonUtil } from "../utils/JsonUtil"; +import { TimeUtil } from "../utils/TimeUtil"; +import { ILogger } from "../models/spt/utils/ILogger"; +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/TypeScript/11AddTrader/types/controllers/MatchController.d.ts b/TypeScript/11AddTrader/types/controllers/MatchController.d.ts new file mode 100644 index 0000000..84abbe3 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/controllers/NoteController.d.ts b/TypeScript/11AddTrader/types/controllers/NoteController.d.ts new file mode 100644 index 0000000..ecd8001 --- /dev/null +++ b/TypeScript/11AddTrader/types/controllers/NoteController.d.ts @@ -0,0 +1,12 @@ +import { IPmcData } from "../models/eft/common/IPmcData"; +import { INoteActionData } from "../models/eft/notes/INoteActionData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +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/TypeScript/11AddTrader/types/controllers/NotifierController.d.ts b/TypeScript/11AddTrader/types/controllers/NotifierController.d.ts new file mode 100644 index 0000000..36fef66 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/controllers/PresetBuildController.d.ts b/TypeScript/11AddTrader/types/controllers/PresetBuildController.d.ts new file mode 100644 index 0000000..a15b181 --- /dev/null +++ b/TypeScript/11AddTrader/types/controllers/PresetBuildController.d.ts @@ -0,0 +1,18 @@ +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 { WeaponBuild } from "../models/eft/profile/IAkiProfile"; +import { HashUtil } from "../utils/HashUtil"; +import { ItemEventRouter } from "../routers/ItemEventRouter"; +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/TypeScript/11AddTrader/types/controllers/PresetController.d.ts b/TypeScript/11AddTrader/types/controllers/PresetController.d.ts new file mode 100644 index 0000000..6ec8c55 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/controllers/ProfileController.d.ts b/TypeScript/11AddTrader/types/controllers/ProfileController.d.ts new file mode 100644 index 0000000..46b66d8 --- /dev/null +++ b/TypeScript/11AddTrader/types/controllers/ProfileController.d.ts @@ -0,0 +1,34 @@ +import { SaveServer } from "../servers/SaveServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { ItemHelper } from "../helpers/ItemHelper"; +import { TraderHelper } from "../helpers/TraderHelper"; +import { IPmcData } from "../models/eft/common/IPmcData"; +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 { 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; + 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/TypeScript/11AddTrader/types/controllers/QuestController.d.ts b/TypeScript/11AddTrader/types/controllers/QuestController.d.ts new file mode 100644 index 0000000..d8caee5 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/controllers/RagfairController.d.ts b/TypeScript/11AddTrader/types/controllers/RagfairController.d.ts new file mode 100644 index 0000000..5b94a95 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/controllers/RepairController.d.ts b/TypeScript/11AddTrader/types/controllers/RepairController.d.ts new file mode 100644 index 0000000..77dd47a --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/controllers/RepeatableQuestController.d.ts b/TypeScript/11AddTrader/types/controllers/RepeatableQuestController.d.ts new file mode 100644 index 0000000..a33ad62 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/controllers/TradeController.d.ts b/TypeScript/11AddTrader/types/controllers/TradeController.d.ts new file mode 100644 index 0000000..f0a177b --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/controllers/TraderController.d.ts b/TypeScript/11AddTrader/types/controllers/TraderController.d.ts new file mode 100644 index 0000000..36eac75 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/controllers/WeatherController.d.ts b/TypeScript/11AddTrader/types/controllers/WeatherController.d.ts new file mode 100644 index 0000000..312c3a3 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/controllers/WishlistController.d.ts b/TypeScript/11AddTrader/types/controllers/WishlistController.d.ts new file mode 100644 index 0000000..5ef8df3 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/di/Container.d.ts b/TypeScript/11AddTrader/types/di/Container.d.ts new file mode 100644 index 0000000..17791b0 --- /dev/null +++ b/TypeScript/11AddTrader/types/di/Container.d.ts @@ -0,0 +1,14 @@ +import { DependencyContainer } from "tsyringe"; +export declare class Container { + static registerTypes(depContainer: DependencyContainer): void; + static registerListTypes(depContainer: DependencyContainer): void; + private static registerUtils; + private static registerRouters; + private static registerGenerators; + private static registerHelpers; + private static registerLoaders; + private static registerCallbacks; + private static registerServices; + private static registerServers; + private static registerControllers; +} diff --git a/TypeScript/11AddTrader/types/di/OnLoad.d.ts b/TypeScript/11AddTrader/types/di/OnLoad.d.ts new file mode 100644 index 0000000..064d07d --- /dev/null +++ b/TypeScript/11AddTrader/types/di/OnLoad.d.ts @@ -0,0 +1,4 @@ +export declare class OnLoad { + onLoad(): void; + getRoute(): string; +} diff --git a/TypeScript/11AddTrader/types/di/OnLoadOnUpdate.d.ts b/TypeScript/11AddTrader/types/di/OnLoadOnUpdate.d.ts new file mode 100644 index 0000000..8bd3dc3 --- /dev/null +++ b/TypeScript/11AddTrader/types/di/OnLoadOnUpdate.d.ts @@ -0,0 +1,7 @@ +import { OnLoad } from "./OnLoad"; +import { OnUpdate } from "./OnUpdate"; +export declare class OnLoadOnUpdate implements OnLoad, OnUpdate { + onUpdate(timeSinceLastRun: number): boolean; + onLoad(): void; + getRoute(): string; +} diff --git a/TypeScript/11AddTrader/types/di/OnUpdate.d.ts b/TypeScript/11AddTrader/types/di/OnUpdate.d.ts new file mode 100644 index 0000000..7fbbe09 --- /dev/null +++ b/TypeScript/11AddTrader/types/di/OnUpdate.d.ts @@ -0,0 +1,4 @@ +export declare class OnUpdate { + onUpdate(timeSinceLastRun: number): boolean; + getRoute(): string; +} diff --git a/TypeScript/11AddTrader/types/di/Router.d.ts b/TypeScript/11AddTrader/types/di/Router.d.ts new file mode 100644 index 0000000..2fb98e0 --- /dev/null +++ b/TypeScript/11AddTrader/types/di/Router.d.ts @@ -0,0 +1,40 @@ +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IAkiProfile } from "../models/eft/profile/IAkiProfile"; +export declare class Router { + private handledRoutes; + getTopLevelRoute(): string; + protected getHandledRoutes(): HandledRoute[]; + private getInternalHandledRoutes; + canHandle(url: string, partialMatch?: boolean): boolean; +} +export declare class StaticRouter extends Router { + private routes; + constructor(routes: RouteAction[]); + handleStatic(url: string, info: any, sessionID: string, output: string): any; + getHandledRoutes(): HandledRoute[]; +} +export declare class DynamicRouter extends Router { + private routes; + constructor(routes: RouteAction[]); + handleDynamic(url: string, info: any, sessionID: string, output: string): any; + getHandledRoutes(): HandledRoute[]; +} +export declare class ItemEventRouterDefinition extends Router { + constructor(); + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} +export declare class SaveLoadRouter extends Router { + constructor(); + handleLoad(profile: IAkiProfile): IAkiProfile; +} +export declare class HandledRoute { + route: string; + dynamic: boolean; + constructor(route: string, dynamic: boolean); +} +export declare class RouteAction { + url: string; + action: (url: string, info: any, sessionID: string, output: string) => any; + constructor(url: string, action: (url: string, info: any, sessionID: string, output: string) => any); +} diff --git a/TypeScript/11AddTrader/types/di/Serializer.d.ts b/TypeScript/11AddTrader/types/di/Serializer.d.ts new file mode 100644 index 0000000..70aa7c5 --- /dev/null +++ b/TypeScript/11AddTrader/types/di/Serializer.d.ts @@ -0,0 +1,5 @@ +import { IHttpServer } from "../models/spt/server/IHttpServer"; +export declare class Serializer { + serialize(sessionID: string, req: any, resp: any, body: any, httpServer: IHttpServer): void; + canHandle(something: string): boolean; +} diff --git a/TypeScript/11AddTrader/types/generators/BotGenerator.d.ts b/TypeScript/11AddTrader/types/generators/BotGenerator.d.ts new file mode 100644 index 0000000..e2565b7 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/generators/BotInventoryGenerator.d.ts b/TypeScript/11AddTrader/types/generators/BotInventoryGenerator.d.ts new file mode 100644 index 0000000..0cdbacb --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/generators/BotLootGenerator.d.ts b/TypeScript/11AddTrader/types/generators/BotLootGenerator.d.ts new file mode 100644 index 0000000..1d8c8e1 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/generators/BotWeaponGenerator.d.ts b/TypeScript/11AddTrader/types/generators/BotWeaponGenerator.d.ts new file mode 100644 index 0000000..e8f91cb --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/generators/LocationGenerator.d.ts b/TypeScript/11AddTrader/types/generators/LocationGenerator.d.ts new file mode 100644 index 0000000..4b96792 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/generators/PMCLootGenerator.d.ts b/TypeScript/11AddTrader/types/generators/PMCLootGenerator.d.ts new file mode 100644 index 0000000..601431b --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/generators/RagfairAssortGenerator.d.ts b/TypeScript/11AddTrader/types/generators/RagfairAssortGenerator.d.ts new file mode 100644 index 0000000..1897050 --- /dev/null +++ b/TypeScript/11AddTrader/types/generators/RagfairAssortGenerator.d.ts @@ -0,0 +1,17 @@ +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); + getAssortItems(): Item[]; + private assortsAreGenerated; + private generateRagfairAssortItems; + private createRagfairAssortItem; +} diff --git a/TypeScript/11AddTrader/types/generators/RagfairOfferGenerator.d.ts b/TypeScript/11AddTrader/types/generators/RagfairOfferGenerator.d.ts new file mode 100644 index 0000000..2939b3a --- /dev/null +++ b/TypeScript/11AddTrader/types/generators/RagfairOfferGenerator.d.ts @@ -0,0 +1,51 @@ +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; + 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/TypeScript/11AddTrader/types/generators/WeatherGenerator.d.ts b/TypeScript/11AddTrader/types/generators/WeatherGenerator.d.ts new file mode 100644 index 0000000..b9faa3a --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/AssortHelper.d.ts b/TypeScript/11AddTrader/types/helpers/AssortHelper.d.ts new file mode 100644 index 0000000..33cb5c6 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/BotGeneratorHelper.d.ts b/TypeScript/11AddTrader/types/helpers/BotGeneratorHelper.d.ts new file mode 100644 index 0000000..141f71d --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/BotHelper.d.ts b/TypeScript/11AddTrader/types/helpers/BotHelper.d.ts new file mode 100644 index 0000000..d901362 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/ContainerHelper.d.ts b/TypeScript/11AddTrader/types/helpers/ContainerHelper.d.ts new file mode 100644 index 0000000..34cd1e4 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/DialogueHelper.d.ts b/TypeScript/11AddTrader/types/helpers/DialogueHelper.d.ts new file mode 100644 index 0000000..ae1f581 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/DurabilityLimitsHelper.d.ts b/TypeScript/11AddTrader/types/helpers/DurabilityLimitsHelper.d.ts new file mode 100644 index 0000000..609bc7d --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/ExtendedProfileHelper.d.ts b/TypeScript/11AddTrader/types/helpers/ExtendedProfileHelper.d.ts new file mode 100644 index 0000000..4dd7d3a --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/GameEventHelper.d.ts b/TypeScript/11AddTrader/types/helpers/GameEventHelper.d.ts new file mode 100644 index 0000000..8131d31 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/HandbookHelper.d.ts b/TypeScript/11AddTrader/types/helpers/HandbookHelper.d.ts new file mode 100644 index 0000000..aed6984 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/HealthHelper.d.ts b/TypeScript/11AddTrader/types/helpers/HealthHelper.d.ts new file mode 100644 index 0000000..bb160a3 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/HideoutHelper.d.ts b/TypeScript/11AddTrader/types/helpers/HideoutHelper.d.ts new file mode 100644 index 0000000..5b4a5ad --- /dev/null +++ b/TypeScript/11AddTrader/types/helpers/HideoutHelper.d.ts @@ -0,0 +1,64 @@ +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 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/TypeScript/11AddTrader/types/helpers/HttpServerHelper.d.ts b/TypeScript/11AddTrader/types/helpers/HttpServerHelper.d.ts new file mode 100644 index 0000000..2e40814 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/InRaidHelper.d.ts b/TypeScript/11AddTrader/types/helpers/InRaidHelper.d.ts new file mode 100644 index 0000000..e79d384 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/InventoryHelper.d.ts b/TypeScript/11AddTrader/types/helpers/InventoryHelper.d.ts new file mode 100644 index 0000000..00e95d3 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/ItemHelper.d.ts b/TypeScript/11AddTrader/types/helpers/ItemHelper.d.ts new file mode 100644 index 0000000..5ff64b6 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/NotificationSendHelper.d.ts b/TypeScript/11AddTrader/types/helpers/NotificationSendHelper.d.ts new file mode 100644 index 0000000..b9298da --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/NotifierHelper.d.ts b/TypeScript/11AddTrader/types/helpers/NotifierHelper.d.ts new file mode 100644 index 0000000..0d524e9 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/PaymentHelper.d.ts b/TypeScript/11AddTrader/types/helpers/PaymentHelper.d.ts new file mode 100644 index 0000000..2d068a4 --- /dev/null +++ b/TypeScript/11AddTrader/types/helpers/PaymentHelper.d.ts @@ -0,0 +1,14 @@ +export declare class PaymentHelper { + /** + * Check whether tpl is Money + * @param {string} tpl + * @returns void + */ + isMoneyTpl(tpl: string): boolean; + /** + * Gets currency TPL from TAG + * @param {string} currency + * @returns string + */ + getCurrency(currency: string): string; +} diff --git a/TypeScript/11AddTrader/types/helpers/PresetHelper.d.ts b/TypeScript/11AddTrader/types/helpers/PresetHelper.d.ts new file mode 100644 index 0000000..0a24128 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/ProfileHelper.d.ts b/TypeScript/11AddTrader/types/helpers/ProfileHelper.d.ts new file mode 100644 index 0000000..508443c --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/QuestConditionHelper.d.ts b/TypeScript/11AddTrader/types/helpers/QuestConditionHelper.d.ts new file mode 100644 index 0000000..2a0ee94 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/QuestHelper.d.ts b/TypeScript/11AddTrader/types/helpers/QuestHelper.d.ts new file mode 100644 index 0000000..9e2dd5e --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/RagfairHelper.d.ts b/TypeScript/11AddTrader/types/helpers/RagfairHelper.d.ts new file mode 100644 index 0000000..8e70bcd --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/RagfairOfferHelper.d.ts b/TypeScript/11AddTrader/types/helpers/RagfairOfferHelper.d.ts new file mode 100644 index 0000000..3bf8add --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/RagfairSellHelper.d.ts b/TypeScript/11AddTrader/types/helpers/RagfairSellHelper.d.ts new file mode 100644 index 0000000..929d112 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/RagfairServerHelper.d.ts b/TypeScript/11AddTrader/types/helpers/RagfairServerHelper.d.ts new file mode 100644 index 0000000..aca9651 --- /dev/null +++ b/TypeScript/11AddTrader/types/helpers/RagfairServerHelper.d.ts @@ -0,0 +1,39 @@ +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); + isItemValidRagfairItem(itemDetails: [boolean, ITemplateItem]): boolean; + isItemBlacklisted(itemTemplateId: string): boolean; + isTrader(userID: string): boolean; + isPlayer(userID: string): boolean; + returnItems(sessionID: string, items: any[]): void; + calculateDynamicStackCount(tplId: string, isWeaponPreset: boolean): number; + getDynamicOfferCurrency(): string; + getMemberType(userID: string): MemberCategory; + getNickname(userID: string): string; + getPresetItems(item: any): Item[]; + getPresetItemsByTpl(item: Item): Item[]; + reparentPresets(item: Item, preset: Item[]): Item[]; +} diff --git a/TypeScript/11AddTrader/types/helpers/RagfairSortHelper.d.ts b/TypeScript/11AddTrader/types/helpers/RagfairSortHelper.d.ts new file mode 100644 index 0000000..e9d8069 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/RagfairTaxHelper.d.ts b/TypeScript/11AddTrader/types/helpers/RagfairTaxHelper.d.ts new file mode 100644 index 0000000..e87334f --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/RepairHelper.d.ts b/TypeScript/11AddTrader/types/helpers/RepairHelper.d.ts new file mode 100644 index 0000000..47123e1 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/SecureContainerHelper.d.ts b/TypeScript/11AddTrader/types/helpers/SecureContainerHelper.d.ts new file mode 100644 index 0000000..8f246b6 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/TradeHelper.d.ts b/TypeScript/11AddTrader/types/helpers/TradeHelper.d.ts new file mode 100644 index 0000000..a78cd20 --- /dev/null +++ b/TypeScript/11AddTrader/types/helpers/TradeHelper.d.ts @@ -0,0 +1,31 @@ +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); + buyItem(pmcData: IPmcData, buyRequestData: IProcessBuyTradeRequestData, sessionID: string, foundInRaid: boolean, upd: Upd): IItemEventRouterResponse; + /** + * Selling item to trader + */ + sellItem(pmcData: IPmcData, body: IProcessSellTradeRequestData, sessionID: string): IItemEventRouterResponse; + private incrementAssortBuyCount; + private checkPurchaseIsWithinTraderItemLimit; +} diff --git a/TypeScript/11AddTrader/types/helpers/TraderAssortHelper.d.ts b/TypeScript/11AddTrader/types/helpers/TraderAssortHelper.d.ts new file mode 100644 index 0000000..d95879c --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/TraderHelper.d.ts b/TypeScript/11AddTrader/types/helpers/TraderHelper.d.ts new file mode 100644 index 0000000..ec64d59 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/helpers/UtilityHelper.d.ts b/TypeScript/11AddTrader/types/helpers/UtilityHelper.d.ts new file mode 100644 index 0000000..5d9f482 --- /dev/null +++ b/TypeScript/11AddTrader/types/helpers/UtilityHelper.d.ts @@ -0,0 +1,3 @@ +export declare class UtilityHelper { + arrayIntersect(a: T[], b: T[]): T[]; +} diff --git a/TypeScript/11AddTrader/types/helpers/WeightedRandomHelper.d.ts b/TypeScript/11AddTrader/types/helpers/WeightedRandomHelper.d.ts new file mode 100644 index 0000000..9aa0d29 --- /dev/null +++ b/TypeScript/11AddTrader/types/helpers/WeightedRandomHelper.d.ts @@ -0,0 +1,28 @@ +export declare class WeightedRandomHelper { + /** + * Gets a tplId from a weighted dictionary + * @param {tplId: weighting[]} itemArray + * @returns tplId + */ + getWeightedInventoryItem(itemArray: { + [tplId: string]: unknown; + } | ArrayLike): string; + /** + * Picks the random item based on its weight. + * The items with higher weight will be picked more often (with a higher probability). + * + * For example: + * - items = ['banana', 'orange', 'apple'] + * - weights = [0, 0.2, 0.8] + * - weightedRandom(items, weights) in 80% of cases will return 'apple', in 20% of cases will return + * 'orange' and it will never return 'banana' (because probability of picking the banana is 0%) + * + * @param {any[]} items + * @param {number[]} weights + * @returns {{item: any, index: number}} + */ + weightedRandom(items: string | any[], weights: string | any[]): { + item: any; + index: number; + }; +} diff --git a/TypeScript/11AddTrader/types/ide/Compiler.d.ts b/TypeScript/11AddTrader/types/ide/Compiler.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/TypeScript/11AddTrader/types/ide/Compiler.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/TypeScript/11AddTrader/types/ide/DebugEntry.d.ts b/TypeScript/11AddTrader/types/ide/DebugEntry.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/TypeScript/11AddTrader/types/ide/DebugEntry.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/TypeScript/11AddTrader/types/ide/ReleaseEntry.d.ts b/TypeScript/11AddTrader/types/ide/ReleaseEntry.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/TypeScript/11AddTrader/types/ide/ReleaseEntry.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/TypeScript/11AddTrader/types/ide/TestEntry.d.ts b/TypeScript/11AddTrader/types/ide/TestEntry.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/TypeScript/11AddTrader/types/ide/TestEntry.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/TypeScript/11AddTrader/types/loaders/BundleLoader.d.ts b/TypeScript/11AddTrader/types/loaders/BundleLoader.d.ts new file mode 100644 index 0000000..9abfe9f --- /dev/null +++ b/TypeScript/11AddTrader/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 { + private httpServerHelper; + key: string; + path: string; + filepath: string; + dependencyKeys: string[]; + constructor(modpath: string, bundle: any, httpServerHelper: HttpServerHelper); +} +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/TypeScript/11AddTrader/types/loaders/DelayedModLoader.d.ts b/TypeScript/11AddTrader/types/loaders/DelayedModLoader.d.ts new file mode 100644 index 0000000..7d0009f --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/loaders/InitialModLoader.d.ts b/TypeScript/11AddTrader/types/loaders/InitialModLoader.d.ts new file mode 100644 index 0000000..8168cec --- /dev/null +++ b/TypeScript/11AddTrader/types/loaders/InitialModLoader.d.ts @@ -0,0 +1,39 @@ +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; + private isModCombatibleWithAki; + private executeMods; + private sortModsLoadOrder; + private addMod; + private areModDependenciesFulfilled; + private isModCompatible; + private validMod; + private getLoadOrderRecursive; + private getLoadOrder; + getContainer(): DependencyContainer; +} diff --git a/TypeScript/11AddTrader/types/models/eft/bot/IGenerateBotsRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/bot/IGenerateBotsRequestData.d.ts new file mode 100644 index 0000000..c49cef7 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/bot/IGenerateBotsRequestData.d.ts @@ -0,0 +1,8 @@ +export interface IGenerateBotsRequestData { + conditions: Condition[]; +} +export interface Condition { + Role: string; + Limit: number; + Difficulty: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/IEmptyRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/common/IEmptyRequestData.d.ts new file mode 100644 index 0000000..284d16e --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/IEmptyRequestData.d.ts @@ -0,0 +1,2 @@ +export interface IEmptyRequestData { +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/IGlobals.d.ts b/TypeScript/11AddTrader/types/models/eft/common/IGlobals.d.ts new file mode 100644 index 0000000..456895c --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/IGlobals.d.ts @@ -0,0 +1,1176 @@ +import { Item } from "./tables/IItem"; +export interface IGlobals { + time: number; + config: Config; + bot_presets: BotPreset[]; + BotWeaponScatterings: BotWeaponScattering[]; + ItemPresets: Record; +} +export interface Config { + content: Content; + AimPunchMagnitude: number; + WeaponSkillProgressRate: number; + SkillAtrophy: boolean; + exp: Exp; + t_base_looting: number; + t_base_lockpicking: number; + armor: Armor; + SessionsToShowHotKeys: number; + MaxBotsAliveOnMap: number; + SavagePlayCooldown: number; + SavagePlayCooldownNdaFree: number; + MarksmanAccuracy: number; + SavagePlayCooldownDevelop: number; + TODSkyDate: string; + Mastering: Mastering[]; + GlobalItemPriceModifier: number; + TradingUnlimitedItems: boolean; + MaxLoyaltyLevelForAll: boolean; + GlobalLootChanceModifier: number; + TimeBeforeDeploy: number; + TimeBeforeDeployLocal: number; + LoadTimeSpeedProgress: number; + BaseLoadTime: number; + BaseUnloadTime: number; + BaseCheckTime: number; + Customization: Customization; + UncheckOnShot: boolean; + BotsEnabled: boolean; + ArmorMaterials: ArmorMaterials; + LegsOverdamage: number; + HandsOverdamage: number; + StomachOverdamage: number; + Health: Health; + rating: Rating; + tournament: Tournament; + RagFair: RagFair; + handbook: Handbook; + FractureCausedByFalling: Probability; + FractureCausedByBulletHit: Probability; + WAVE_COEF_LOW: number; + WAVE_COEF_MID: number; + WAVE_COEF_HIGH: number; + WAVE_COEF_HORDE: number; + Stamina: Stamina; + StaminaRestoration: StaminaRestoration; + StaminaDrain: StaminaDrain; + RequirementReferences: RequirementReferences; + RepairKitSettings: RepairKitSettings; + RestrictionsInRaid: RestrictionsInRaid[]; + SkillMinEffectiveness: number; + SkillFatiguePerPoint: number; + SkillFreshEffectiveness: number; + SkillFreshPoints: number; + SkillPointsBeforeFatigue: number; + SkillFatigueReset: number; + DiscardLimitsEnabled: boolean; + EventType: string[]; + WalkSpeed: xyz; + SprintSpeed: xyz; + SkillEnduranceWeightThreshold: number; + TeamSearchingTimeout: number; + Insurance: Insurance; + SkillExpPerLevel: number; + GameSearchingTimeout: number; + WallContusionAbsorption: xyz; + SkillsSettings: SkillsSettings; + AzimuthPanelShowsPlayerOrientation: boolean; + Aiming: Aiming; + Malfunction: Malfunction; + Overheat: Overheat; + FenceSettings: FenceSettings; + TestValue: number; + Inertia: Inertia; + Ballistic: Ballistic; +} +export interface Content { + ip: string; + port: number; + root: string; +} +export interface Exp { + heal: Heal; + match_end: MatchEnd; + kill: Kill; + level: Level; + loot_attempts: LootAttempt[]; + expForLockedDoorOpen: number; + expForLockedDoorBreach: number; + triggerMult: number; +} +export interface Heal { + expForHeal: number; + expForHydration: number; + expForEnergy: number; +} +export interface MatchEnd { + README: string; + survived_exp_requirement: number; + survived_seconds_requirement: number; + survived_exp_reward: number; + mia_exp_reward: number; + runner_exp_reward: number; + leftMult: number; + miaMult: number; + survivedMult: number; + runnerMult: number; + killedMult: number; +} +export interface Kill { + combo: Combo[]; + victimLevelExp: number; + headShotMult: number; + expOnDamageAllHealth: number; + longShotDistance: number; + bloodLossToLitre: number; + victimBotLevelExp: number; +} +export interface Combo { + percent: number; +} +export interface Level { + exp_table: ExpTable[]; + trade_level: number; + savage_level: number; + clan_level: number; + mastering1: number; + mastering2: number; +} +export interface ExpTable { + exp: number; +} +export interface LootAttempt { + k_exp: number; +} +export interface Armor { + class: Class[]; +} +export interface Class { + resistance: number; +} +export interface Mastering { + Name: string; + Templates: string[]; + Level2: number; + Level3: number; +} +export interface Customization { + SavageHead: SavageHead; + SavageBody: SavageBody; + SavageFeet: SavageFeet; + CustomizationVoice: CustomizationVoice[]; + BodyParts: BodyParts; +} +export interface SavageHead { + wild_head_1: WildHead; + wild_head_2: WildHead; + wild_head_3: WildHead; + Wild_Dealmaker_head: WildHead; + Wild_Killa_head: WildHead; + bear_head: WildHead; + bear_head_1: WildHead; + usec_head_1: WildHead; + Head_BOSS_Glukhar: WildHead; + Wild_Head_nonMesh: WildHead; + Head_BOSS_Sanitar: WildHead; + wild_head_drozd: WildHead; + wild_head_misha: WildHead; + head_cultist_01: WildHead; + head_cultist_02: WildHead; + head_cultist_03: WildHead; + DefaultUsecHead: WildHead; + usec_head_3: WildHead; + usec_head_4: WildHead; + usec_head_5: WildHead; +} +export interface WildHead { + head: string; + isNotRandom: boolean; + NotRandom: boolean; +} +export interface SavageBody { + wild_body: WildBody; + wild_body_1: WildBody; + wild_body_2: WildBody; + wild_body_3: WildBody; + Wild_Dealmaker_body: WildBody; + wild_security_body_1: WildBody; + wild_security_body_2: WildBody; + wild_Killa_body: WildBody; + wild_pmcBot_body: WildBody; + wild_Shturman_body: WildBody; + wild_Gluhar_body: WildBody; + Tshirt_security_TshirtTatu_01: WildBody; + Tshirt_security_TshirtTatu_02: WildBody; + Top_security_Husky: WildBody; + Top_security_Gorka4: WildBody; + scav_kit_upper_meteor: WildBody; + wild_body_russia1: WildBody; + Top_BOSS_Sanitar: WildBody; + wild_body_motocross: WildBody; + top_cultist_01: WildBody; + top_cultist_02: WildBody; + wild_body_rainparka: WildBody; + wild_body_underarmour: WildBody; + top_boss_tagilla: WildBody; + DefaultUsecBody: WildBody; + usec_upper_acu: WildBody; + usec_upper_commando: WildBody; + usec_upper_aggressor: WildBody; + usec_upper_hoody: WildBody; + usec_upper_pcuironsight: WildBody; + usec_top_beltstaff: WildBody; + usec_upper_flexion: WildBody; + usec_upper_tier3: WildBody; + usec_upper_pcsmulticam: WildBody; + usec_upper_tier_2: WildBody; + usec_upper_infiltrator: WildBody; + user_upper_NightPatrol: WildBody; + wild_body_bomber: WildBody; + wild_top_yellowcoat: WildBody; +} +export interface WildBody { + body: string; + hands: string; + isNotRandom: boolean; +} +export interface SavageFeet { + wild_feet: WildFeet; + wild_feet_1: WildFeet; + wild_feet_2: WildFeet; + Wild_Dealmaker_feet: WildFeet; + wild_security_feet_1: WildFeet; + Wild_Killa_feet: WildFeet; + wild_pmcBot_feet: WildFeet; + Pants_BOSS_Glukhar: WildFeet; + Pants_BOSS_Shturman: WildFeet; + Pants_security_Gorka4: WildFeet; + Pants_security_Flora: WildFeet; + scav_kit_lower_sklon: WildFeet; + Pants_BOSS_Sanitar: WildFeet; + wild_feet_sweatpants: WildFeet; + wild_feet_wasatch: WildFeet; + wild_feet_slimPants: WildFeet; + pants_cultist_01: WildFeet; + pants_cultist_02: WildFeet; + wild_feet_scavelite_taclite: WildFeet; + pants_boss_tagilla: WildFeet; + wild_feet_bomber: WildFeet; + wild_pants_yellowcoat: WildFeet; +} +export interface WildFeet { + feet: string; + isNotRandom: boolean; + NotRandom: boolean; +} +export interface CustomizationVoice { + voice: string; + side: string[]; + isNotRandom: boolean; +} +export interface BodyParts { + Head: string; + Body: string; + Feet: string; + Hands: string; +} +export interface ArmorMaterials { + UHMWPE: ArmorType; + Aramid: ArmorType; + Combined: ArmorType; + Titan: ArmorType; + Aluminium: ArmorType; + ArmoredSteel: ArmorType; + Ceramic: ArmorType; + Glass: ArmorType; +} +export interface ArmorType { + Destructibility: number; + MinRepairDegradation: number; + MaxRepairDegradation: number; + ExplosionDestructibility: number; + MinRepairKitDegradation: number; + MaxRepairKitDegradation: number; +} +export interface Health { + Falling: Falling; + Effects: Effects; + HealPrice: HealPrice; + ProfileHealthSettings: ProfileHealthSettings; +} +export interface Falling { + DamagePerMeter: number; + SafeHeight: number; +} +export interface Effects { + Existence: Existence; + Dehydration: Dehydration; + BreakPart: BreakPart; + Contusion: Contusion; + Disorientation: Disorientation; + Exhaustion: Exhaustion; + LowEdgeHealth: LowEdgeHealth; + RadExposure: RadExposure; + Stun: Stun; + Intoxication: Intoxication; + Regeneration: Regeneration; + Wound: Wound; + Berserk: Berserk; + Flash: Flash; + MedEffect: MedEffect; + Pain: Pain; + PainKiller: PainKiller; + SandingScreen: SandingScreen; + Stimulator: Stimulator; + Tremor: Tremor; + ChronicStaminaFatigue: ChronicStaminaFatigue; + Fracture: Fracture2; + HeavyBleeding: HeavyBleeding2; + LightBleeding: LightBleeding2; + BodyTemperature: BodyTemperature; +} +export interface Existence { + EnergyLoopTime: number; + HydrationLoopTime: number; + EnergyDamage: number; + HydrationDamage: number; + DestroyedStomachEnergyTimeFactor: number; + DestroyedStomachHydrationTimeFactor: number; +} +export interface Dehydration { + DefaultDelay: number; + DefaultResidueTime: number; + BleedingHealth: number; + BleedingLoopTime: number; + BleedingLifeTime: number; + DamageOnStrongDehydration: number; + StrongDehydrationLoopTime: number; +} +export interface BreakPart { + DefaultDelay: number; + DefaultResidueTime: number; + HealExperience: number; + OfflineDurationMin: number; + OfflineDurationMax: number; + RemovePrice: number; + RemovedAfterDeath: boolean; + BulletHitProbability: Probability; + FallingProbability: Probability; +} +export interface Contusion { + Dummy: number; +} +export interface Disorientation { + Dummy: number; +} +export interface Exhaustion { + DefaultDelay: number; + DefaultResidueTime: number; + Damage: number; + DamageLoopTime: number; +} +export interface LowEdgeHealth { + DefaultDelay: number; + DefaultResidueTime: number; + StartCommonHealth: number; +} +export interface RadExposure { + Damage: number; + DamageLoopTime: number; +} +export interface Stun { + Dummy: number; +} +export interface Intoxication { + DefaultDelay: number; + DefaultResidueTime: number; + DamageHealth: number; + HealthLoopTime: number; + OfflineDurationMin: number; + OfflineDurationMax: number; + RemovedAfterDeath: boolean; + HealExperience: number; + RemovePrice: number; +} +export interface Regeneration { + LoopTime: number; + MinimumHealthPercentage: number; + Energy: number; + Hydration: number; + BodyHealth: BodyHealth; + Influences: Influences; +} +export interface BodyHealth { + Head: BodyHealthValue; + Chest: BodyHealthValue; + Stomach: BodyHealthValue; + LeftArm: BodyHealthValue; + RightArm: BodyHealthValue; + LeftLeg: BodyHealthValue; + RightLeg: BodyHealthValue; +} +export interface BodyHealthValue { + Value: number; +} +export interface Influences { + LightBleeding: Influence; + HeavyBleeding: Influence; + Fracture: Influence; + RadExposure: Influence; + Intoxication: Influence; +} +export interface Influence { + HealthSlowDownPercentage: number; + EnergySlowDownPercentage: number; + HydrationSlowDownPercentage: number; +} +export interface Wound { + WorkingTime: number; + ThresholdMin: number; + ThresholdMax: number; +} +export interface Berserk { + DefaultDelay: number; + WorkingTime: number; + DefaultResidueTime: number; +} +export interface Flash { + Dummy: number; +} +export interface MedEffect { + LoopTime: number; + StartDelay: number; + DrinkStartDelay: number; + FoodStartDelay: number; + DrugsStartDelay: number; + MedKitStartDelay: number; + MedicalStartDelay: number; + StimulatorStartDelay: number; +} +export interface Pain { + TremorDelay: number; + HealExperience: number; +} +export interface PainKiller { + Dummy: number; +} +export interface SandingScreen { + Dummy: number; +} +export interface Stimulator { + BuffLoopTime: number; + Buffs: Buffs; +} +export interface Buffs { + BuffsSJ1TGLabs: Buff[]; + BuffsSJ6TGLabs: Buff[]; + BuffsPropital: Buff[]; + BuffsZagustin: Buff[]; + BuffseTGchange: Buff[]; + BuffsAdrenaline: Buff[]; + BuffsGoldenStarBalm: Buff[]; + Buffs_drink_aquamari: Buff[]; + Buffs_drink_maxenergy: Buff[]; + Buffs_drink_milk: Buff[]; + Buffs_drink_tarcola: Buff[]; + Buffs_drink_hotrod: Buff[]; + Buffs_drink_juice_army: Buff[]; + Buffs_drink_water: Buff[]; + Buffs_food_borodinskiye: Buff[]; + Buffs_food_condensed_milk: Buff[]; + Buffs_food_emelya: Buff[]; + Buffs_food_mayonez: Buff[]; + Buffs_food_mre: Buff[]; + Buffs_food_sugar: Buff[]; + Buffs_drink_vodka: Buff[]; + Buffs_drink_jack: Buff[]; + Buffs_drink_moonshine: Buff[]; + Buffs_drink_purewater: Buff[]; + Buffs_3bTG: Buff[]; + Buffs_AHF1M: Buff[]; + Buffs_L1: Buff[]; + Buffs_MULE: Buff[]; + Buffs_Meldonin: Buff[]; + Buffs_Obdolbos: Buff[]; + Buffs_P22: Buff[]; + Buffs_KultistsToxin: Buff[]; + Buffs_BodyTemperature: Buff[]; + Buffs_Antidote: Buff[]; + Buffs_melee_bleed: Buff[]; + Buffs_melee_blunt: Buff[]; + Buffs_hultafors: Buff[]; + Buffs_drink_vodka_BAD: Buff[]; + Buffs_food_alyonka: Buff[]; + Buffs_food_slippers: Buff[]; + Buffs_knife: Buff[]; +} +export interface Buff { + BuffType: string; + Chance: number; + Delay: number; + Duration: number; + Value: number; + AbsoluteValue: boolean; + SkillName: string; +} +export interface Tremor { + DefaultDelay: number; + DefaultResidueTime: number; +} +export interface ChronicStaminaFatigue { + EnergyRate: number; + WorkingTime: number; + TicksEvery: number; + EnergyRatePerStack: number; +} +export interface Fracture2 { + DefaultDelay: number; + DefaultResidueTime: number; + HealExperience: number; + OfflineDurationMin: number; + OfflineDurationMax: number; + RemovePrice: number; + RemovedAfterDeath: boolean; + BulletHitProbability: Probability; + FallingProbability: Probability; +} +export interface HeavyBleeding2 { + DefaultDelay: number; + DefaultResidueTime: number; + DamageEnergy: number; + DamageHealth: number; + EnergyLoopTime: number; + HealthLoopTime: number; + DamageHealthDehydrated: number; + HealthLoopTimeDehydrated: number; + LifeTimeDehydrated: number; + EliteVitalityDuration: number; + HealExperience: number; + OfflineDurationMin: number; + OfflineDurationMax: number; + RemovePrice: number; + RemovedAfterDeath: boolean; + Probability: Probability; +} +export interface Probability { + FunctionType: string; + K: number; + B: number; + Threshold: number; +} +export interface LightBleeding2 { + DefaultDelay: number; + DefaultResidueTime: number; + DamageEnergy: number; + DamageHealth: number; + EnergyLoopTime: number; + HealthLoopTime: number; + DamageHealthDehydrated: number; + HealthLoopTimeDehydrated: number; + LifeTimeDehydrated: number; + EliteVitalityDuration: number; + HealExperience: number; + OfflineDurationMin: number; + OfflineDurationMax: number; + RemovePrice: number; + RemovedAfterDeath: boolean; + Probability: Probability; +} +export interface BodyTemperature { + DefaultBuildUpTime: number; + DefaultResidueTime: number; + LoopTime: number; +} +export interface HealPrice { + HealthPointPrice: number; + HydrationPointPrice: number; + EnergyPointPrice: number; + TrialLevels: number; + TrialRaids: number; +} +export interface ProfileHealthSettings { + BodyPartsSettings: BodyPartsSettings; + HealthFactorsSettings: HealthFactorsSettings; +} +export interface BodyPartsSettings { + Head: BodyPartsSetting; + Chest: BodyPartsSetting; + Stomach: BodyPartsSetting; + LeftArm: BodyPartsSetting; + RightArm: BodyPartsSetting; + LeftLeg: BodyPartsSetting; + RightLeg: BodyPartsSetting; +} +export interface BodyPartsSetting { + Minimum: number; + Maximum: number; + Default: number; + OverDamageReceivedMultiplier: number; +} +export interface HealthFactorsSettings { + Energy: HealthFactorSetting; + Hydration: HealthFactorSetting; + Temperature: HealthFactorSetting; + Poisoning: HealthFactorSetting; + Radiation: HealthFactorSetting; +} +export interface HealthFactorSetting { + Minimum: number; + Maximum: number; + Default: number; +} +export interface Rating { + levelRequired: number; + limit: number; + categories: Categories; +} +export interface Categories { + experience: boolean; + kd: boolean; + surviveRatio: boolean; + avgEarnings: boolean; + kills: boolean; + raidCount: boolean; + longestShot: boolean; + timeOnline: boolean; + inventoryFullCost: boolean; + ragFairStanding: boolean; +} +export interface Tournament { + categories: Categories2; + limit: number; + levelRequired: number; +} +export interface Categories2 { + dogtags: boolean; +} +export interface RagFair { + enabled: boolean; + priceStabilizerEnabled: boolean; + includePveTraderSales: boolean; + priceStabilizerStartIntervalInHours: number; + minUserLevel: number; + communityTax: number; + communityItemTax: number; + communityRequirementTax: number; + offerPriorityCost: number; + offerDurationTimeInHour: number; + offerDurationTimeInHourAfterRemove: number; + priorityTimeModifier: number; + maxRenewOfferTimeInHour: number; + renewPricePerHour: number; + maxActiveOfferCount: MaxActiveOfferCount[]; + balancerRemovePriceCoefficient: number; + balancerMinPriceCount: number; + balancerAveragePriceCoefficient: number; + delaySinceOfferAdd: number; + uniqueBuyerTimeoutInDays: number; + ratingSumForIncrease: number; + ratingIncreaseCount: number; + ratingSumForDecrease: number; + ratingDecreaseCount: number; + maxSumForIncreaseRatingPerOneSale: number; + maxSumForDecreaseRatingPerOneSale: number; + maxSumForRarity: MaxSumForRarity; + ChangePriceCoef: number; + balancerUserItemSaleCooldownEnabled: boolean; + balancerUserItemSaleCooldown: number; + youSellOfferMaxStorageTimeInHour: number; + yourOfferDidNotSellMaxStorageTimeInHour: number; + isOnlyFoundInRaidAllowed: boolean; + sellInOnePiece: number; +} +export interface MaxActiveOfferCount { + from: number; + to: number; + count: number; +} +export interface MaxSumForRarity { + Common: RarityMaxSum; + Rare: RarityMaxSum; + Superrare: RarityMaxSum; + Not_exist: RarityMaxSum; +} +export interface RarityMaxSum { + value: number; +} +export interface Handbook { + defaultCategory: string; +} +export interface Stamina { + Capacity: number; + SprintDrainRate: number; + BaseRestorationRate: number; + JumpConsumption: number; + GrenadeHighThrow: number; + GrenadeLowThrow: number; + AimDrainRate: number; + AimRangeFinderDrainRate: number; + OxygenCapacity: number; + OxygenRestoration: number; + WalkOverweightLimits: xyz; + BaseOverweightLimits: xyz; + SprintOverweightLimits: xyz; + WalkSpeedOverweightLimits: xyz; + CrouchConsumption: xyz; + WalkConsumption: xyz; + StandupConsumption: xyz; + TransitionSpeed: xyz; + SprintAccelerationLowerLimit: number; + SprintSpeedLowerLimit: number; + SprintSensitivityLowerLimit: number; + AimConsumptionByPose: xyz; + RestorationMultiplierByPose: xyz; + OverweightConsumptionByPose: xyz; + AimingSpeedMultiplier: number; + WalkVisualEffectMultiplier: number; + HandsCapacity: number; + HandsRestoration: number; + ProneConsumption: number; + BaseHoldBreathConsumption: number; + SoundRadius: xyz; + ExhaustedMeleeSpeed: number; + FatigueRestorationRate: number; + FatigueAmountToCreateEffect: number; + ExhaustedMeleeDamageMultiplier: number; + FallDamageMultiplier: number; + SafeHeightOverweight: number; + SitToStandConsumption: number; + StaminaExhaustionCausesJiggle: boolean; + StaminaExhaustionStartsBreathSound: boolean; + StaminaExhaustionRocksCamera: boolean; + HoldBreathStaminaMultiplier: xyz; + PoseLevelIncreaseSpeed: xyz; + PoseLevelDecreaseSpeed: xyz; + PoseLevelConsumptionPerNotch: xyz; +} +export interface StaminaRestoration { + LowerLeftPoint: number; + LowerRightPoint: number; + LeftPlatoPoint: number; + RightPlatoPoint: number; + RightLimit: number; + ZeroValue: number; +} +export interface StaminaDrain { + LowerLeftPoint: number; + LowerRightPoint: number; + LeftPlatoPoint: number; + RightPlatoPoint: number; + RightLimit: number; + ZeroValue: number; +} +export interface RequirementReferences { + Alpinist: Alpinist[]; +} +export interface Alpinist { + Requirement: string; + Id: string; + Count: number; + RequiredSlot: string; + RequirementTip: string; +} +export interface RestrictionsInRaid { + TemplateId: string; + Value: number; +} +export interface Insurance { + MaxStorageTimeInHour: number; +} +export interface SkillsSettings { + SkillProgressRate: number; + WeaponSkillProgressRate: number; + WeaponSkillRecoilBonusPerLevel: number; + HideoutManagement: HideoutManagement; + Crafting: Crafting; + Metabolism: Metabolism; + Immunity: Immunity; + Endurance: Endurance; + Strength: Strength; + Vitality: Vitality; + Health: Health2; + StressResistance: StressResistance; + Throwing: Throwing; + RecoilControl: RecoilControl; + Pistol: WeaponSkills; + Revolver: WeaponSkills; + SMG: any[]; + Assault: WeaponSkills; + Shotgun: WeaponSkills; + Sniper: WeaponSkills; + LMG: any[]; + HMG: any[]; + Launcher: any[]; + AttachedLauncher: any[]; + Melee: any[]; + DMR: WeaponSkills; + BearAssaultoperations: any[]; + BearAuthority: any[]; + BearAksystems: any[]; + BearHeavycaliber: any[]; + BearRawpower: any[]; + UsecArsystems: any[]; + UsecDeepweaponmodding_Settings: any[]; + UsecLongrangeoptics_Settings: any[]; + UsecNegotiations: any[]; + UsecTactics: any[]; + BotReload: any[]; + CovertMovement: CovertMovement; + FieldMedicine: any[]; + Search: Search; + Sniping: any[]; + ProneMovement: any[]; + FirstAid: any[]; + LightVests: ArmorSkills; + HeavyVests: ArmorSkills; + WeaponModding: any[]; + AdvancedModding: any[]; + NightOps: any[]; + SilentOps: any[]; + Lockpicking: any[]; + WeaponTreatment: WeaponTreatment; + MagDrills: MagDrills; + Freetrading: any[]; + Auctions: any[]; + Cleanoperations: any[]; + Barter: any[]; + Shadowconnections: any[]; + Taskperformance: any[]; + Perception: Perception; + Intellect: Intellect; + Attention: Attention; + Charisma: Charisma; + Memory: Memory; + Surgery: Surgery; + AimDrills: AimDrills; + BotSound: any[]; + TroubleShooting: TroubleShooting; +} +export interface ArmorSkills { + WearAmountRepairLVestsReducePerLevel: number; + WearChanceRepairLVestsReduceEliteLevel: number; +} +export interface HideoutManagement { + SkillPointsPerAreaUpgrade: number; + SkillPointsPerCraft: number; + ConsumptionReductionPerLevel: number; + SkillBoostPercent: number; + SkillPointsRate: SkillPointsRate; + EliteSlots: EliteSlots; +} +export interface SkillPointsRate { + Generator: Generator; + AirFilteringUnit: SkillPointRate; + WaterCollector: SkillPointRate; + SolarPower: SkillPointRate; +} +export interface SkillPointRate { + ResourceSpent: number; + PointsGained: number; +} +export interface EliteSlots { + Generator: EliteSlot; + AirFilteringUnit: EliteSlot; + WaterCollector: EliteSlot; + BitcoinFarm: EliteSlot; +} +export interface EliteSlot { + Slots: number; + Container: number; +} +export interface Crafting { + PointsPerCraftingCycle: number; + CraftingCycleHours: number; + PointsPerUniqueCraftCycle: number; + UniqueCraftsPerCycle: number; + CraftTimeReductionPerLevel: number; + ProductionTimeReductionPerLevel: number; + EliteExtraProductions: number; + CraftingPointsToInteligence: number; +} +export interface Metabolism { + HydrationRecoveryRate: number; + EnergyRecoveryRate: number; + IncreasePositiveEffectDurationRate: number; + DecreaseNegativeEffectDurationRate: number; + DecreasePoisonDurationRate: number; +} +export interface Immunity { + ImmunityMiscEffects: number; + ImmunityPoisonBuff: number; + ImmunityPainKiller: number; + HealthNegativeEffect: number; + StimulatorNegativeBuff: number; +} +export interface Endurance { + MovementAction: number; + SprintAction: number; + GainPerFatigueStack: number; +} +export interface Strength { + SprintActionMin: number; + SprintActionMax: number; + MovementActionMin: number; + MovementActionMax: number; + PushUpMin: number; + PushUpMax: number; + FistfightAction: number; + ThrowAction: number; +} +export interface Vitality { + DamageTakenAction: number; + HealthNegativeEffect: number; +} +export interface Health2 { + SkillProgress: number; +} +export interface StressResistance { + HealthNegativeEffect: number; + LowHPDuration: number; +} +export interface Throwing { + ThrowAction: number; +} +export interface RecoilControl { + RecoilAction: number; + RecoilBonusPerLevel: number; +} +export interface WeaponSkills { + WeaponReloadAction: number; + WeaponShotAction: number; + WeaponFixAction: number; + WeaponChamberAction: number; +} +export interface CovertMovement { + MovementAction: number; +} +export interface Search { + SearchAction: number; + FindAction: number; +} +export interface WeaponTreatment { + DurLossReducePerLevel: number; + SkillPointsPerRepair: number; + Filter: any[]; + WearAmountRepairGunsReducePerLevel: number; + WearChanceRepairGunsReduceEliteLevel: number; +} +export interface MagDrills { + RaidLoadedAmmoAction: number; + RaidUnloadedAmmoAction: number; + MagazineCheckAction: number; +} +export interface Perception { + OnlineAction: number; + UniqueLoot: number; +} +export interface Intellect { + ExamineAction: number; + SkillProgress: number; + RepairAction: number; + WearAmountReducePerLevel: number; + WearChanceReduceEliteLevel: number; + RepairPointsCostReduction: number; +} +export interface Attention { + ExamineWithInstruction: number; + FindActionFalse: number; + FindActionTrue: number; +} +export interface Charisma { + SkillProgressInt: number; + SkillProgressAtn: number; + SkillProgressPer: number; +} +export interface Memory { + AnySkillUp: number; + SkillProgress: number; +} +export interface Surgery { + SurgeryAction: number; + SkillProgress: number; +} +export interface AimDrills { + WeaponShotAction: number; +} +export interface TroubleShooting { + MalfRepairSpeedBonusPerLevel: number; + SkillPointsPerMalfFix: number; + EliteDurabilityChanceReduceMult: number; + EliteAmmoChanceReduceMult: number; + EliteMagChanceReduceMult: number; +} +export interface Aiming { + ProceduralIntensityByPose: xyz; + AimProceduralIntensity: number; + HeavyWeight: number; + LightWeight: number; + MaxTimeHeavy: number; + MinTimeHeavy: number; + MaxTimeLight: number; + MinTimeLight: number; + RecoilScaling: number; + RecoilDamping: number; + CameraSnapGlobalMult: number; + RecoilXIntensityByPose: xyz; + RecoilYIntensityByPose: xyz; + RecoilZIntensityByPose: xyz; + RecoilCrank: boolean; + RecoilHandDamping: number; + RecoilConvergenceMult: number; + RecoilVertBonus: number; + RecoilBackBonus: number; +} +export interface Malfunction { + AmmoMalfChanceMult: number; + MagazineMalfChanceMult: number; + MalfRepairHardSlideMult: number; + MalfRepairOneHandBrokenMult: number; + MalfRepairTwoHandsBrokenMult: number; + AllowMalfForBots: boolean; + ShowGlowAttemptsCount: number; + OutToIdleSpeedMultForPistol: number; + IdleToOutSpeedMultOnMalf: number; + TimeToQuickdrawPistol: number; + DurRangeToIgnoreMalfs: xyz; + DurFeedWt: number; + DurMisfireWt: number; + DurJamWt: number; + DurSoftSlideWt: number; + DurHardSlideMinWt: number; + DurHardSlideMaxWt: number; + AmmoMisfireWt: number; + AmmoFeedWt: number; + AmmoJamWt: number; + OverheatFeedWt: number; + OverheatJamWt: number; + OverheatSoftSlideWt: number; + OverheatHardSlideMinWt: number; + OverheatHardSlideMaxWt: number; +} +export interface Overheat { + MinOverheat: number; + MaxOverheat: number; + OverheatProblemsStart: number; + ModHeatFactor: number; + ModCoolFactor: number; + MinWearOnOverheat: number; + MaxWearOnOverheat: number; + MinWearOnMaxOverheat: number; + MaxWearOnMaxOverheat: number; + OverheatWearLimit: number; + MaxCOIIncreaseMult: number; + MinMalfChance: number; + MaxMalfChance: number; + DurReduceMinMult: number; + DurReduceMaxMult: number; + BarrelMoveRndDuration: number; + BarrelMoveMaxMult: number; + FireratePitchMult: number; + FirerateReduceMinMult: number; + FirerateReduceMaxMult: number; + FirerateOverheatBorder: number; + EnableSlideOnMaxOverheat: boolean; + StartSlideOverheat: number; + FixSlideOverheat: number; + AutoshotMinOverheat: number; + AutoshotChance: number; + AutoshotPossibilityDuration: number; + MaxOverheatCoolCoef: number; +} +export interface FenceSettings { + FenceId: string; + Levels: Record; + paidExitStandingNumerator: number; +} +export interface FenceLevel { + SavageCooldownModifier: number; + ScavCaseTimeModifier: number; + PaidExitCostModifier: number; + BotFollowChance: number; + ScavEquipmentSpawnChanceModifier: number; + PriceModifier: number; + HostileBosses: boolean; + HostileScavs: boolean; + ScavAttackSupport: boolean; + ExfiltrationPriceModifier: number; + AvailableExits: number; +} +export interface Inertia { + InertiaLimits: xyz; + InertiaLimitsStep: number; + ExitMovementStateSpeedThreshold: xyz; + WalkInertia: xyz; + FallThreshold: number; + SpeedLimitAfterFallMin: xyz; + SpeedLimitAfterFallMax: xyz; + SpeedLimitDurationMin: xyz; + SpeedLimitDurationMax: xyz; + SpeedInertiaAfterJump: xyz; + BaseJumpPenaltyDuration: number; + DurationPower: number; + BaseJumpPenalty: number; + PenaltyPower: number; + InertiaTiltCurveMin: xyz; + InertiaTiltCurveMax: xyz; + InertiaBackwardCoef: xyz; + TiltInertiaMaxSpeed: xyz; + TiltStartSideBackSpeed: xyz; + TiltMaxSideBackSpeed: xyz; + TiltAcceleration: xyz; + AverageRotationFrameSpan: number; + SprintSpeedInertiaCurveMin: xyz; + SprintSpeedInertiaCurveMax: xyz; + SprintBrakeInertia: xyz; + SprintTransitionMotionPreservation: xyz; + WeaponFlipSpeed: xyz; + PreSprintAccelerationLimits: xyz; + SprintAccelerationLimits: xyz; + SideTime: xyz; + DiagonalTime: xyz; + MinDirectionBlendTime: number; + MoveTime: number; + MinMovementAccelerationRangeRight: xyz; + MaxMovementAccelerationRangeRight: xyz; +} +export interface xyz { + x: number; + y: number; + z: number; +} +export interface Ballistic { + GlobalDamageDegradationCoefficient: number; +} +export interface RepairKitSettings { + armorClassDivisor: number; + durabilityPointCostArmor: number; + durabilityPointCostGuns: number; +} +export interface BotPreset { + UseThis: boolean; + Role: string; + BotDifficulty: string; + VisibleAngle: number; + VisibleDistance: number; + ScatteringPerMeter: number; + HearingSense: number; + SCATTERING_DIST_MODIF: number; + MAX_AIMING_UPGRADE_BY_TIME: number; + FIRST_CONTACT_ADD_SEC: number; + COEF_IF_MOVE: number; +} +export interface BotWeaponScattering { + Name: string; + PriorityScatter1meter: number; + PriorityScatter10meter: number; + PriorityScatter100meter: number; +} +export interface Preset { + _id: string; + _type: string; + _changeWeaponName: boolean; + _name: string; + _parent: string; + _items: Item[]; + _encyclopedia?: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/ILocation.d.ts b/TypeScript/11AddTrader/types/models/eft/common/ILocation.d.ts new file mode 100644 index 0000000..42fac06 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/ILocation.d.ts @@ -0,0 +1,6 @@ +import { ILocationBase } from "./ILocationBase"; +import { ILooseLoot } from "./ILooseLoot"; +export interface ILocation { + base: ILocationBase; + looseLoot: ILooseLoot; +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/ILocationBase.d.ts b/TypeScript/11AddTrader/types/models/eft/common/ILocationBase.d.ts new file mode 100644 index 0000000..ad48d32 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/ILocationBase.d.ts @@ -0,0 +1,198 @@ +export interface ILocationBase { + AccessKeys: string[]; + AirdropParameters: AirdropParameter[]; + Area: number; + AveragePlayTime: number; + AveragePlayerLevel: number; + Banners: Banner[]; + BossLocationSpawn: BossLocationSpawn[]; + BotAssault: number; + BotEasy: number; + BotHard: number; + BotImpossible: number; + BotLocationModifier: BotLocationModifier; + BotMarksman: number; + BotMax: number; + BotMaxPlayer: number; + BotMaxTimePlayer: number; + BotNormal: number; + BotSpawnTimeOffMax: number; + BotSpawnTimeOffMin: number; + BotSpawnTimeOnMax: number; + BotSpawnTimeOnMin: number; + BotStart: number; + BotStop: number; + Description: string; + DisabledForScav: boolean; + DisabledScavExits: string; + Enabled: boolean; + GlobalLootChanceModifier: number; + IconX: number; + IconY: number; + Id: string; + Insurance: boolean; + IsSecret: boolean; + Locked: boolean; + Loot: any[]; + MaxBotPerZone: number; + MaxDistToFreePoint: number; + MaxPlayers: number; + MinDistToExitPoint: number; + MinDistToFreePoint: number; + MinMaxBots: MinMaxBot[]; + MinPlayers: number; + Name: string; + NewSpawn: boolean; + OcculsionCullingEnabled: boolean; + OldSpawn: boolean; + OpenZones: string; + Preview: Preview; + RequiredPlayerLevel: number; + Rules: string; + SafeLocation: boolean; + Scene: Scene; + SpawnPointParams: SpawnPointParam[]; + UnixDateTime: number; + _Id: string; + doors: any[]; + escape_time_limit: number; + exit_access_time: number; + exit_count: number; + exit_time: number; + exits: Exit[]; + filter_ex: string[]; + limits: ILimit[]; + matching_min_seconds: number; + maxItemCountInLocation: MaxItemCountInLocation[]; + sav_summon_seconds: number; + tmp_location_field_remove_me: number; + users_gather_seconds: number; + users_spawn_seconds_n: number; + users_spawn_seconds_n2: number; + users_summon_seconds: number; + waves: Wave[]; +} +export interface ILimit { + min: number; + max: number; + items: any[]; +} +export interface AirdropParameter { + AirdropPointDeactivateDistance: number; + MinPlayersCountToSpawnAirdrop: number; + PlaneAirdropChance: number; + PlaneAirdropCooldownMax: number; + PlaneAirdropCooldownMin: number; + PlaneAirdropEnd: number; + PlaneAirdropMax: number; + PlaneAirdropStartMax: number; + PlaneAirdropStartMin: number; + UnsuccessfulTryPenalty: number; +} +export interface Banner { + id: string; + pic: Pic; +} +export interface Pic { + path: string; + rcid: string; +} +export interface BossLocationSpawn { + BossChance: number; + BossDifficult: string; + BossEscortAmount: string; + BossEscortDifficult: string; + BossEscortType: string; + BossName: string; + BossPlayer: boolean; + BossZone: string; + Time: number; + TriggerId: string; + TriggerName: string; + Delay?: number; + Supports?: BossSupport[]; +} +export interface BossSupport { + BossEscortAmount: string; + BossEscortDifficult: string[]; + BossEscortType: string; +} +export interface BotLocationModifier { + AccuracySpeed: number; + DistToActivate: number; + DistToPersueAxemanCoef: number; + DistToSleep: number; + GainSight: number; + KhorovodChance: number; + MagnetPower: number; + MarksmanAccuratyCoef: number; + Scattering: number; + VisibleDistance: number; +} +export interface MinMaxBot { + WildSpawnType: string; + max: number; + min: number; +} +export interface Preview { + path: string; + rcid: string; +} +export interface Scene { + path: string; + rcid: string; +} +export interface SpawnPointParam { + BotZoneName: string; + Categories: string[]; + ColliderParams: ColliderParams; + DelayToCanSpawnSec: number; + Id: string; + Infiltration: string; + Position: xyz; + Rotation: number; + Sides: string[]; +} +export interface ColliderParams { + _parent: string; + _props: Props; +} +export interface Props { + Center: xyz; + Radius: number; +} +export interface xyz { + x: number; + y: number; + z: number; +} +export interface Exit { + Chance: number; + Count: number; + EntryPoints: string; + ExfiltrationTime: number; + ExfiltrationType: string; + Id: string; + MaxTime: number; + MinTime: number; + Name: string; + PassageRequirement: string; + PlayersCount: number; + RequirementTip: string; +} +export interface MaxItemCountInLocation { + TemplateId: string; + Value: number; +} +export interface Wave { + BotPreset: string; + BotSide: string; + SpawnPoints: string; + WildSpawnType: string; + isPlayers: boolean; + number: number; + slots_max: number; + slots_min: number; + time_max: number; + time_min: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/ILocationsSourceDestinationBase.d.ts b/TypeScript/11AddTrader/types/models/eft/common/ILocationsSourceDestinationBase.d.ts new file mode 100644 index 0000000..7f8d915 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/ILocationsSourceDestinationBase.d.ts @@ -0,0 +1,9 @@ +import { ILocations } from "../../spt/server/ILocations"; +export interface ILocationsGenerateAllResponse { + locations: ILocations; + paths: Path[]; +} +export interface Path { + Source: string; + Destination: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/ILooseLoot.d.ts b/TypeScript/11AddTrader/types/models/eft/common/ILooseLoot.d.ts new file mode 100644 index 0000000..14b795e --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/ILooseLoot.d.ts @@ -0,0 +1,45 @@ +export interface ILooseLoot { + spawnpointCount: SpawnpointCount; + spawnpointsForced: SpawnpointsForced[]; + spawnpoints: Spawnpoint[]; +} +export interface SpawnpointCount { + mean: number; + std: number; +} +export interface SpawnpointsForced { + locationId: string; + probability: number; + template: SpawnpointTemplate; +} +export interface SpawnpointTemplate { + Id: string; + IsStatic: boolean; + useGravity: boolean; + randomRotation: boolean; + Position: Xyz; + Rotation: Xyz; + IsGroupPosition: boolean; + GroupPositions: any[]; + Root: any; + Items: Item[]; +} +export interface Item { + _id: string; + _tpl?: string; +} +export interface Spawnpoint { + locationId: string; + probability: number; + template: SpawnpointTemplate; + itemDistribution: ItemDistribution[]; +} +export interface Xyz { + x: number; + y: number; + z: number; +} +export interface ItemDistribution { + tpl: string; + relativeProbability: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/IMetricsTableData.d.ts b/TypeScript/11AddTrader/types/models/eft/common/IMetricsTableData.d.ts new file mode 100644 index 0000000..873ef82 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/IMetricsTableData.d.ts @@ -0,0 +1,7 @@ +export interface IMetricsTableData { + Keys: number[]; + NetProcessingBins: number[]; + RenderBins: number[]; + GameUpdateBins: number[]; + MemoryMeasureInterval: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/IPmcData.d.ts b/TypeScript/11AddTrader/types/models/eft/common/IPmcData.d.ts new file mode 100644 index 0000000..adc2aa5 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/IPmcData.d.ts @@ -0,0 +1,341 @@ +import { IRagfairOffer } from "../ragfair/IRagfairOffer"; +import { IPmcDataRepeatableQuest } from "./tables/IRepeatableQuests"; +import { Item, Upd } from "./tables/IItem"; +import { HideoutAreas } from "../../enums/HideoutAreas"; +import { MemberCategory } from "../../enums/MemberCategory"; +export interface IPmcData { + _id: string; + aid: string; + savage: string; + Info: Info; + Customization: Customization; + Health: Health; + Inventory: Inventory; + Skills: Skills; + Stats: Stats; + Encyclopedia: Record; + ConditionCounters: ConditionCounters; + BackendCounters: Record; + InsuredItems: InsuredItem[]; + Hideout: Hideout; + Bonuses: Bonus[]; + Notes: Notes; + Quests: Quest[]; + TradersInfo: Record; + RagfairInfo: RagfairInfo; + WishList: string[]; + RepeatableQuests: IPmcDataRepeatableQuest[]; + CarExtractCounts: CarExtractCounts; + SurvivorClass: SurvivorClass; +} +export declare enum SurvivorClass { + Unknown = 0, + Neutralizer = 1, + Marauder = 2, + Paramedic = 3, + Survivor = 4 +} +export interface Info { + EntryPoint: string; + Nickname: string; + LowerNickname: string; + Side: string; + Voice: string; + Level: number; + Experience: number; + RegistrationDate: number; + GameVersion: string; + AccountType: number; + MemberCategory: MemberCategory; + lockedMoveCommands: boolean; + SavageLockTime: number; + LastTimePlayedAsSavage: number; + Settings: Settings; + NicknameChangeDate: number; + IsStreamerModeAvailable: boolean; + Bans: IBan[]; + BannedState: boolean; + BannedUntil: number; +} +export interface Settings { + Role: string; + BotDifficulty: string; + Experience: number; + StandingForKill: number; + AggressorBonus: number; +} +export interface IBan { + type: BanType; + dateTime: number; +} +export declare enum BanType { + Chat = 0, + RagFair = 1, + Voip = 2, + Trading = 3, + Online = 4, + Friends = 5, + ChangeNickname = 6 +} +export interface Notes { + Notes: Note[]; +} +export interface Note { + Time: number; + Text: string; +} +export interface Customization { + Head: string; + Body: string; + Feet: string; + Hands: string; +} +export interface Health { + Hydration: CurrentMax; + Energy: CurrentMax; + Temperature: CurrentMax; + BodyParts: BodyPartsHealth; + UpdateTime: number; +} +export interface BodyPartsHealth { + Head: BodyPartHealth; + Chest: BodyPartHealth; + Stomach: BodyPartHealth; + LeftArm: BodyPartHealth; + RightArm: BodyPartHealth; + LeftLeg: BodyPartHealth; + RightLeg: BodyPartHealth; +} +export interface BodyPartHealth { + Health: CurrentMax; + Effects?: Record; +} +export interface CurrentMax { + Current: number; + Maximum: number; +} +export interface Inventory { + items: Item[]; + equipment: string; + stash: string; + sortingTable: string; + questRaidItems: string; + questStashItems: string; + fastPanel: FastPanel; +} +export interface FastPanel { +} +export interface Skills { + Common: Common[]; + Mastering: Mastering[]; + Bonuses?: any[]; + Points: number; +} +export interface Common { + Id: string; + Progress: number; + PointsEarnedDuringSession: number; + LastAccess: number; +} +export interface Mastering { + Id: string; + Progress: number; +} +export interface Stats { + CarriedQuestItems: string[]; + Victims: Victim[]; + TotalSessionExperience: number; + LastSessionDate: number; + SessionCounters: SessionCounters; + OverallCounters: OverallCounters; + SessionExperienceMult?: number; + ExperienceBonusMult?: number; + Aggressor?: Aggressor; + DroppedItems?: IDroppedItem[]; + FoundInRaidItems?: FoundInRaidItem[]; + DamageHistory?: DamageHistory; + DeathCause?: DeathCause; + LastPlayerState?: LastPlayerState; + TotalInGameTime: number; + SurvivorClass?: string; +} +export interface IDroppedItem { + QuestId: string; + ItemId: string; + ZoneId: string; +} +export interface FoundInRaidItem { + QuestId: string; + ItemId: string; +} +export interface Victim { + AccountId: string; + ProfileId: string; + Name: string; + Side: string; + BodyPart: string; + Time: string; + Distance: number; + Level: number; + Weapon: string; + Role: string; +} +export interface SessionCounters { + Items: CounterKeyValue[]; +} +export interface OverallCounters { + Items: CounterKeyValue[]; +} +export interface CounterKeyValue { + Key: string[]; + Value: number; +} +export interface Aggressor { + AccountId: string; + ProfileId: string; + MainProfileNickname: string; + Name: string; + Side: string; + BodyPart: string; + HeadSegment: string; + WeaponName: string; + Category: string; +} +export interface DamageHistory { + LethalDamagePart: string; + LethalDamage: LethalDamage; + BodyParts: BodyPartsDamageHistory; +} +export interface LethalDamage { + Amount: number; + Type: string; + SourceId: string; + OverDamageFrom: string; + Blunt: boolean; + ImpactsCount: number; +} +export interface BodyPartsDamageHistory { + Head: DamageStats[]; + Chest: DamageStats[]; + Stomach: DamageStats[]; + LeftArm: DamageStats[]; + RightArm: DamageStats[]; + LeftLeg: DamageStats[]; + RightLeg: DamageStats[]; + Common: DamageStats[]; +} +export interface DamageStats { + Amount: number; + Type: string; + SourceId: string; + OverDamageFrom: string; + Blunt: boolean; + ImpactsCount: number; +} +export interface DeathCause { + DamageType: string; + Side: string; + Role: string; + WeaponId: string; +} +export interface LastPlayerState { + Info: LastPlayerStateInfo; + Customization: Record; + Equipment: any; +} +export interface LastPlayerStateInfo { + Nickname: string; + Side: string; + Level: number; + MemberCategory: string; +} +export interface ConditionCounters { + Counters: Counter[]; +} +export interface Counter { + id: string; + value: number; + qid: string; +} +export interface BackendCounter { + id: string; + qid?: string; + value: number; +} +export interface InsuredItem { + tid: string; + itemId: string; +} +export interface Hideout { + Production: Record; + Areas: HideoutArea[]; +} +export interface Productive { + Products: Product[]; + Progress?: number; + inProgress?: boolean; + StartTimestamp?: number; +} +export interface Product { + _id: string; + _tpl: string; + upd?: Upd; +} +export interface ScavCase extends Productive { +} +export interface Production extends Productive { + RecipeId: string; + SkipTime: number; + ProductionTime: number; +} +export interface HideoutArea { + type: HideoutAreas; + level: number; + active: boolean; + passiveBonusesEnabled: boolean; + completeTime: number; + constructing: boolean; + slots: HideoutSlot[]; + lastRecipe: string; +} +export interface HideoutSlot { + item: HideoutItem[]; +} +export interface HideoutItem { + _id: string; + _tpl: string; + upd?: Upd; +} +export interface Bonus { + type: string; + templateId?: string; + passive?: boolean; + production?: boolean; + visible?: boolean; + value?: number; + icon?: string; +} +export interface Quest { + qid: string; + startTime: number; + status: string; + statusTimers?: StatusTimer; + completedConditions?: string[]; +} +export interface StatusTimer { + AvailableForStart?: number; +} +export interface TraderInfo { + loyaltyLevel: number; + salesSum: number; + standing: number; + nextResupply: number; + unlocked: boolean; +} +export interface RagfairInfo { + rating: number; + isRatingGrowing: boolean; + offers: IRagfairOffer[]; +} +export interface CarExtractCounts { +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/request/IBaseInteractionRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/common/request/IBaseInteractionRequestData.d.ts new file mode 100644 index 0000000..7303275 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/request/IBaseInteractionRequestData.d.ts @@ -0,0 +1,9 @@ +export interface IBaseInteractionRequestData { + Action: string; + fromOwner?: OwnerInfo; + toOwner?: OwnerInfo; +} +export interface OwnerInfo { + id: string; + type: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/tables/IBotBase.d.ts b/TypeScript/11AddTrader/types/models/eft/common/tables/IBotBase.d.ts new file mode 100644 index 0000000..677fd49 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/tables/IBotBase.d.ts @@ -0,0 +1,101 @@ +import { BackendCounter, Bonus } from "../IPmcData"; +import { Item } from "./IItem"; +export interface IBotBase { + _id: string; + aid: string; + savage: any; + Info: Info; + Customization: Customization; + Health: Health; + Inventory: Inventory; + Skills: Skills; + Stats: Stats; + Encyclopedia: any; + ConditionCounters: ConditionCounters; + BackendCounters: Record; + InsuredItems: any[]; + Hideout: Hideout; + Bonuses: Bonus[]; +} +export interface Info { + Nickname: string; + LowerNickname: string; + Side: string; + Voice: string; + Level: number; + Experience: number; + RegistrationDate: number; + GameVersion: string; + AccountType: number; + MemberCategory: number; + lockedMoveCommands: boolean; + SavageLockTime: number; + LastTimePlayedAsSavage: number; + Settings: Settings; + NicknameChangeDate: number; + NeedWipeOptions: any[]; + lastCompletedWipe: any; + BannedState: boolean; + BannedUntil: number; + IsStreamerModeAvailable: boolean; +} +export interface Settings { + Role: string; + BotDifficulty: string; + Experience: number; + StandingForKill: number; + AggressorBonus: number; +} +export interface Customization { + Head: string; + Body: string; + Feet: string; + Hands: string; +} +export interface Health { +} +export interface Inventory { + items: Item[]; + equipment: string; + stash: string; + sortingTable: string; + questRaidItems: string; + questStashItems: string; + fastPanel: FastPanel; +} +export interface FastPanel { +} +export interface Skills { + Common: any[]; + Mastering: any[]; + Points: number; +} +export interface Stats { + SessionCounters: SessionCounters; + OverallCounters: OverallCounters; +} +export interface SessionCounters { + Items: any[]; +} +export interface OverallCounters { + Items: any[]; +} +export interface ConditionCounters { + Counters: any[]; +} +export interface Hideout { + Production: Production; + Areas: Area[]; +} +export interface Production { +} +export interface Area { + type: number; + level: number; + active: boolean; + passiveBonusesEnabled: boolean; + completeTime: number; + constructing: boolean; + slots: any[]; + lastRecipe: any; +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/tables/IBotCore.d.ts b/TypeScript/11AddTrader/types/models/eft/common/tables/IBotCore.d.ts new file mode 100644 index 0000000..16a782d --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/tables/IBotCore.d.ts @@ -0,0 +1,133 @@ +export interface IBotCore { + SAVAGE_KILL_DIST: number; + SOUND_DOOR_BREACH_METERS: number; + SOUND_DOOR_OPEN_METERS: number; + STEP_NOISE_DELTA: number; + JUMP_NOISE_DELTA: number; + GUNSHOT_SPREAD: number; + GUNSHOT_SPREAD_SILENCE: number; + BASE_WALK_SPEREAD2: number; + MOVE_SPEED_COEF_MAX: number; + SPEED_SERV_SOUND_COEF_A: number; + SPEED_SERV_SOUND_COEF_B: number; + G: number; + STAY_COEF: number; + SIT_COEF: number; + LAY_COEF: number; + MAX_ITERATIONS: number; + START_DIST_TO_COV: number; + MAX_DIST_TO_COV: number; + STAY_HEIGHT: number; + CLOSE_POINTS: number; + COUNT_TURNS: number; + SIMPLE_POINT_LIFE_TIME_SEC: number; + DANGER_POINT_LIFE_TIME_SEC: number; + DANGER_POWER: number; + COVER_DIST_CLOSE: number; + GOOD_DIST_TO_POINT: number; + COVER_TOOFAR_FROM_BOSS: number; + COVER_TOOFAR_FROM_BOSS_SQRT: number; + MAX_Y_DIFF_TO_PROTECT: number; + FLARE_POWER: number; + MOVE_COEF: number; + PRONE_POSE: number; + LOWER_POSE: number; + MAX_POSE: number; + FLARE_TIME: number; + MAX_REQUESTS__PER_GROUP: number; + UPDATE_GOAL_TIMER_SEC: number; + DIST_NOT_TO_GROUP: number; + DIST_NOT_TO_GROUP_SQR: number; + LAST_SEEN_POS_LIFETIME: number; + DELTA_GRENADE_START_TIME: number; + DELTA_GRENADE_END_TIME: number; + DELTA_GRENADE_RUN_DIST: number; + DELTA_GRENADE_RUN_DIST_SQRT: number; + PATROL_MIN_LIGHT_DIST: number; + HOLD_MIN_LIGHT_DIST: number; + STANDART_BOT_PAUSE_DOOR: number; + ARMOR_CLASS_COEF: number; + SHOTGUN_POWER: number; + RIFLE_POWER: number; + PISTOL_POWER: number; + SMG_POWER: number; + SNIPE_POWER: number; + GESTUS_PERIOD_SEC: number; + GESTUS_AIMING_DELAY: number; + GESTUS_REQUEST_LIFETIME: number; + GESTUS_FIRST_STAGE_MAX_TIME: number; + GESTUS_SECOND_STAGE_MAX_TIME: number; + GESTUS_MAX_ANSWERS: number; + GESTUS_FUCK_TO_SHOOT: number; + GESTUS_DIST_ANSWERS: number; + GESTUS_DIST_ANSWERS_SQRT: number; + GESTUS_ANYWAY_CHANCE: number; + TALK_DELAY: number; + CAN_SHOOT_TO_HEAD: boolean; + CAN_TILT: boolean; + TILT_CHANCE: number; + MIN_BLOCK_DIST: number; + MIN_BLOCK_TIME: number; + COVER_SECONDS_AFTER_LOSE_VISION: number; + MIN_ARG_COEF: number; + MAX_ARG_COEF: number; + DEAD_AGR_DIST: number; + MAX_DANGER_CARE_DIST_SQRT: number; + MAX_DANGER_CARE_DIST: number; + MIN_MAX_PERSON_SEARCH: number; + PERCENT_PERSON_SEARCH: number; + LOOK_ANYSIDE_BY_WALL_SEC_OF_ENEMY: number; + CLOSE_TO_WALL_ROTATE_BY_WALL_SQRT: number; + SHOOT_TO_CHANGE_RND_PART_MIN: number; + SHOOT_TO_CHANGE_RND_PART_MAX: number; + SHOOT_TO_CHANGE_RND_PART_DELTA: number; + FORMUL_COEF_DELTA_DIST: number; + FORMUL_COEF_DELTA_SHOOT: number; + FORMUL_COEF_DELTA_FRIEND_COVER: number; + SUSPETION_POINT_DIST_CHECK: number; + MAX_BASE_REQUESTS_PER_PLAYER: number; + MAX_HOLD_REQUESTS_PER_PLAYER: number; + MAX_GO_TO_REQUESTS_PER_PLAYER: number; + MAX_COME_WITH_ME_REQUESTS_PER_PLAYER: number; + CORE_POINT_MAX_VALUE: number; + CORE_POINTS_MAX: number; + CORE_POINTS_MIN: number; + BORN_POISTS_FREE_ONLY_FAREST_BOT: boolean; + BORN_POINSTS_FREE_ONLY_FAREST_PLAYER: boolean; + SCAV_GROUPS_TOGETHER: boolean; + LAY_DOWN_ANG_SHOOT: number; + HOLD_REQUEST_TIME_SEC: number; + TRIGGERS_DOWN_TO_RUN_WHEN_MOVE: number; + MIN_DIST_TO_RUN_WHILE_ATTACK_MOVING: number; + MIN_DIST_TO_RUN_WHILE_ATTACK_MOVING_OTHER_ENEMIS: number; + MIN_DIST_TO_STOP_RUN: number; + JUMP_SPREAD_DIST: number; + LOOK_TIMES_TO_KILL: number; + COME_INSIDE_TIMES: number; + TOTAL_TIME_KILL: number; + TOTAL_TIME_KILL_AFTER_WARN: number; + MOVING_AIM_COEF: number; + VERTICAL_DIST_TO_IGNORE_SOUND: number; + DEFENCE_LEVEL_SHIFT: number; + MIN_DIST_CLOSE_DEF: number; + USE_ID_PRIOR_WHO_GO: boolean; + SMOKE_GRENADE_RADIUS_COEF: number; + GRENADE_PRECISION: number; + MAX_WARNS_BEFORE_KILL: number; + CARE_ENEMY_ONLY_TIME: number; + MIDDLE_POINT_COEF: number; + MAIN_TACTIC_ONLY_ATTACK: boolean; + LAST_DAMAGE_ACTIVE: number; + SHALL_DIE_IF_NOT_INITED: boolean; + CHECK_BOT_INIT_TIME_SEC: number; + WEAPON_ROOT_Y_OFFSET: number; + DELTA_SUPRESS_DISTANCE_SQRT: number; + DELTA_SUPRESS_DISTANCE: number; + WAVE_COEF_LOW: number; + WAVE_COEF_MID: number; + WAVE_COEF_HIGH: number; + WAVE_COEF_HORDE: number; + WAVE_ONLY_AS_ONLINE: boolean; + LOCAL_BOTS_COUNT: number; + AXE_MAN_KILLS_END: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/tables/IBotType.d.ts b/TypeScript/11AddTrader/types/models/eft/common/tables/IBotType.d.ts new file mode 100644 index 0000000..01be0be --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/tables/IBotType.d.ts @@ -0,0 +1,176 @@ +export interface IBotType { + appearance: Appearance; + chances: Chances; + difficulty: Difficulties; + experience: Experience; + firstName: string[]; + generation: Generation; + health: Health; + inventory: Inventory; + lastName: string[]; + skills: Skills; +} +export interface Appearance { + body: string[]; + feet: string[]; + hands: string[]; + head: string[]; + voice: string[]; +} +export interface Chances { + equipment: EquipmentChances; + mods: ModsChances; +} +export interface EquipmentChances { + ArmBand: number; + ArmorVest: number; + Backpack: number; + Earpiece: number; + Eyewear: number; + FaceCover: number; + FirstPrimaryWeapon: number; + Headwear: number; + Holster: number; + Pockets: number; + Scabbard: number; + SecondPrimaryWeapon: number; + SecuredContainer: number; + TacticalVest: number; +} +export interface ModsChances { + mod_charge: number; + mod_equipment: number; + mod_equipment_000: number; + mod_equipment_001: number; + mod_equipment_002: number; + mod_flashlight: number; + mod_foregrip: number; + mod_launcher: number; + mod_magazine: number; + mod_mount: number; + mod_mount_000: number; + mod_mount_001: number; + mod_muzzle: number; + mod_nvg: number; + mod_pistol_grip: number; + mod_reciever: number; + mod_scope: number; + mod_sight_front: number; + mod_sight_rear: number; + mod_stock: number; + mod_stock_000: number; + mod_stock_akms: number; + mod_tactical: number; + mod_tactical_000: number; + mod_tactical_001: number; + mod_tactical_002: number; + mod_tactical_003: number; +} +export interface Difficulties { + easy: Difficulty; + normal: Difficulty; + hard: Difficulty; + impossible: Difficulty; +} +export interface Difficulty { + Aiming: Record; + Boss: Record; + Change: Record; + Core: Record; + Cover: Record; + Grenade: Record; + Hearing: Record; + Lay: Record; + Look: Record; + Mind: Record; + Move: Record; + Patrol: Record; + Scattering: Record; + Shoot: Record; +} +export interface Experience { + aggressorBonus: number; + level: MinMax; + reward: MinMax; + standingForKill: number; +} +export interface Generation { + items: ItemMinMax; +} +export interface ItemMinMax { + grenades: MinMax; + healing: MinMax; + drugs: MinMax; + stims: MinMax; + looseLoot: MinMax; + magazines: MinMax; + specialItems: MinMax; +} +export interface Health { + BodyParts: BodyPart[]; + Energy: MinMax; + Hydration: MinMax; + Temperature: MinMax; +} +export interface BodyPart { + Chest: MinMax; + Head: MinMax; + LeftArm: MinMax; + LeftLeg: MinMax; + RightArm: MinMax; + RightLeg: MinMax; + Stomach: MinMax; +} +export interface MinMax { + max: number; + min: number; +} +export interface Inventory { + equipment: Equipment; + items: Items; + mods: Mods; +} +export interface Equipment { + ArmBand: Record; + ArmorVest: Record; + Backpack: Record; + Earpiece: Record; + Eyewear: Record; + FaceCover: Record; + FirstPrimaryWeapon: Record; + Headwear: Record; + Holster: Record; + Pockets: Record; + Scabbard: Record; + SecondPrimaryWeapon: Record; + SecuredContainer: Record; + TacticalVest: Record; +} +export interface Items { + Backpack: string[]; + Pockets: string[]; + SecuredContainer: string[]; + SpecialLoot: string[]; + TacticalVest: string[]; +} +export declare type Mods = Record>; +export interface Skills { + Common: Common[]; + Bonuses?: any; + Mastering: Mastering[]; + Points: number; +} +export interface Mastering { + Id: string; + Progress: number; + max?: number; + min?: number; +} +export interface Common { + Id: string; + Progress: number; + PointsEarnedDuringSession?: number; + LastAccess?: number; + max?: number; + min?: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/tables/ICustomizationItem.d.ts b/TypeScript/11AddTrader/types/models/eft/common/tables/ICustomizationItem.d.ts new file mode 100644 index 0000000..8bfeece --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/tables/ICustomizationItem.d.ts @@ -0,0 +1,33 @@ +export interface ICustomizationItem { + _id: string; + _name: string; + _parent: string; + _type: string; + _props: Props; + _proto: string; +} +export interface Props { + Name: string; + ShortName: string; + Description: string; + Side: string[]; + BodyPart: string; + AvailableAsDefault?: boolean; + Body: string; + Hands: string; + Feet: string; + Prefab: Prefab; + WatchPrefab: Prefab; + IntegratedArmorVest: boolean; + WatchPosition: Xyz; + WatchRotation: Xyz; +} +export interface Prefab { + path: string; + rcid: string; +} +export interface Xyz { + x: number; + y: number; + z: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/tables/IHandbookBase.d.ts b/TypeScript/11AddTrader/types/models/eft/common/tables/IHandbookBase.d.ts new file mode 100644 index 0000000..7d7db07 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/tables/IHandbookBase.d.ts @@ -0,0 +1,16 @@ +export interface IHandbookBase { + Categories: Category[]; + Items: HandbookItem[]; +} +export interface Category { + Id: string; + ParentId?: string; + Icon: string; + Color: string; + Order: string; +} +export interface HandbookItem { + Id: string; + ParentId: string; + Price: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/tables/IItem.d.ts b/TypeScript/11AddTrader/types/models/eft/common/tables/IItem.d.ts new file mode 100644 index 0000000..2dd2c03 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/tables/IItem.d.ts @@ -0,0 +1,108 @@ +export interface Item { + _id: string; + _tpl: string; + parentId?: string; + slotId?: string; + location?: Location | number; + upd?: Upd; +} +export interface Upd { + OriginalStackObjectsCount?: number; + Togglable?: Togglable; + Map?: Map; + Tag?: Tag; + sptPresetId?: string; + FaceShield?: FaceShield; + StackObjectsCount?: number; + UnlimitedCount?: boolean; + Repairable?: Repairable; + FireMode?: FireMode; + SpawnedInSession?: boolean; + Light?: Light; + Key?: Key; + Resource?: Resource; + Sight?: Sight; + MedKit?: MedKit; + FoodDrink?: FoodDrink; + Dogtag?: Dogtag; + BuyRestrictionMax?: number; + BuyRestrictionCurrent?: number; + Foldable?: Foldable; + SideEffect?: SideEffect; + RepairKit?: RepairKit; +} +export interface Togglable { + On: boolean; +} +export interface Map { + Markers: MapMarker[]; +} +export interface MapMarker { + X: number; + Y: number; +} +export interface Tag { + Color: number; + Name: string; +} +export interface FaceShield { + Hits: number; +} +export interface Repairable { + Durability: number; + MaxDurability: number; +} +export interface MedKit { + HpResource: number; +} +export interface Sight { + ScopesCurrentCalibPointIndexes: number[]; + ScopesSelectedModes: number[]; + SelectedScope: number; +} +export interface Foldable { + Folded: boolean; +} +export interface FireMode { + FireMode: string; +} +export interface FoodDrink { + HpPercent: number; +} +export interface Key { + NumberOfUsages: number; +} +export interface Resource { + Value: number; + UnitsConsumed: number; +} +export interface Light { + IsActive: boolean; + SelectedMode: number; +} +export interface Dogtag { + AccountId: string; + ProfileId: string; + Nickname: string; + Side: string; + Level: number; + Time: string; + Status: string; + KillerAccountId: string; + KillerProfileId: string; + KillerName: string; + WeaponName: string; +} +export interface Location { + x: number; + y: number; + r: string | number; + isSearched?: boolean; + rotation?: string; +} +export interface SideEffect { + Value: number; +} +export interface RepairKit { + Resource: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/tables/ILocationsBase.d.ts b/TypeScript/11AddTrader/types/models/eft/common/tables/ILocationsBase.d.ts new file mode 100644 index 0000000..2c96af3 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/tables/ILocationsBase.d.ts @@ -0,0 +1,10 @@ +export interface ILocationsBase { + locations: Locations; + paths: Path[]; +} +export interface Locations { +} +export interface Path { + Source: string; + Destination: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/tables/ILootBase.d.ts b/TypeScript/11AddTrader/types/models/eft/common/tables/ILootBase.d.ts new file mode 100644 index 0000000..e4baac5 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/tables/ILootBase.d.ts @@ -0,0 +1,64 @@ +import { Item } from "./IItem"; +export interface ILootBase { + staticAmmo: Record; + staticContainers: Record; + staticLoot: Record; +} +export interface IStaticAmmoDetails { + tpl: string; + relativeProbability: number; +} +export interface IStaticContainerDetails { + staticWeapons: IStaticWeaponProps[]; + staticContainers: IStaticContainerProps[]; + staticForced: IStaticForcedProps[]; +} +export interface IStaticWeaponProps { + Id: string; + IsStatic: boolean; + useGravity: boolean; + randomRotation: boolean; + Position: Xyz; + Rotation: Xyz; + IsGroupPosition: boolean; + GroupPositions: any[]; + Root: string; + Items: Item[]; +} +export interface IStaticContainerProps { + Id: string; + IsStatic: boolean; + useGravity: boolean; + randomRotation: boolean; + Position: Xyz; + Rotation: Xyz; + IsGroupPosition: boolean; + GroupPositions: any[]; + Root: any; + Items: StaticItem[]; +} +export interface Xyz { + x: number; + y: number; + z: number; +} +export interface StaticItem { + _id: any; + _tpl: string; +} +export interface IStaticForcedProps { + containerId: string; + itemTpl: string; +} +export interface IStaticLootDetails { + itemcountDistribution: ItemCountDistribution[]; + itemDistribution: ItemDistribution[]; +} +export interface ItemCountDistribution { + count: number; + relativeProbability: number; +} +export interface ItemDistribution { + tpl: string; + relativeProbability: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/tables/IQuest.d.ts b/TypeScript/11AddTrader/types/models/eft/common/tables/IQuest.d.ts new file mode 100644 index 0000000..e1fc888 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/tables/IQuest.d.ts @@ -0,0 +1,110 @@ +import { Item } from "./IItem"; +export interface IQuest { + QuestName: string; + _id: string; + canShowNotificationsInGame: boolean; + conditions: Conditions; + description: string; + failMessageText: string; + name: string; + note: string; + traderId: string; + location: string; + image: string; + type: string; + isKey: boolean; + restartable: boolean; + instantComplete: boolean; + secretQuest: boolean; + startedMessageText: string; + successMessageText: string; + templateId: string; + rewards: Rewards; + status: string; + KeyQuest: boolean; + changeQuestMessageText: string; +} +export interface Conditions { + Started: AvailableForConditions[]; + AvailableForFinish: AvailableForConditions[]; + AvailableForStart: AvailableForConditions[]; + Success: AvailableForConditions[]; + Fail: AvailableForConditions[]; +} +export interface AvailableForConditions { + _parent: string; + _props: AvailableForProps; + dynamicLocale: boolean; +} +export interface AvailableForProps { + id: string; + index: number; + parentId: string; + dynamicLocale: boolean; + value?: number; + compareMethod?: string; + visibilityConditions?: VisibilityCondition[]; + target?: string | string[]; + status?: number[]; + onlyFoundInRaid?: boolean; + oneSessionOnly?: boolean; + doNotResetIfCounterCompleted?: boolean; + dogtagLevel?: number; + maxDurability?: number; + minDurability?: number; + counter?: AvailableForCounter; + plantTime?: number; + zoneId?: string; + type?: boolean; +} +export interface AvailableForCounter { + id: string; + conditions: CounterCondition[]; +} +export interface CounterCondition { + _parent: string; + _props: CounterProps; +} +export interface CounterProps { + id: string; + target: string[] | string; + compareMethod?: string; + value?: string; + weapon?: string[]; + equipmentInclusive?: string[][]; + weaponModsInclusive?: string[][]; + status?: string[]; + bodyPart?: string[]; + daytime?: DaytimeCounter; +} +export interface DaytimeCounter { + from: number; + to: number; +} +export interface VisibilityCondition { + id: string; + value: number; + dynamicLocale: boolean; + oneSessionOnly: boolean; +} +export interface Rewards { + AvailableForStart: Reward[]; + AvailableForFinish: Reward[]; + Started: Reward[]; + Success: Reward[]; + Fail: Reward[]; + FailRestartable: Reward[]; + Expired: Reward[]; +} +export interface Reward { + value?: string; + id: string; + type: string; + index: number; + target?: string; + items?: Item[]; + loyaltyLevel?: number; + traderId?: string; + unknown?: boolean; + findInRaid?: boolean; +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/tables/IRepeatableQuests.d.ts b/TypeScript/11AddTrader/types/models/eft/common/tables/IRepeatableQuests.d.ts new file mode 100644 index 0000000..e23ec73 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/tables/IRepeatableQuests.d.ts @@ -0,0 +1,219 @@ +import { Item } from "./IItem"; +export interface IReward { + index: number; + type: string; + value: number; + target?: string; + items?: Item[]; +} +export interface IRepeatableQuestDatabase { + templates: ITemplates; + rewards: IRewardOptions; + data: IOptions; + samples: ISampleQuests[]; +} +export interface ITemplates { + Elimination: IRepeatableQuest; + Completion: IRepeatableQuest; + Exploration: IRepeatableQuest; +} +export interface IPmcDataRepeatableQuest { + id?: string; + name: string; + activeQuests: IRepeatableQuest[]; + inactiveQuests: IRepeatableQuest[]; + endTime: number; + changeRequirement: TChangeRequirementRecord; +} +export declare type TChangeRequirementRecord = Record; +export interface IChangeRequirement { + changeCost: IChangeCost[]; + changeStandingCost: number; +} +export interface IChangeCost { + templateId: string; + count: number; +} +export interface IRepeatableQuest { + _id: any; + traderId: string; + location: any; + image: string; + type: string; + isKey: boolean; + restartable: boolean; + instantComplete: boolean; + secretQuest: boolean; + canShowNotificationsInGame: boolean; + rewards: IRewards; + conditions: IConditions; + name: string; + note: string; + description: string; + successMessageText: string; + failMessageText: string; + startedMessageText: string; + changeQuestMessageText: string; + templateId: string; + changeCost: IChangeCost[]; + changeStandingCost: number; +} +export interface IRewards { + Started: IReward[]; + Success: IReward[]; + Fail: IReward[]; +} +export interface IConditions { + AvailableForStart: any[]; + AvailableForFinish: IAvailableFor[]; + Fail: any[]; +} +export interface IAvailableFor { + _props: IAvailableForProps; + _parent: string; + dynamicLocale: boolean; +} +export interface IAvailableForProps { + id: string; + parentId: string; + dynamicLocale: boolean; + index: number; + visibilityConditions: IVisibilityCondition[]; + value: number; +} +export interface IVisibilityCondition { + id: string; + oneSessionOnly: boolean; + value: number; + index: number; + dynamicLocale: boolean; +} +export interface IAvailableForPropsCounter extends IAvailableForProps { + type: string; + oneSessionOnly: boolean; + doNotResetIfCounterCompleted: boolean; + counter: ICounter; +} +export interface ICounter { + id: string; + conditions: ICondition[]; +} +export interface ICondition { + _props: IConditionProps; + _parent: string; +} +export interface IConditionProps { + id: string; + dynamicLocale: boolean; +} +export interface IElimination extends IRepeatableQuest { + conditions: IEliminationConditions; +} +export interface IEliminationConditions extends IConditions { + AvailableForFinish: IEliminationAvailableFor[]; +} +export interface IEliminationAvailableFor extends IAvailableFor { + _props: IEliminationAvailableForProps; +} +export interface IEliminationAvailableForProps extends IAvailableForPropsCounter { + counter: IEliminationCounter; +} +export interface IEliminationCounter extends ICounter { + conditions: IEliminationCondition[]; +} +export interface IEliminationCondition extends ICondition { + _props: ILocationConditionProps | IKillConditionProps; +} +export interface IExploration extends IRepeatableQuest { + conditions: IExplorationConditions; +} +export interface IExplorationConditions extends IConditions { + AvailableForFinish: IExplorationAvailableFor[]; +} +export interface IExplorationAvailableFor extends IAvailableFor { + _props: IExplorationAvailableForProps; +} +export interface IExplorationAvailableForProps extends IAvailableForPropsCounter { + counter: IExplorationCounter; +} +export interface IExplorationCounter extends ICounter { + conditions: IExplorationCondition[]; +} +export interface IExplorationCondition extends ICondition { + _props: ILocationConditionProps | IExitStatusConditionProps | IExitNameConditionProps; +} +export interface ICompletion extends IRepeatableQuest { + conditions: ICompletionConditions; +} +export interface ICompletionConditions extends IConditions { + AvailableForFinish: ICompletionAvailableFor[]; +} +export interface ICompletionAvailableFor extends IAvailableFor { + _props: ICompletionAvailableForProps; +} +export interface ICompletionAvailableForProps extends IAvailableForProps { + target: string[]; + minDurability: number; + maxDurability: number; + dogtagLevel: number; + onlyFoundInRaid: boolean; +} +export interface ILocationConditionProps extends IConditionProps { + target: string[]; +} +export interface IKillConditionProps extends IConditionProps { + target: string; + value: number; + savageRole?: string[]; + bodyPart?: string[]; + distance?: IDistanceCheck; +} +export interface IDistanceCheck { + compareMethod: string; + value: number; +} +export interface IExitStatusConditionProps extends IConditionProps { + status: string[]; +} +export interface IExitNameConditionProps extends IConditionProps { + exitName: string; +} +export interface IRewardOptions { + itemsBlacklist: string[]; +} +export interface IOptions { + Completion: ICompletionFilter; +} +export interface ICompletionFilter { + itemsBlacklist: ItemsBlacklist[]; + itemsWhitelist: ItemsWhitelist[]; +} +export interface ItemsBlacklist { + minPlayerLevel: number; + itemIds: string[]; +} +export interface ItemsWhitelist { + minPlayerLevel: number; + itemIds: string[]; +} +export interface ISampleQuests { + _id: string; + traderId: string; + location: string; + image: string; + type: string; + isKey: boolean; + restartable: boolean; + instantComplete: boolean; + secretQuest: boolean; + canShowNotificationsInGame: boolean; + rewards: IRewards; + conditions: IConditions; + name: string; + note: string; + description: string; + successMessageText: string; + failMessageText: string; + startedMessageText: string; + templateId: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/common/tables/ITemplateItem.d.ts b/TypeScript/11AddTrader/types/models/eft/common/tables/ITemplateItem.d.ts new file mode 100644 index 0000000..c2ba762 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/models/eft/common/tables/ITrader.d.ts b/TypeScript/11AddTrader/types/models/eft/common/tables/ITrader.d.ts new file mode 100644 index 0000000..f0fe2b5 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/common/tables/ITrader.d.ts @@ -0,0 +1,90 @@ +import { Item } from "./IItem"; +export interface ITrader { + assort: ITraderAssort; + base: ITraderBase; + dialogue?: Record; + questassort: Record>; + suits?: ISuit[]; +} +export interface ITraderBase { + refreshAssort: boolean; + _id: string; + avatar: string; + balance_dol: number; + balance_eur: number; + balance_rub: number; + buyer_up: boolean; + currency: string; + customization_seller: boolean; + discount: number; + discount_end: number; + gridHeight: number; + insurance: Insurance; + location: string; + loyaltyLevels: LoyaltyLevel[]; + medic: boolean; + name: string; + nextResupply: number; + nickname: string; + repair: Repair; + sell_category: string[]; + surname: string; + unlockedByDefault: boolean; +} +export interface Insurance { + availability: boolean; + excluded_category: string[]; + max_return_hour: number; + max_storage_time: number; + min_payment: number; + min_return_hour: number; +} +export interface LoyaltyLevel { + buy_price_coef: number; + exchange_price_coef: number; + heal_price_coef: number; + insurance_price_coef: number; + minLevel: number; + minSalesSum: number; + minStanding: number; + repair_price_coef: number; +} +export interface Repair { + availability: boolean; + currency: string; + currency_coefficient: number; + excluded_category: string[]; + excluded_id_list: any[]; + quality: string; +} +export interface ITraderAssort { + nextResupply?: number; + items: Item[]; + barter_scheme: Record; + loyal_level_items: Record; +} +export interface IBarterScheme { + count: number; + _tpl: string; + onlyFunctional?: boolean; +} +export interface ISuit { + _id: string; + tid: string; + suiteId: string; + isActive: boolean; + requirements: Requirements; +} +export interface Requirements { + loyaltyLevel: number; + profileLevel: number; + standing: number; + skillRequirements: string[]; + questRequirements: string[]; + itemRequirements: ItemRequirement[]; +} +export interface ItemRequirement { + count: number; + _tpl: string; + onlyFunctional: boolean; +} diff --git a/TypeScript/11AddTrader/types/models/eft/customization/IBuyClothingRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/customization/IBuyClothingRequestData.d.ts new file mode 100644 index 0000000..d19b70d --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/customization/IBuyClothingRequestData.d.ts @@ -0,0 +1,10 @@ +export interface IBuyClothingRequestData { + Action: "CustomizationBuy"; + offer: string; + items: ClothingItem[]; +} +export interface ClothingItem { + del: boolean; + id: string; + count: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/customization/IWearClothingRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/customization/IWearClothingRequestData.d.ts new file mode 100644 index 0000000..122d9cf --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/customization/IWearClothingRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IWearClothingRequestData { + Action: "CustomizationWear"; + suites: string[]; +} diff --git a/TypeScript/11AddTrader/types/models/eft/dialog/IFriendRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/dialog/IFriendRequestData.d.ts new file mode 100644 index 0000000..9c326ac --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/dialog/IFriendRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IFriendRequestData { + to: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/dialog/IGetAllAttachmentsRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/dialog/IGetAllAttachmentsRequestData.d.ts new file mode 100644 index 0000000..53d8289 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/dialog/IGetAllAttachmentsRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetAllAttachmentsRequestData { + dialogId: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/dialog/IGetAllAttachmentsResponse.d.ts b/TypeScript/11AddTrader/types/models/eft/dialog/IGetAllAttachmentsResponse.d.ts new file mode 100644 index 0000000..076d414 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/dialog/IGetAllAttachmentsResponse.d.ts @@ -0,0 +1,6 @@ +import { Message } from "../profile/IAkiProfile"; +export interface IGetAllAttachmentsResponse { + messages: Message[]; + profiles: any[]; + hasMessagesWithRewards: boolean; +} diff --git a/TypeScript/11AddTrader/types/models/eft/dialog/IGetChatServerListRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/dialog/IGetChatServerListRequestData.d.ts new file mode 100644 index 0000000..8f1beac --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/dialog/IGetChatServerListRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetChatServerListRequestData { + VersionId: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/dialog/IGetFriendListDataResponse.d.ts b/TypeScript/11AddTrader/types/models/eft/dialog/IGetFriendListDataResponse.d.ts new file mode 100644 index 0000000..1d0c0e8 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/dialog/IGetFriendListDataResponse.d.ts @@ -0,0 +1,16 @@ +import { MemberCategory } from "../../enums/MemberCategory"; +export interface IGetFriendListDataResponse { + Friends: Friend[]; + Ignore: any[]; + InIgnoreList: any[]; +} +export interface Friend { + _id: string; + Info: Info; +} +export interface Info { + Nickname: string; + Side: string; + Level: number; + MemberCategory: MemberCategory; +} diff --git a/TypeScript/11AddTrader/types/models/eft/dialog/IGetMailDialogInfoRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/dialog/IGetMailDialogInfoRequestData.d.ts new file mode 100644 index 0000000..eed84b1 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/dialog/IGetMailDialogInfoRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetMailDialogInfoRequestData { + dialogId: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/dialog/IGetMailDialogListRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/dialog/IGetMailDialogListRequestData.d.ts new file mode 100644 index 0000000..f8fbf5d --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/dialog/IGetMailDialogListRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IGetMailDialogListRequestData { + limit: number; + offset: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/dialog/IGetMailDialogViewRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/dialog/IGetMailDialogViewRequestData.d.ts new file mode 100644 index 0000000..43d416e --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/dialog/IGetMailDialogViewRequestData.d.ts @@ -0,0 +1,7 @@ +import { MessageType } from "../../enums/MessageType"; +export interface IGetMailDialogViewRequestData { + type: MessageType; + dialogId: string; + limit: number; + time: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/dialog/IGetMailDialogViewResponseData.d.ts b/TypeScript/11AddTrader/types/models/eft/dialog/IGetMailDialogViewResponseData.d.ts new file mode 100644 index 0000000..4f8b946 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/dialog/IGetMailDialogViewResponseData.d.ts @@ -0,0 +1,7 @@ +import { IPmcData } from "../common/IPmcData"; +import { Message } from "../profile/IAkiProfile"; +export interface IGetMailDialogViewResponseData { + messages: Message[]; + profiles: IPmcData[]; + hasMessagesWithRewards: boolean; +} diff --git a/TypeScript/11AddTrader/types/models/eft/dialog/IPinDialogRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/dialog/IPinDialogRequestData.d.ts new file mode 100644 index 0000000..57b8a00 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/dialog/IPinDialogRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IPinDialogRequestData { + dialogId: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/dialog/IRemoveDialogRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/dialog/IRemoveDialogRequestData.d.ts new file mode 100644 index 0000000..874b828 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/dialog/IRemoveDialogRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IRemoveDialogRequestData { + dialogId: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/dialog/ISendMessageRequest.d.ts b/TypeScript/11AddTrader/types/models/eft/dialog/ISendMessageRequest.d.ts new file mode 100644 index 0000000..dd79deb --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/dialog/ISendMessageRequest.d.ts @@ -0,0 +1,7 @@ +import { MessageType } from "../../enums/MessageType"; +export interface ISendMessageRequest { + dialogId: string; + type: MessageType; + text: string; + replyTo: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/dialog/ISetDialogReadRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/dialog/ISetDialogReadRequestData.d.ts new file mode 100644 index 0000000..2076232 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/dialog/ISetDialogReadRequestData.d.ts @@ -0,0 +1,3 @@ +export interface ISetDialogReadRequestData { + dialogs: string[]; +} diff --git a/TypeScript/11AddTrader/types/models/eft/game/IGameConfigResponse.d.ts b/TypeScript/11AddTrader/types/models/eft/game/IGameConfigResponse.d.ts new file mode 100644 index 0000000..eb37a39 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/game/IGameConfigResponse.d.ts @@ -0,0 +1,19 @@ +export interface IGameConfigResponse { + aid: string; + lang: string; + languages: Record; + ndaFree: boolean; + taxonomy: number; + activeProfileId: string; + backend: Backend; + utc_time: number; + totalInGame: number; + reportAvailable: boolean; + twitchEventMember: boolean; +} +export interface Backend { + Trading: string; + Messaging: string; + Main: string; + RagFair: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/game/IGameEmptyCrcRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/game/IGameEmptyCrcRequestData.d.ts new file mode 100644 index 0000000..a3ecad9 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/game/IGameEmptyCrcRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGameEmptyCrcRequestData { + crc: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/game/IVersionValidateRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/game/IVersionValidateRequestData.d.ts new file mode 100644 index 0000000..0aa0fed --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/game/IVersionValidateRequestData.d.ts @@ -0,0 +1,11 @@ +export interface IVersionValidateRequestData { + version: Version; + develop: boolean; +} +export interface Version { + major: string; + minor: string; + game: string; + backend: string; + taxonomy: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/health/IHealthTreatmentRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/health/IHealthTreatmentRequestData.d.ts new file mode 100644 index 0000000..7fb80a8 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/health/IHealthTreatmentRequestData.d.ts @@ -0,0 +1,29 @@ +export interface IHealthTreatmentRequestData { + Action: "RestoreHealth"; + trader: string; + items: Item[]; + difference: Difference; + timestamp: number; +} +export interface Item { + id: string; + count: number; +} +export interface Difference { + BodyParts: BodyParts; + Energy: number; + Hydration: number; +} +export interface BodyParts { + Head: BodyPart; + Chest: BodyPart; + Stomach: BodyPart; + LeftArm: BodyPart; + RightArm: BodyPart; + LeftLeg: BodyPart; + RightLeg: BodyPart; +} +export interface BodyPart { + Health: number; + Effects: string[]; +} diff --git a/TypeScript/11AddTrader/types/models/eft/health/IOffraidEatRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/health/IOffraidEatRequestData.d.ts new file mode 100644 index 0000000..8e2b6c3 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/health/IOffraidEatRequestData.d.ts @@ -0,0 +1,7 @@ +import { IBaseInteractionRequestData } from "../common/request/IBaseInteractionRequestData"; +export interface IOffraidEatRequestData extends IBaseInteractionRequestData { + Action: "Eat"; + item: string; + count: number; + time: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/health/IOffraidHealRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/health/IOffraidHealRequestData.d.ts new file mode 100644 index 0000000..c242300 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/health/IOffraidHealRequestData.d.ts @@ -0,0 +1,18 @@ +import { IBaseInteractionRequestData } from "../common/request/IBaseInteractionRequestData"; +export interface IOffraidHealRequestData extends IBaseInteractionRequestData { + Action: "Heal"; + item: string; + part: BodyPart; + count: number; + time: number; +} +export declare enum BodyPart { + Head = 0, + Chest = 1, + Stomach = 2, + LeftArm = 3, + RightArm = 4, + LeftLeg = 5, + RightLeg = 6, + Common = 7 +} diff --git a/TypeScript/11AddTrader/types/models/eft/health/ISyncHealthRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/health/ISyncHealthRequestData.d.ts new file mode 100644 index 0000000..20e32f6 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/health/ISyncHealthRequestData.d.ts @@ -0,0 +1,21 @@ +export interface ISyncHealthRequestData { + Health: Health; + IsAlive: boolean; + Hydration?: number; + Energy?: number; + Temperature?: number; +} +export interface Health { + Head?: BodyPartHealth; + Chest?: BodyPartHealth; + Stomach?: BodyPartHealth; + LeftArm?: BodyPartHealth; + RightArm?: BodyPartHealth; + LeftLeg?: BodyPartHealth; + RightLeg?: BodyPartHealth; +} +export interface BodyPartHealth { + Maximum: number; + Current: number; + Effects: Record; +} diff --git a/TypeScript/11AddTrader/types/models/eft/hideout/HideoutUpgradeCompleteRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/hideout/HideoutUpgradeCompleteRequestData.d.ts new file mode 100644 index 0000000..8583e8d --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/hideout/HideoutUpgradeCompleteRequestData.d.ts @@ -0,0 +1,5 @@ +export interface HideoutUpgradeCompleteRequestData { + Action: string; + areaType: number; + timestamp: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutArea.d.ts b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutArea.d.ts new file mode 100644 index 0000000..d9fd2bf --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutArea.d.ts @@ -0,0 +1,40 @@ +export interface IHideoutArea { + _id: string; + type: number; + enabled: boolean; + needsFuel: boolean; + takeFromSlotLocked: boolean; + craftGivesExp: boolean; + stages: Record; +} +export interface Stage { + requirements: Requirement[]; + bonuses: StageBonus[]; + slots: number; + constructionTime: number; + description: string; +} +export interface Requirement { + areaType?: number; + requiredLevel?: number; + type: string; + templateId?: string; + count?: number; + isFunctional?: boolean; + traderId?: string; + loyaltyLevel?: number; + skillName?: string; + skillLevel?: number; +} +export interface StageBonus { + value: number; + passive: boolean; + production: boolean; + visible: boolean; + skillType?: string; + type: string; + filter?: string[]; + icon?: string; + id?: string; + templateId?: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutContinousProductionStartRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutContinousProductionStartRequestData.d.ts new file mode 100644 index 0000000..dba83eb --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutContinousProductionStartRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IHideoutContinousProductionStartRequestData { + Action: "HideoutContinuousProductionStart"; + recipeId: string; + timestamp: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutProduction.d.ts b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutProduction.d.ts new file mode 100644 index 0000000..ce878be --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutProduction.d.ts @@ -0,0 +1,20 @@ +export interface IHideoutProduction { + _id: string; + areaType: number; + requirements: Requirement[]; + productionTime: number; + boosters: any; + endProduct: string; + continuous: boolean; + count: number; + productionLimitCount: number; +} +export interface Requirement { + templateId?: string; + count?: number; + isFunctional?: boolean; + type: string; + areaType?: number; + requiredLevel?: number; + resource?: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutPutItemInRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutPutItemInRequestData.d.ts new file mode 100644 index 0000000..8326c55 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutPutItemInRequestData.d.ts @@ -0,0 +1,10 @@ +export interface IHideoutPutItemInRequestData { + Action: "HideoutPutItemsInAreaSlots"; + areaType: number; + items: Record; + timestamp: number; +} +export interface ItemDetails { + count: number; + id: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutScavCase.d.ts b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutScavCase.d.ts new file mode 100644 index 0000000..25abcf3 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutScavCase.d.ts @@ -0,0 +1,21 @@ +export interface IHideoutScavCase { + _id: string; + ProductionTime: number; + Requirements: Requirement[]; + EndProducts: EndProducts; +} +export interface Requirement { + templateId: string; + count: number; + isFunctional: boolean; + type: string; +} +export interface EndProducts { + Common: MinMax; + Rare: MinMax; + Superrare: MinMax; +} +export interface MinMax { + min: string; + max: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutScavCaseStartRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutScavCaseStartRequestData.d.ts new file mode 100644 index 0000000..72fda86 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutScavCaseStartRequestData.d.ts @@ -0,0 +1,15 @@ +export interface IHideoutScavCaseStartRequestData { + Action: "HideoutScavCaseProductionStart"; + recipeId: string; + items: HideoutItem[]; + tools: Tool[]; + timestamp: number; +} +export interface HideoutItem { + id: string; + count: number; +} +export interface Tool { + id: string; + count: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutSettingsBase.d.ts b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutSettingsBase.d.ts new file mode 100644 index 0000000..8e45939 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutSettingsBase.d.ts @@ -0,0 +1,6 @@ +export interface IHideoutSettingsBase { + generatorSpeedWithoutFuel: number; + generatorFuelFlowRate: number; + airFilterUnitFlowRate: number; + gpuBoostRate: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutSingleProductionStartRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutSingleProductionStartRequestData.d.ts new file mode 100644 index 0000000..1ed542a --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutSingleProductionStartRequestData.d.ts @@ -0,0 +1,10 @@ +export interface IHideoutSingleProductionStartRequestData { + Action: "HideoutSingleProductionStart"; + recipeId: string; + items: Item[]; + timestamp: number; +} +export interface Item { + id: string; + count: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutTakeItemOutRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutTakeItemOutRequestData.d.ts new file mode 100644 index 0000000..83a740a --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutTakeItemOutRequestData.d.ts @@ -0,0 +1,6 @@ +export interface IHideoutTakeItemOutRequestData { + Action: "HideoutTakeItemsFromAreaSlots"; + areaType: number; + slots: number[]; + timestamp: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutTakeProductionRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutTakeProductionRequestData.d.ts new file mode 100644 index 0000000..a6847ef --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutTakeProductionRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IHideoutTakeProductionRequestData { + Action: "HideoutTakeProduction"; + recipeId: string; + timestamp: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutToggleAreaRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutToggleAreaRequestData.d.ts new file mode 100644 index 0000000..cdea513 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutToggleAreaRequestData.d.ts @@ -0,0 +1,6 @@ +export interface IHideoutToggleAreaRequestData { + Action: "HideoutToggleArea"; + areaType: number; + enabled: boolean; + timestamp: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutUpgradeCompleteRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutUpgradeCompleteRequestData.d.ts new file mode 100644 index 0000000..545311e --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutUpgradeCompleteRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IHideoutUpgradeCompleteRequestData { + Action: "HideoutUpgradeComplete"; + areaType: number; + timestamp: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutUpgradeRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutUpgradeRequestData.d.ts new file mode 100644 index 0000000..dfbfdca --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/hideout/IHideoutUpgradeRequestData.d.ts @@ -0,0 +1,10 @@ +export interface IHideoutUpgradeRequestData { + Action: "HideoutUpgrade"; + areaType: number; + items: HideoutItem[]; + timestamp: number; +} +export interface HideoutItem { + count: number; + id: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/httpResponse/IGetBodyResponseData.d.ts b/TypeScript/11AddTrader/types/models/eft/httpResponse/IGetBodyResponseData.d.ts new file mode 100644 index 0000000..b5dc5c1 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/httpResponse/IGetBodyResponseData.d.ts @@ -0,0 +1,5 @@ +export interface IGetBodyResponseData { + err: number; + errmsg: any; + (data: Type): Type; +} diff --git a/TypeScript/11AddTrader/types/models/eft/httpResponse/INullResponseData.d.ts b/TypeScript/11AddTrader/types/models/eft/httpResponse/INullResponseData.d.ts new file mode 100644 index 0000000..a3ae838 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/httpResponse/INullResponseData.d.ts @@ -0,0 +1,5 @@ +export interface INullResponseData { + err: number; + errmsg: any; + data: null; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inRaid/IRegisterPlayerRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inRaid/IRegisterPlayerRequestData.d.ts new file mode 100644 index 0000000..e2d9cf1 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inRaid/IRegisterPlayerRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IRegisterPlayerRequestData { + crc: number; + locationId: string; + variantId: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inRaid/ISaveProgressRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inRaid/ISaveProgressRequestData.d.ts new file mode 100644 index 0000000..6930261 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inRaid/ISaveProgressRequestData.d.ts @@ -0,0 +1,8 @@ +import { IPmcData } from "../common/IPmcData"; +import { ISyncHealthRequestData } from "../health/ISyncHealthRequestData"; +export interface ISaveProgressRequestData { + exit: string; + profile: IPmcData; + isPlayerScav: boolean; + health: ISyncHealthRequestData; +} diff --git a/TypeScript/11AddTrader/types/models/eft/insurance/IGetInsuranceCostRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/insurance/IGetInsuranceCostRequestData.d.ts new file mode 100644 index 0000000..0e32e96 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/insurance/IGetInsuranceCostRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IGetInsuranceCostRequestData { + traders: string[]; + items: string[]; +} diff --git a/TypeScript/11AddTrader/types/models/eft/insurance/IInsureRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/insurance/IInsureRequestData.d.ts new file mode 100644 index 0000000..f657bb7 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/insurance/IInsureRequestData.d.ts @@ -0,0 +1,6 @@ +import { IBaseInteractionRequestData } from "../common/request/IBaseInteractionRequestData"; +export interface IInsureRequestData extends IBaseInteractionRequestData { + Action: "Insure"; + tid: string; + items: string[]; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inventory/IAddItemRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inventory/IAddItemRequestData.d.ts new file mode 100644 index 0000000..53db97a --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inventory/IAddItemRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IAddItemRequestData { + tid: string; + items: any[]; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryAddRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryAddRequestData.d.ts new file mode 100644 index 0000000..462e0de --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryAddRequestData.d.ts @@ -0,0 +1,6 @@ +import { Container, IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryAddRequestData extends IInventoryBaseActionRequestData { + Action: "Add"; + item: string; + container: Container; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryBaseActionRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryBaseActionRequestData.d.ts new file mode 100644 index 0000000..b45e459 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryBaseActionRequestData.d.ts @@ -0,0 +1,27 @@ +import { IBaseInteractionRequestData } from "../common/request/IBaseInteractionRequestData"; +export interface IInventoryBaseActionRequestData extends IBaseInteractionRequestData { +} +export interface To { + id: string; + container: string; + location?: ToLocation | number; +} +export interface ToLocation { + x: number; + y: number; + r: string; + rotation?: string; + isSearched: boolean; +} +export interface Container { + id: string; + container: string; + location: Location | number; +} +export interface Location { + x: number; + y: number; + r: string; + rotation?: string; + isSearched: boolean; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryBindRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryBindRequestData.d.ts new file mode 100644 index 0000000..ff35066 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryBindRequestData.d.ts @@ -0,0 +1,6 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryBindRequestData extends IInventoryBaseActionRequestData { + Action: "Bind"; + item: string; + index: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryCreateMarkerRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryCreateMarkerRequestData.d.ts new file mode 100644 index 0000000..1e1ecef --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryCreateMarkerRequestData.d.ts @@ -0,0 +1,12 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryCreateMarkerRequestData extends IInventoryBaseActionRequestData { + Action: "CreateMapMarker"; + item: string; + mapMarker: MapMarker; +} +export interface MapMarker { + Type: string; + X: number; + Y: number; + Note: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryDeleteMarkerRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryDeleteMarkerRequestData.d.ts new file mode 100644 index 0000000..0657e1b --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryDeleteMarkerRequestData.d.ts @@ -0,0 +1,7 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryDeleteMarkerRequestData extends IInventoryBaseActionRequestData { + Action: "DeleteMapMarker"; + item: string; + X: number; + Y: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryEditMarkerRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryEditMarkerRequestData.d.ts new file mode 100644 index 0000000..e2857e1 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryEditMarkerRequestData.d.ts @@ -0,0 +1,14 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryEditMarkerRequestData extends IInventoryBaseActionRequestData { + Action: "EditMapMarker"; + item: string; + X: number; + Y: number; + mapMarker: MapMarker; +} +export interface MapMarker { + Type: string; + X: number; + Y: number; + Note: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryExamineRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryExamineRequestData.d.ts new file mode 100644 index 0000000..614711f --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryExamineRequestData.d.ts @@ -0,0 +1,10 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryExamineRequestData extends IInventoryBaseActionRequestData { + Action: "Examine"; + item: string; + fromOwner: IFromOwner; +} +export interface IFromOwner { + id: string; + type: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryFoldRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryFoldRequestData.d.ts new file mode 100644 index 0000000..a5fb2a1 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryFoldRequestData.d.ts @@ -0,0 +1,6 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryFoldRequestData extends IInventoryBaseActionRequestData { + Action: "Fold"; + item: string; + value: boolean; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryMergeRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryMergeRequestData.d.ts new file mode 100644 index 0000000..3fcfa35 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryMergeRequestData.d.ts @@ -0,0 +1,6 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryMergeRequestData extends IInventoryBaseActionRequestData { + Action: "Merge"; + item: string; + with: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryMoveRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryMoveRequestData.d.ts new file mode 100644 index 0000000..b767908 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryMoveRequestData.d.ts @@ -0,0 +1,6 @@ +import { IInventoryBaseActionRequestData, To } from "./IInventoryBaseActionRequestData"; +export interface IInventoryMoveRequestData extends IInventoryBaseActionRequestData { + Action: "Move"; + item: string; + to: To; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryReadEncyclopediaRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryReadEncyclopediaRequestData.d.ts new file mode 100644 index 0000000..5487b20 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryReadEncyclopediaRequestData.d.ts @@ -0,0 +1,5 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryReadEncyclopediaRequestData extends IInventoryBaseActionRequestData { + Action: "ReadEncyclopedia"; + ids: string[]; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryRemoveRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryRemoveRequestData.d.ts new file mode 100644 index 0000000..07d1a52 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryRemoveRequestData.d.ts @@ -0,0 +1,5 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryRemoveRequestData extends IInventoryBaseActionRequestData { + Action: "Remove"; + item: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inventory/IInventorySortRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inventory/IInventorySortRequestData.d.ts new file mode 100644 index 0000000..a0b7928 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inventory/IInventorySortRequestData.d.ts @@ -0,0 +1,20 @@ +import { Upd } from "../common/tables/IItem"; +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventorySortRequestData extends IInventoryBaseActionRequestData { + Action: "ApplyInventoryChanges"; + changedItems: ChangedItem[]; +} +export interface ChangedItem { + _id: string; + _tpl: string; + parentId: string; + slotId: string; + location: Location; + upd: Upd; +} +export interface Location { + x: number; + y: number; + r: string; + isSearched: boolean; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inventory/IInventorySplitRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inventory/IInventorySplitRequestData.d.ts new file mode 100644 index 0000000..730ae71 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inventory/IInventorySplitRequestData.d.ts @@ -0,0 +1,7 @@ +import { Container, IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventorySplitRequestData extends IInventoryBaseActionRequestData { + Action: "Split"; + item: string; + container: Container; + count: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inventory/IInventorySwapRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inventory/IInventorySwapRequestData.d.ts new file mode 100644 index 0000000..1b0464d --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inventory/IInventorySwapRequestData.d.ts @@ -0,0 +1,11 @@ +import { OwnerInfo } from "../common/request/IBaseInteractionRequestData"; +import { IInventoryBaseActionRequestData, To } from "./IInventoryBaseActionRequestData"; +export interface IInventorySwapRequestData extends IInventoryBaseActionRequestData { + Action: "Swap"; + item: string; + to: To; + item2: string; + to2: To; + fromOwner2: OwnerInfo; + toOwner2: OwnerInfo; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryTagRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryTagRequestData.d.ts new file mode 100644 index 0000000..f021661 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryTagRequestData.d.ts @@ -0,0 +1,7 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryTagRequestData extends IInventoryBaseActionRequestData { + Action: "Tag"; + item: string; + TagName: string; + TagColor: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryToggleRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryToggleRequestData.d.ts new file mode 100644 index 0000000..0955440 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryToggleRequestData.d.ts @@ -0,0 +1,6 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryToggleRequestData extends IInventoryBaseActionRequestData { + Action: "Toggle"; + item: string; + value: boolean; +} diff --git a/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryTransferRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryTransferRequestData.d.ts new file mode 100644 index 0000000..cf4391b --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/inventory/IInventoryTransferRequestData.d.ts @@ -0,0 +1,7 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryTransferRequestData extends IInventoryBaseActionRequestData { + Action: "Transfer"; + item: string; + with: string; + count: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/itemEvent/IEmptyItemEventRouterResponse.d.ts b/TypeScript/11AddTrader/types/models/eft/itemEvent/IEmptyItemEventRouterResponse.d.ts new file mode 100644 index 0000000..689fe75 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/itemEvent/IEmptyItemEventRouterResponse.d.ts @@ -0,0 +1,4 @@ +import { IItemEventRouterBase } from "./IItemEventRouterBase"; +export interface IEmptyItemEventRouterResponse extends IItemEventRouterBase { + profileChanges: ""; +} diff --git a/TypeScript/11AddTrader/types/models/eft/itemEvent/IItemEventRouterBase.d.ts b/TypeScript/11AddTrader/types/models/eft/itemEvent/IItemEventRouterBase.d.ts new file mode 100644 index 0000000..31e62fe --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/itemEvent/IItemEventRouterBase.d.ts @@ -0,0 +1,67 @@ +import { Skills } from "../common/IPmcData"; +import { Item, Upd } from "../common/tables/IItem"; +import { IQuest } from "../common/tables/IQuest"; +import { IPmcDataRepeatableQuest } from "../common/tables/IRepeatableQuests"; +import { IRagfairOffer } from "../ragfair/IRagfairOffer"; +export interface IItemEventRouterBase { + warnings: Warning[]; + profileChanges: TProfileChanges | ""; +} +export declare type TProfileChanges = Record; +export interface Warning { + index: number; + err: string; + errmsg: string; +} +export interface ProfileChange { + _id: string; + experience: number; + quests: IQuest[]; + ragFairOffers: IRagfairOffer[]; + builds: BuildChange[]; + items: ItemChanges; + production: Record; + skills: Skills; + traderRelations: Record; + repeatableQuests?: IPmcDataRepeatableQuest[]; +} +export interface BuildChange { + id: string; + name: string; + root: string; + items: Item[]; +} +export interface ItemChanges { + new: Product[]; + change: Product[]; + del: Product[]; +} +export interface Production { + Progress: number; + StartTimestamp: number; + ProductionTime: number; + inProgress: boolean; + RecipeId: string; + Products: Product[]; +} +export interface Product { + _id: string; + _tpl?: string; + parentId?: string; + slotId?: string; + location?: ItemChangeLocation; + upd?: Upd; +} +export interface ItemChangeLocation { + x: number; + y: number; + r: number; + isSearched?: boolean; +} +export interface TraderRelations { + salesSum?: number; + standing?: number; + loyalty?: number; + unlocked?: boolean; + disabled?: boolean; +} diff --git a/TypeScript/11AddTrader/types/models/eft/itemEvent/IItemEventRouterRequest.d.ts b/TypeScript/11AddTrader/types/models/eft/itemEvent/IItemEventRouterRequest.d.ts new file mode 100644 index 0000000..515b49a --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/itemEvent/IItemEventRouterRequest.d.ts @@ -0,0 +1,21 @@ +export interface IItemEventRouterRequest { + data: Daum[]; + tm: number; + reload: number; +} +export interface Daum { + Action: string; + item: string; + to: To; +} +export interface To { + id: string; + container: string; + location?: Location; +} +export interface Location { + x: number; + y: number; + r: string; + isSearched: boolean; +} diff --git a/TypeScript/11AddTrader/types/models/eft/itemEvent/IItemEventRouterResponse.d.ts b/TypeScript/11AddTrader/types/models/eft/itemEvent/IItemEventRouterResponse.d.ts new file mode 100644 index 0000000..72a9b5b --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/itemEvent/IItemEventRouterResponse.d.ts @@ -0,0 +1,3 @@ +import { IItemEventRouterBase } from "./IItemEventRouterBase"; +export interface IItemEventRouterResponse extends IItemEventRouterBase { +} diff --git a/TypeScript/11AddTrader/types/models/eft/launcher/IChangeRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/launcher/IChangeRequestData.d.ts new file mode 100644 index 0000000..f0a7838 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/launcher/IChangeRequestData.d.ts @@ -0,0 +1,4 @@ +import { ILoginRequestData } from "./ILoginRequestData"; +export interface IChangeRequestData extends ILoginRequestData { + change: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/launcher/IGetMiniProfileRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/launcher/IGetMiniProfileRequestData.d.ts new file mode 100644 index 0000000..a14c7c9 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/launcher/IGetMiniProfileRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IGetMiniProfileRequestData { + username: string; + password: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/launcher/ILoginRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/launcher/ILoginRequestData.d.ts new file mode 100644 index 0000000..e965813 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/launcher/ILoginRequestData.d.ts @@ -0,0 +1,4 @@ +export interface ILoginRequestData { + username: string; + password: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/launcher/IMiniProfile.d.ts b/TypeScript/11AddTrader/types/models/eft/launcher/IMiniProfile.d.ts new file mode 100644 index 0000000..c12661a --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/launcher/IMiniProfile.d.ts @@ -0,0 +1,14 @@ +export interface IMiniProfile { + username: string; + nickname: string; + side: string; + currlvl: number; + currexp: number; + prevexp: number; + nextlvl: number; + maxlvl: number; + akiData: AkiData; +} +export interface AkiData { + version: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/launcher/IRegisterData.d.ts b/TypeScript/11AddTrader/types/models/eft/launcher/IRegisterData.d.ts new file mode 100644 index 0000000..61a8bbe --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/launcher/IRegisterData.d.ts @@ -0,0 +1,4 @@ +import { ILoginRequestData } from "./ILoginRequestData"; +export interface IRegisterData extends ILoginRequestData { + edition: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/launcher/IRemoveProfileData.d.ts b/TypeScript/11AddTrader/types/models/eft/launcher/IRemoveProfileData.d.ts new file mode 100644 index 0000000..d31c9ac --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/launcher/IRemoveProfileData.d.ts @@ -0,0 +1,2 @@ +import { ILoginRequestData } from "./ILoginRequestData"; +export declare type IRemoveProfileData = ILoginRequestData; diff --git a/TypeScript/11AddTrader/types/models/eft/location/IGetLocationRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/location/IGetLocationRequestData.d.ts new file mode 100644 index 0000000..04e84d9 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/location/IGetLocationRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IGetLocationRequestData { + crc: number; + locationId: string; + variantId: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/match/IEndOfflineRaidRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/match/IEndOfflineRaidRequestData.d.ts new file mode 100644 index 0000000..811e9a2 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/match/IEndOfflineRaidRequestData.d.ts @@ -0,0 +1,6 @@ +export interface IEndOfflineRaidRequestData { + crc: number; + exitStatus: string; + exitName: any; + raidSeconds: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/match/IGetProfileRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/match/IGetProfileRequestData.d.ts new file mode 100644 index 0000000..86b5bbd --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/match/IGetProfileRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetProfileRequestData { + profileId: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/match/IStartOffineRaidRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/match/IStartOffineRaidRequestData.d.ts new file mode 100644 index 0000000..84bccc8 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/match/IStartOffineRaidRequestData.d.ts @@ -0,0 +1,27 @@ +export interface IStartOfflineRaidRequestData { + locationName: string; + entryPoint: string; + startTime: number; + dateTime: string; + gameSettings: GameSettings; +} +export interface GameSettings { + timeAndWeatherSettings: TimeAndWeatherSettings; + botsSettings: BotsSettings; + wavesSettings: WavesSettings; +} +export interface TimeAndWeatherSettings { + isRandomTime: boolean; + isRandomWeather: boolean; +} +export interface BotsSettings { + isEnabled: boolean; + isScavWars: boolean; + botAmount: string; +} +export interface WavesSettings { + botDifficulty: string; + isBosses: boolean; + isTaggedAndCursed: boolean; + wavesBotAmount: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/notes/INoteActionData.d.ts b/TypeScript/11AddTrader/types/models/eft/notes/INoteActionData.d.ts new file mode 100644 index 0000000..610657f --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/notes/INoteActionData.d.ts @@ -0,0 +1,10 @@ +import { IBaseInteractionRequestData } from "../common/request/IBaseInteractionRequestData"; +export interface INoteActionData extends IBaseInteractionRequestData { + Action: string; + index: number; + note: INote; +} +export interface INote { + Time: number; + Text: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/notifier/INotifier.d.ts b/TypeScript/11AddTrader/types/models/eft/notifier/INotifier.d.ts new file mode 100644 index 0000000..8c48260 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/notifier/INotifier.d.ts @@ -0,0 +1,14 @@ +export interface INotifierChannel { + "server": string; + "channel_id": string; + "url": string; + "notifierServer": string; + "ws": string; +} +import { Message } from "../profile/IAkiProfile"; +export interface INotification { + type: "RagfairOfferSold" | "new_message" | "ping"; + eventId: string; + dialogId?: string; + message?: Message; +} diff --git a/TypeScript/11AddTrader/types/models/eft/notifier/ISelectProfileRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/notifier/ISelectProfileRequestData.d.ts new file mode 100644 index 0000000..2bc3d1e --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/notifier/ISelectProfileRequestData.d.ts @@ -0,0 +1,3 @@ +export interface ISelectProfileRequestData { + uid: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/player/IPlayerIncrementSkillLevelRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/player/IPlayerIncrementSkillLevelRequestData.d.ts new file mode 100644 index 0000000..dcd14a2 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/player/IPlayerIncrementSkillLevelRequestData.d.ts @@ -0,0 +1,21 @@ +import { Skills } from "../common/IPmcData"; +export interface IPlayerIncrementSkillLevelRequestData { + _id: string; + experience: number; + quests: any[]; + ragFairOffers: any[]; + builds: any[]; + items: Items; + production: Production; + skills: Skills; + traderRelations: TraderRelations; +} +export interface Items { + new: any[]; + change: any[]; + del: any[]; +} +export interface Production { +} +export interface TraderRelations { +} diff --git a/TypeScript/11AddTrader/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts new file mode 100644 index 0000000..99c61f1 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts @@ -0,0 +1,25 @@ +export interface IPresetBuildActionRequestData { + Action: string; + id: string; + name: string; + root: string; + items: Item[]; +} +export interface Item { + _id: string; + _tpl: string; + upd?: Upd; + parentId?: string; + slotId?: string; +} +export interface Upd { + Repairable: Repairable; + FireMode: FireMode; +} +export interface Repairable { + MaxDurability: number; + Durability: number; +} +export interface FireMode { + FireMode: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/profile/IAkiProfile.d.ts b/TypeScript/11AddTrader/types/models/eft/profile/IAkiProfile.d.ts new file mode 100644 index 0000000..80dd02d --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/models/eft/profile/IProfileChangeNicknameRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/profile/IProfileChangeNicknameRequestData.d.ts new file mode 100644 index 0000000..4a61196 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/profile/IProfileChangeNicknameRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IProfileChangeNicknameRequestData { + nickname: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/profile/IProfileChangeVoiceRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/profile/IProfileChangeVoiceRequestData.d.ts new file mode 100644 index 0000000..91058ce --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/profile/IProfileChangeVoiceRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IProfileChangeVoiceRequestData { + voice: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/profile/IProfileCreateRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/profile/IProfileCreateRequestData.d.ts new file mode 100644 index 0000000..93cc656 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/profile/IProfileCreateRequestData.d.ts @@ -0,0 +1,6 @@ +export interface IProfileCreateRequestData { + side: string; + nickname: string; + headId: string; + voiceId: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/profile/ISearchFriendRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/profile/ISearchFriendRequestData.d.ts new file mode 100644 index 0000000..e63e386 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/profile/ISearchFriendRequestData.d.ts @@ -0,0 +1,3 @@ +export interface ISearchFriendRequestData { + nickname: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/profile/ISearchFriendResponse.d.ts b/TypeScript/11AddTrader/types/models/eft/profile/ISearchFriendResponse.d.ts new file mode 100644 index 0000000..96d88b2 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/profile/ISearchFriendResponse.d.ts @@ -0,0 +1,9 @@ +export interface ISearchFriendResponse { + _id: string; + Info: Info; +} +export interface Info { + Nickname: string; + Side: string; + Level: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/profile/IValidateNicknameRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/profile/IValidateNicknameRequestData.d.ts new file mode 100644 index 0000000..9cca7e7 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/profile/IValidateNicknameRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IValidateNicknameRequestData { + nickname: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/quests/IAcceptQuestRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/quests/IAcceptQuestRequestData.d.ts new file mode 100644 index 0000000..0e4821a --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/quests/IAcceptQuestRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IAcceptQuestRequestData { + Action: "QuestAccept"; + qid: string; + type: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/quests/ICompleteQuestRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/quests/ICompleteQuestRequestData.d.ts new file mode 100644 index 0000000..cc67404 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/quests/ICompleteQuestRequestData.d.ts @@ -0,0 +1,5 @@ +export interface ICompleteQuestRequestData { + Action: string; + qid: string; + removeExcessItems: boolean; +} diff --git a/TypeScript/11AddTrader/types/models/eft/quests/IHandoverQuestRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/quests/IHandoverQuestRequestData.d.ts new file mode 100644 index 0000000..63f10a8 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/quests/IHandoverQuestRequestData.d.ts @@ -0,0 +1,10 @@ +export interface IHandoverQuestRequestData { + Action: "QuestHandover"; + qid: string; + conditionId: string; + items: Item[]; +} +export interface Item { + id: string; + count: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/quests/IListQuestsRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/quests/IListQuestsRequestData.d.ts new file mode 100644 index 0000000..91f0b8c --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/quests/IListQuestsRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IListQuestsRequestData { + completed: boolean; +} diff --git a/TypeScript/11AddTrader/types/models/eft/quests/IRepeatableQuestChangeRequest.d.ts b/TypeScript/11AddTrader/types/models/eft/quests/IRepeatableQuestChangeRequest.d.ts new file mode 100644 index 0000000..015f58e --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/quests/IRepeatableQuestChangeRequest.d.ts @@ -0,0 +1,4 @@ +export interface IRepeatableQuestChangeRequest { + Action: "RepeatableQuestChange"; + qid: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/ragfair/IAddOfferRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/ragfair/IAddOfferRequestData.d.ts new file mode 100644 index 0000000..465ee02 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/ragfair/IAddOfferRequestData.d.ts @@ -0,0 +1,13 @@ +export interface IAddOfferRequestData { + Action: string; + sellInOnePiece: boolean; + items: string[]; + requirements: Requirement[]; +} +export interface Requirement { + _tpl: string; + count: number; + level: number; + side: number; + onlyFunctional: boolean; +} diff --git a/TypeScript/11AddTrader/types/models/eft/ragfair/IExtendOfferRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/ragfair/IExtendOfferRequestData.d.ts new file mode 100644 index 0000000..2a4a876 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/ragfair/IExtendOfferRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IExtendOfferRequestData { + offerId: string; + renewalTime: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/ragfair/IGetItemPriceResult.d.ts b/TypeScript/11AddTrader/types/models/eft/ragfair/IGetItemPriceResult.d.ts new file mode 100644 index 0000000..676322a --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/ragfair/IGetItemPriceResult.d.ts @@ -0,0 +1,5 @@ +export interface IGetItemPriceResult { + avg: number; + min: number; + max: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/ragfair/IGetMarketPriceRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/ragfair/IGetMarketPriceRequestData.d.ts new file mode 100644 index 0000000..00f8f17 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/ragfair/IGetMarketPriceRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetMarketPriceRequestData { + templateId: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/ragfair/IGetOffersResult.d.ts b/TypeScript/11AddTrader/types/models/eft/ragfair/IGetOffersResult.d.ts new file mode 100644 index 0000000..1c11422 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/ragfair/IGetOffersResult.d.ts @@ -0,0 +1,7 @@ +import { IRagfairOffer } from "./IRagfairOffer"; +export interface IGetOffersResult { + categories: Record; + offers: IRagfairOffer[]; + offersCount: number; + selectedCategory: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/ragfair/IRagfairOffer.d.ts b/TypeScript/11AddTrader/types/models/eft/ragfair/IRagfairOffer.d.ts new file mode 100644 index 0000000..63f655e --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/ragfair/IRagfairOffer.d.ts @@ -0,0 +1,42 @@ +import { MemberCategory } from "../../enums/MemberCategory"; +import { Item } from "../common/tables/IItem"; +export interface IRagfairOffer { + sellResult?: SellResult[]; + _id: string; + items: Item[]; + requirements: OfferRequirement[]; + root: string; + intId: number; + itemsCost: number; + requirementsCost: number; + startTime: number; + endTime: number; + sellInOnePiece: boolean; + name?: string; + shortName?: string; + loyaltyLevel: number; + locked: boolean; + unlimitedCount: boolean; + summaryCost: number; + user: IRagfairOfferUser; + notAvailable: boolean; + CurrentItemCount: number; + priority: boolean; +} +export interface OfferRequirement { + _tpl: string; + count: number; + onlyFunctional: boolean; +} +export interface IRagfairOfferUser { + id: string; + nickname: string; + rating: number; + memberType: MemberCategory; + avatar: string; + isRatingGrowing: boolean; +} +export interface SellResult { + sellTime: number; + amount: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/ragfair/IRemoveOfferRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/ragfair/IRemoveOfferRequestData.d.ts new file mode 100644 index 0000000..d926615 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/ragfair/IRemoveOfferRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IRemoveOfferRequestData { + Action: string; + offerId: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/ragfair/ISearchRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/ragfair/ISearchRequestData.d.ts new file mode 100644 index 0000000..08e7fd3 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/ragfair/ISearchRequestData.d.ts @@ -0,0 +1,32 @@ +export interface ISearchRequestData { + page: number; + limit: number; + sortType: number; + sortDirection: number; + currency: number; + priceFrom: number; + priceTo: number; + quantityFrom: number; + quantityTo: number; + conditionFrom: number; + conditionTo: number; + oneHourExpiration: boolean; + removeBartering: boolean; + offerOwnerType: OfferOwnerType; + onlyFunctional: boolean; + updateOfferCount: boolean; + handbookId: string; + linkedSearchId: string; + neededSearchId: string; + buildItems: BuildItems; + buildCount: number; + tm: number; + reload: number; +} +export declare enum OfferOwnerType { + ANYOWNERTYPE = 0, + TRADEROWNERTYPE = 1, + PLAYEROWNERTYPE = 2 +} +export interface BuildItems { +} diff --git a/TypeScript/11AddTrader/types/models/eft/repair/IBaseRepairActionDataRequest.d.ts b/TypeScript/11AddTrader/types/models/eft/repair/IBaseRepairActionDataRequest.d.ts new file mode 100644 index 0000000..e645fb3 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/repair/IBaseRepairActionDataRequest.d.ts @@ -0,0 +1,3 @@ +export interface IBaseRepairActionDataRequest { + Action: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/repair/IRepairActionDataRequest.d.ts b/TypeScript/11AddTrader/types/models/eft/repair/IRepairActionDataRequest.d.ts new file mode 100644 index 0000000..263d400 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/repair/IRepairActionDataRequest.d.ts @@ -0,0 +1,10 @@ +import { IBaseRepairActionDataRequest } from "./IBaseRepairActionDataRequest"; +export interface IRepairActionDataRequest extends IBaseRepairActionDataRequest { + Action: "Repair"; + repairKitsInfo: RepairKitsInfo[]; + target: string; +} +export interface RepairKitsInfo { + _id: string; + count: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/repair/ITraderRepairActionDataRequest.d.ts b/TypeScript/11AddTrader/types/models/eft/repair/ITraderRepairActionDataRequest.d.ts new file mode 100644 index 0000000..e3d469d --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/repair/ITraderRepairActionDataRequest.d.ts @@ -0,0 +1,10 @@ +import { IBaseRepairActionDataRequest } from "./IBaseRepairActionDataRequest"; +export interface ITraderRepairActionDataRequest extends IBaseRepairActionDataRequest { + Action: "TraderRepair"; + tid: string; + repairItems: RepairItem[]; +} +export interface RepairItem { + _id: string; + count: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/trade/IProcessBaseTradeRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/trade/IProcessBaseTradeRequestData.d.ts new file mode 100644 index 0000000..a9ef757 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/trade/IProcessBaseTradeRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IProcessBaseTradeRequestData { + Action: string; + type: string; + tid: string; +} diff --git a/TypeScript/11AddTrader/types/models/eft/trade/IProcessBuyTradeRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/trade/IProcessBuyTradeRequestData.d.ts new file mode 100644 index 0000000..a9e4c17 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/trade/IProcessBuyTradeRequestData.d.ts @@ -0,0 +1,14 @@ +import { IProcessBaseTradeRequestData } from "./IProcessBaseTradeRequestData"; +export interface IProcessBuyTradeRequestData extends IProcessBaseTradeRequestData { + Action: "buy_from_trader" | "TradingConfirm" | "RestoreHealth" | ""; + type: string; + tid: string; + item_id: string; + count: number; + scheme_id: number; + scheme_items: SchemeItem[]; +} +export interface SchemeItem { + id: string; + count: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/trade/IProcessRagfairTradeRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/trade/IProcessRagfairTradeRequestData.d.ts new file mode 100644 index 0000000..889dfd1 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/trade/IProcessRagfairTradeRequestData.d.ts @@ -0,0 +1,13 @@ +export interface IProcessRagfairTradeRequestData { + Action: string; + offers: Offer[]; +} +export interface Offer { + id: string; + count: number; + items: Item[]; +} +export interface Item { + id: string; + count: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/trade/IProcessSellTradeRequestData.d.ts b/TypeScript/11AddTrader/types/models/eft/trade/IProcessSellTradeRequestData.d.ts new file mode 100644 index 0000000..f1d555f --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/trade/IProcessSellTradeRequestData.d.ts @@ -0,0 +1,12 @@ +import { IProcessBaseTradeRequestData } from "./IProcessBaseTradeRequestData"; +export interface IProcessSellTradeRequestData extends IProcessBaseTradeRequestData { + Action: "sell_to_trader"; + type: string; + tid: string; + items: Item[]; +} +export interface Item { + id: string; + count: number; + scheme_id: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/weather/IWeatherData.d.ts b/TypeScript/11AddTrader/types/models/eft/weather/IWeatherData.d.ts new file mode 100644 index 0000000..ecc96ce --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/weather/IWeatherData.d.ts @@ -0,0 +1,20 @@ +export interface IWeatherData { + acceleration: number; + time: string; + date: string; + weather: IWeather; +} +export interface IWeather { + pressure: number; + temp: number; + fog: string; + rain_intensity: number; + rain: any; + wind_gustiness: number; + wind_direction: any; + wind_speed: number; + cloud: number; + time: string; + date: string; + timestamp: number; +} diff --git a/TypeScript/11AddTrader/types/models/eft/wishlist/IWishlistActionData.d.ts b/TypeScript/11AddTrader/types/models/eft/wishlist/IWishlistActionData.d.ts new file mode 100644 index 0000000..9217864 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/eft/wishlist/IWishlistActionData.d.ts @@ -0,0 +1,4 @@ +export interface IWishlistActionData { + Action: string; + templateId: string; +} diff --git a/TypeScript/11AddTrader/types/models/enums/BaseClasses.d.ts b/TypeScript/11AddTrader/types/models/enums/BaseClasses.d.ts new file mode 100644 index 0000000..8ccf81e --- /dev/null +++ b/TypeScript/11AddTrader/types/models/enums/BaseClasses.d.ts @@ -0,0 +1,84 @@ +export declare const enum BaseClasses { + WEAPON = "5422acb9af1c889c16000029", + ARMOR = "5448e54d4bdc2dcc718b4568", + VEST = "5448e5284bdc2dcb718b4567", + BACKPACK = "5448e53e4bdc2d60728b4567", + VISORS = "5448e5724bdc2ddf718b4568", + FOOD = "5448e8d04bdc2ddf718b4569", + DRINK = "5448e8d64bdc2dce718b4568", + BARTER_ITEM = "5448eb774bdc2d0a728b4567", + INFO = "5448ecbe4bdc2d60728b4568", + MEDKIT = "5448f39d4bdc2d0a728b4568", + DRUGS = "5448f3a14bdc2d27728b4569", + STIMULATOR = "5448f3a64bdc2d60728b456a", + MEDICAL = "5448f3ac4bdc2dce718b4569", + MEDICAL_SUPPLIES = "57864c8c245977548867e7f1", + MOD = "5448fe124bdc2da5018b4567", + FUNCTIONAL_MOD = "550aa4154bdc2dd8348b456b", + FUEL = "5d650c3e815116009f6201d2", + GEAR_MOD = "55802f3e4bdc2de7118b4584", + STOCK = "55818a594bdc2db9688b456a", + FOREGRIP = "55818af64bdc2d5b648b4570", + MASTER_MOD = "55802f4a4bdc2ddb688b4569", + MOUNT = "55818b224bdc2dde698b456f", + MUZZLE = "5448fe394bdc2d0d028b456c", + SIGHTS = "5448fe7a4bdc2d6f028b456b", + MEDS = "543be5664bdc2dd4348b4569", + MONEY = "543be5dd4bdc2deb348b4569", + KEY = "543be5e94bdc2df1348b4568", + KEY_MECHANICAL = "5c99f98d86f7745c314214b3", + KEYCARD = "5c164d2286f774194c5e69fa", + EQUIPMENT = "543be5f84bdc2dd4348b456a", + THROW_WEAPON = "543be6564bdc2df4348b4568", + FOOD_DRINK = "543be6674bdc2df1348b4569", + PISTOL = "5447b5cf4bdc2d65278b4567", + SMG = "5447b5e04bdc2d62278b4567", + ASSAULT_RIFLE = "5447b5f14bdc2d61278b4567", + ASSAULT_CARBINE = "5447b5fc4bdc2d87278b4567", + SHOTGUN = "5447b6094bdc2dc3278b4567", + MARKSMAN_RIFLE = "5447b6194bdc2d67278b4567", + SNIPER_RIFLE = "5447b6254bdc2dc3278b4568", + MACHINE_GUN = "5447bed64bdc2d97278b4568", + GRENADE_LAUNCHER = "5447bedf4bdc2d87278b4568", + SPECIAL_WEAPON = "5447bee84bdc2dc3278b4569", + SPEC_ITEM = "5447e0e74bdc2d3c308b4567", + KNIFE = "5447e1d04bdc2dff2f8b4567", + AMMO = "5485a8684bdc2da71d8b4567", + AMMO_BOX = "543be5cb4bdc2deb348b4568", + LOOT_CONTAINER = "566965d44bdc2d814c8b4571", + MOD_CONTAINER = "5448bf274bdc2dfc2f8b456a", + SEARCHABLE_ITEM = "566168634bdc2d144c8b456c", + STASH = "566abbb64bdc2d144c8b457d", + SORTING_TABLE = "6050cac987d3f925bf016837", + LOCKABLE_CONTAINER = "5671435f4bdc2d96058b4569", + SIMPLE_CONTAINER = "5795f317245977243854e041", + INVENTORY = "55d720f24bdc2d88028b456d", + STATIONARY_CONTAINER = "567583764bdc2d98058b456e", + POCKETS = "557596e64bdc2dc2118b4571", + ARMBAND = "5b3f15d486f77432d0509248", + DOG_TAG_USEC = "59f32c3b86f77472a31742f0", + DOG_TAG_BEAR = "59f32bb586f774757e1e8442", + JEWELRY = "57864a3d24597754843f8721", + ELECTRONICS = "57864a66245977548f04a81f", + BUILDING_MATERIAL = "57864ada245977548638de91", + TOOL = "57864bb7245977548b3b66c2", + HOUSEHOLD_GOODS = "57864c322459775490116fbf", + LUBRICANT = "57864e4c24597754843f8723", + BATTERY = "57864ee62459775490116fc1", + ASSAULT_SCOPE = "55818add4bdc2d5b648b456f", + REFLEX_SIGHT = "55818ad54bdc2ddc698b4569", + TACTICAL_COMBO = "55818b164bdc2ddc698b456c", + MAGAZINE = "5448bc234bdc2d3c308b4569", + LIGHT_LASER = "55818b0e4bdc2dde698b456e", + FLASH_HIDER = "550aa4bf4bdc2dd6348b456b", + COLLIMATOR = "55818ad54bdc2ddc698b4569", + COMPACT_COLLIMATOR = "55818acf4bdc2dde698b456b", + COMPENSATOR = "550aa4af4bdc2dd4348b456e", + OPTIC_SCOPE = "55818ae44bdc2dde698b456c", + SPECIAL_SCOPE = "55818aeb4bdc2ddc698b456a", + OTHER = "590c745b86f7743cc433c5f2", + SILENCER = "550aa4cd4bdc2dd8348b456c", + PORTABLE_RANGE_FINDER = "61605ddea09d851a0a0c1bbc", + ITEM = "54009119af1c881c07000029", + CYLINDER_MAGAZINE = "610720f290b75a49ff2e5e25" +} diff --git a/TypeScript/11AddTrader/types/models/enums/ConfigTypes.d.ts b/TypeScript/11AddTrader/types/models/enums/ConfigTypes.d.ts new file mode 100644 index 0000000..9f4ec0d --- /dev/null +++ b/TypeScript/11AddTrader/types/models/enums/ConfigTypes.d.ts @@ -0,0 +1,18 @@ +export declare const 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/TypeScript/11AddTrader/types/models/enums/ELocationName.d.ts b/TypeScript/11AddTrader/types/models/enums/ELocationName.d.ts new file mode 100644 index 0000000..6dba56e --- /dev/null +++ b/TypeScript/11AddTrader/types/models/enums/ELocationName.d.ts @@ -0,0 +1,11 @@ +export declare const enum ELocationName { + FACTORY_DAY = "factory4_day", + BIGMAP = "bigmap", + WOODS = "Woods", + SHORELINE = "Shoreline", + INTERCHANGE = "Interchange", + LIGHTHOUSE = "Lighthouse", + LABORATORY = "laboratory", + RESERVE = "RezervBase", + ANY = "any" +} diff --git a/TypeScript/11AddTrader/types/models/enums/EquipmentSlots.d.ts b/TypeScript/11AddTrader/types/models/enums/EquipmentSlots.d.ts new file mode 100644 index 0000000..25ef35b --- /dev/null +++ b/TypeScript/11AddTrader/types/models/enums/EquipmentSlots.d.ts @@ -0,0 +1,16 @@ +export declare const enum EquipmentSlots { + HEADWEAR = "Headwear", + EARPIECE = "Earpiece", + FACE_COVER = "FaceCover", + ARMOR_VEST = "ArmorVest", + EYEWEAR = "Eyewear", + ARM_BAND = "ArmBand", + TACTICAL_VEST = "TacticalVest", + POCKETS = "Pockets", + BACKPACK = "Backpack", + SECURED_CONTAINER = "SecuredContainer", + FIRST_PRIMARY_WEAPON = "FirstPrimaryWeapon", + SECOND_PRIMARY_WEAPON = "SecondPrimaryWeapon", + HOLSTER = "Holster", + SCABBARD = "Scabbard" +} diff --git a/TypeScript/11AddTrader/types/models/enums/HideoutAreas.d.ts b/TypeScript/11AddTrader/types/models/enums/HideoutAreas.d.ts new file mode 100644 index 0000000..6c2d587 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/enums/HideoutAreas.d.ts @@ -0,0 +1,25 @@ +export declare const enum HideoutAreas { + NOTSET = -1, + VENTS = 0, + SECURITY = 1, + LAVATORY = 2, + STASH = 3, + GENERATOR = 4, + HEATING = 5, + WATER_COLLECTOR = 6, + MEDSTATION = 7, + NUTRITION_UNIT = 8, + REST_SPACE = 9, + WORKBENCH = 10, + INTEL_CENTER = 11, + SHOOTING_RANGE = 12, + LIBRARY = 13, + SCAV_CASE = 14, + ILLUMINATION = 15, + PLACE_OF_FAME = 16, + AIR_FILTERING = 17, + SOLAR_POWER = 18, + BOOZE_GENERATOR = 19, + BITCOIN_FARM = 20, + CHRISTMAS_TREE = 21 +} diff --git a/TypeScript/11AddTrader/types/models/enums/MemberCategory.d.ts b/TypeScript/11AddTrader/types/models/enums/MemberCategory.d.ts new file mode 100644 index 0000000..44b3462 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/enums/MemberCategory.d.ts @@ -0,0 +1,13 @@ +export declare const enum MemberCategory { + Default = 0, + Developer = 1, + UniqueId = 2, + Trader = 4, + Group = 8, + System = 16, + ChatModerator = 32, + ChatModeratorWithPermanentBan = 64, + UnitTest = 128, + Sherpa = 256, + Emissary = 512 +} diff --git a/TypeScript/11AddTrader/types/models/enums/MessageType.d.ts b/TypeScript/11AddTrader/types/models/enums/MessageType.d.ts new file mode 100644 index 0000000..4ef5703 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/enums/MessageType.d.ts @@ -0,0 +1,16 @@ +export declare const enum MessageType { + USER_MESSAGE = 1, + NPC_TRADER = 2, + AUCTION_MESSAGE = 3, + FLEAMARKET_MESSAGE = 4, + ADMIN_MESSAGE = 5, + GROUP_CHAT_MESSAGE = 6, + SYSTEM_MESSAGE = 7, + INSURANCE_RETURN = 8, + GLOBAL_CHAT = 9, + QUEST_START = 10, + QUEST_FAIL = 11, + QUEST_SUCCESS = 12, + MESSAGE_WITH_ITEMS = 13, + INITIAL_SUPPORT = 14 +} diff --git a/TypeScript/11AddTrader/types/models/enums/Money.d.ts b/TypeScript/11AddTrader/types/models/enums/Money.d.ts new file mode 100644 index 0000000..afdf040 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/enums/Money.d.ts @@ -0,0 +1,5 @@ +export declare const enum Money { + ROUBLES = "5449016a4bdc2d6f028b456f", + EUROS = "569668774bdc2da2298b4568", + DOLLARS = "5696686a4bdc2da3298b456a" +} diff --git a/TypeScript/11AddTrader/types/models/external/mod.d.ts b/TypeScript/11AddTrader/types/models/external/mod.d.ts new file mode 100644 index 0000000..ecef460 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/external/mod.d.ts @@ -0,0 +1,5 @@ +import { DependencyContainer } from "./tsyringe"; +export interface IMod { + load: (container: DependencyContainer) => void; + delayedLoad: (container: DependencyContainer) => void; +} diff --git a/TypeScript/11AddTrader/types/models/external/tsyringe.d.ts b/TypeScript/11AddTrader/types/models/external/tsyringe.d.ts new file mode 100644 index 0000000..56a7e58 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/external/tsyringe.d.ts @@ -0,0 +1,2 @@ +import type { DependencyContainer } from "tsyringe"; +export type { DependencyContainer }; diff --git a/TypeScript/11AddTrader/types/models/spt/bindings/Route.d.ts b/TypeScript/11AddTrader/types/models/spt/bindings/Route.d.ts new file mode 100644 index 0000000..1b29d7d --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/bindings/Route.d.ts @@ -0,0 +1,3 @@ +export interface IRoute { + aki: any; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IBotCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IBotCallbacks.d.ts new file mode 100644 index 0000000..2c42813 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IBotCallbacks.d.ts @@ -0,0 +1,10 @@ +import { IGenerateBotsRequestData } from "../../eft/bot/IGenerateBotsRequestData"; +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IBotBase } from "../../eft/common/tables/IBotBase"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +export interface IBotCallbacks { + getBotLimit(url: string, info: IEmptyRequestData, sessionID: string): string; + getBotDifficulty(url: string, info: IEmptyRequestData, sessionID: string): string; + generateBots(url: string, info: IGenerateBotsRequestData, sessionID: string): IGetBodyResponseData; + getBotCap(): string; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IBundleCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IBundleCallbacks.d.ts new file mode 100644 index 0000000..7e37c6e --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IBundleCallbacks.d.ts @@ -0,0 +1,5 @@ +export interface IBundleCallbacks { + sendBundle(sessionID: string, req: any, resp: any, body: any): any; + getBundles(url: string, info: any, sessionID: string): string; + getBundle(url: string, info: any, sessionID: string): string; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/ICustomizationCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/ICustomizationCallbacks.d.ts new file mode 100644 index 0000000..d10027f --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/ICustomizationCallbacks.d.ts @@ -0,0 +1,12 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IBuyClothingRequestData } from "../../eft/customization/IBuyClothingRequestData"; +import { IWearClothingRequestData } from "../../eft/customization/IWearClothingRequestData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { ISuit } from "../../eft/common/tables/ITrader"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +export interface ICustomizationCallbacks { + getSuits(url: string, info: any, sessionID: string): IGetBodyResponseData; + getTraderSuits(url: string, info: any, sessionID: string): IGetBodyResponseData; + wearClothing(pmcData: IPmcData, body: IWearClothingRequestData, sessionID: string): IItemEventRouterResponse; + buyClothing(pmcData: IPmcData, body: IBuyClothingRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IDataCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IDataCallbacks.d.ts new file mode 100644 index 0000000..a098560 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IDataCallbacks.d.ts @@ -0,0 +1,26 @@ +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IGlobals } from "../../eft/common/IGlobals"; +import { IQuest } from "../../eft/common/tables/IQuest"; +import { IHideoutArea } from "../../eft/hideout/IHideoutArea"; +import { IHideoutProduction } from "../../eft/hideout/IHideoutProduction"; +import { IHideoutScavCase } from "../../eft/hideout/IHideoutScavCase"; +import { IHideoutSettingsBase } from "../../eft/hideout/IHideoutSettingsBase"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { ILanguageBase } from "../server/ILocaleBase"; +import { ISettingsBase } from "../server/ISettingsBase"; +export interface IDataCallbacks { + getSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getGlobals(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getTemplateItems(url: string, info: IEmptyRequestData, sessionID: string): string; + getTemplateHandbook(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getTemplateSuits(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getTemplateCharacter(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getTemplateQuests(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getHideoutSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getHideoutAreas(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + gethideoutProduction(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getHideoutScavcase(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getLocalesLanguages(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getLocalesMenu(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getLocalesGlobal(url: string, info: IEmptyRequestData, sessionID: string): string; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IDialogueCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IDialogueCallbacks.d.ts new file mode 100644 index 0000000..fe2115a --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IDialogueCallbacks.d.ts @@ -0,0 +1,34 @@ +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { INullResponseData } from "../../eft/httpResponse/INullResponseData"; +import { IGetMailDialogViewRequestData } from "../../eft/dialog/IGetMailDialogViewRequestData"; +import { IGetMailDialogInfoRequestData } from "../../eft/dialog/IGetMailDialogInfoRequestData"; +import { IRemoveDialogRequestData } from "../../eft/dialog/IRemoveDialogRequestData"; +import { IGetMailDialogListRequestData } from "../../eft/dialog/IGetMailDialogListRequestData"; +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IFriendRequestData } from "../../eft/dialog/IFriendRequestData"; +import { IPinDialogRequestData } from "../../eft/dialog/IPinDialogRequestData"; +import { ISetDialogReadRequestData } from "../../eft/dialog/ISetDialogReadRequestData"; +import { IGetAllAttachmentsRequestData } from "../../eft/dialog/IGetAllAttachmentsRequestData"; +import { IGetChatServerListRequestData } from "../../eft/dialog/IGetChatServerListRequestData"; +import { IGetFriendListDataResponse } from "../../eft/dialog/IGetFriendListDataResponse"; +import { ISendMessageRequest } from "../../eft/dialog/ISendMessageRequest"; +import { IGetMailDialogViewResponseData } from "../../eft/dialog/IGetMailDialogViewResponseData"; +import { IGetAllAttachmentsResponse } from "../../eft/dialog/IGetAllAttachmentsResponse"; +import { DialogueInfo } from "../../eft/profile/IAkiProfile"; +export interface IDialogueCallbacks { + getFriendList(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getChatServerList(url: string, info: IGetChatServerListRequestData, sessionID: string): IGetBodyResponseData; + getMailDialogList(url: string, info: IGetMailDialogListRequestData, sessionID: string): IGetBodyResponseData; + getMailDialogView(url: string, info: IGetMailDialogViewRequestData, sessionID: string): IGetBodyResponseData; + getMailDialogInfo(url: string, info: IGetMailDialogInfoRequestData, sessionID: string): IGetBodyResponseData; + removeDialog(url: string, info: IRemoveDialogRequestData, sessionID: string): IGetBodyResponseData; + pinDialog(url: string, info: IPinDialogRequestData, sessionID: string): IGetBodyResponseData; + unpinDialog(url: string, info: IPinDialogRequestData, sessionID: string): IGetBodyResponseData; + setRead(url: string, info: ISetDialogReadRequestData, sessionID: string): IGetBodyResponseData; + getAllAttachments(url: string, info: IGetAllAttachmentsRequestData, sessionID: string): IGetBodyResponseData; + listOutbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + listInbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + friendRequest(url: string, request: IFriendRequestData, sessionID: string): INullResponseData; + sendMessage(url: string, request: ISendMessageRequest, sessionID: string): IGetBodyResponseData; + update(): boolean; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IGameCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IGameCallbacks.d.ts new file mode 100644 index 0000000..38ebc5f --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IGameCallbacks.d.ts @@ -0,0 +1,16 @@ +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IGameEmptyCrcRequestData } from "../../eft/game/IGameEmptyCrcRequestData"; +import { IVersionValidateRequestData } from "../../eft/game/IVersionValidateRequestData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { INullResponseData } from "../../eft/httpResponse/INullResponseData"; +import { IGameConfigResponse } from "../../eft/game/IGameConfigResponse"; +export interface IGameCallbacks { + versionValidate(url: string, info: IVersionValidateRequestData, sessionID: string): INullResponseData; + gameStart(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + gameLogout(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getGameConfig(url: string, info: IGameEmptyCrcRequestData, sessionID: string): IGetBodyResponseData; + getServer(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + validateGameVersion(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + gameKeepalive(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getVersion(url: string, info: IEmptyRequestData, sessionID: string): string; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IHandbookCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IHandbookCallbacks.d.ts new file mode 100644 index 0000000..5857a3e --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IHandbookCallbacks.d.ts @@ -0,0 +1,3 @@ +export interface IHandbookCallbacks { + load(): void; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IHealthCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IHealthCallbacks.d.ts new file mode 100644 index 0000000..d238c7a --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IHealthCallbacks.d.ts @@ -0,0 +1,13 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IAkiProfile } from "../../eft/profile/IAkiProfile"; +import { ISyncHealthRequestData } from "../../eft/health/ISyncHealthRequestData"; +import { IOffraidEatRequestData } from "../../eft/health/IOffraidEatRequestData"; +import { IOffraidHealRequestData } from "../../eft/health/IOffraidHealRequestData"; +import { IHealthTreatmentRequestData } from "../../eft/health/IHealthTreatmentRequestData"; +export interface IHealthCallbacks { + onLoad(sessionID: string): IAkiProfile; + syncHealth(url: string, info: ISyncHealthRequestData, sessionID: string): any; + offraidEat(pmcData: IPmcData, body: IOffraidEatRequestData, sessionID: string): any; + offraidHeal(pmcData: IPmcData, body: IOffraidHealRequestData, sessionID: string): any; + healthTreatment(pmcData: IPmcData, info: IHealthTreatmentRequestData, sessionID: string): any; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IHideoutCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IHideoutCallbacks.d.ts new file mode 100644 index 0000000..e9badb6 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IHideoutCallbacks.d.ts @@ -0,0 +1,23 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IHideoutUpgradeRequestData } from "../../eft/hideout/IHideoutUpgradeRequestData"; +import { IHideoutUpgradeCompleteRequestData } from "../../eft/hideout/IHideoutUpgradeCompleteRequestData"; +import { IHideoutScavCaseStartRequestData } from "../../eft/hideout/IHideoutScavCaseStartRequestData"; +import { IHideoutPutItemInRequestData } from "../../eft/hideout/IHideoutPutItemInRequestData"; +import { IHideoutTakeItemOutRequestData } from "../../eft/hideout/IHideoutTakeItemOutRequestData"; +import { IHideoutToggleAreaRequestData } from "../../eft/hideout/IHideoutToggleAreaRequestData"; +import { IHideoutSingleProductionStartRequestData } from "../../eft/hideout/IHideoutSingleProductionStartRequestData"; +import { IHideoutContinousProductionStartRequestData } from "../../eft/hideout/IHideoutContinousProductionStartRequestData"; +import { IHideoutTakeProductionRequestData } from "../../eft/hideout/IHideoutTakeProductionRequestData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +export interface IHideoutCallbacks { + upgrade(pmcData: IPmcData, body: IHideoutUpgradeRequestData, sessionID: string): IItemEventRouterResponse; + upgradeComplete(pmcData: IPmcData, body: IHideoutUpgradeCompleteRequestData, sessionID: string): IItemEventRouterResponse; + putItemsInAreaSlots(pmcData: IPmcData, body: IHideoutPutItemInRequestData, sessionID: string): IItemEventRouterResponse; + takeItemsFromAreaSlots(pmcData: IPmcData, body: IHideoutTakeItemOutRequestData, sessionID: string): IItemEventRouterResponse; + toggleArea(pmcData: IPmcData, body: IHideoutToggleAreaRequestData, sessionID: string): IItemEventRouterResponse; + singleProductionStart(pmcData: IPmcData, body: IHideoutSingleProductionStartRequestData, sessionID: string): IItemEventRouterResponse; + scavCaseProductionStart(pmcData: IPmcData, body: IHideoutScavCaseStartRequestData, sessionID: string): IItemEventRouterResponse; + continuousProductionStart(pmcData: IPmcData, body: IHideoutContinousProductionStartRequestData, sessionID: string): IItemEventRouterResponse; + takeProduction(pmcData: IPmcData, body: IHideoutTakeProductionRequestData, sessionID: string): IItemEventRouterResponse; + update(timeSinceLastRun: number): boolean; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IHttpCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IHttpCallbacks.d.ts new file mode 100644 index 0000000..3ecd945 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IHttpCallbacks.d.ts @@ -0,0 +1,5 @@ +export interface IHttpCallbacks { + load(): void; + sendImage(sessionID: string, req: any, resp: any, body: any): void; + getImage(): string; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IInraidCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IInraidCallbacks.d.ts new file mode 100644 index 0000000..e959b98 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IInraidCallbacks.d.ts @@ -0,0 +1,14 @@ +import { INullResponseData } from "../../eft/httpResponse/INullResponseData"; +import { IAkiProfile } from "../../eft/profile/IAkiProfile"; +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IRegisterPlayerRequestData } from "../../eft/inRaid/IRegisterPlayerRequestData"; +import { ISaveProgressRequestData } from "../../eft/inRaid/ISaveProgressRequestData"; +export interface IInraidCallbacks { + onLoad(sessionID: string): IAkiProfile; + registerPlayer(url: string, info: IRegisterPlayerRequestData, sessionID: string): INullResponseData; + saveProgress(url: string, info: ISaveProgressRequestData, sessionID: string): INullResponseData; + getRaidEndState(): string; + getRaidMenuSettings(url: string, info: IEmptyRequestData, sessionID: string): string; + getWeaponDurability(url: string, info: any, sessionID: string): string; + getAirdropConfig(url: string, info: any, sessionID: string): string; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IInsuranceCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IInsuranceCallbacks.d.ts new file mode 100644 index 0000000..082112d --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IInsuranceCallbacks.d.ts @@ -0,0 +1,10 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IAkiProfile } from "../../eft/profile/IAkiProfile"; +import { IGetInsuranceCostRequestData } from "../../eft/insurance/IGetInsuranceCostRequestData"; +import { IInsureRequestData } from "../../eft/insurance/IInsureRequestData"; +export interface IInsuranceCallbacks { + onLoad(sessionID: string): IAkiProfile; + getInsuranceCost(url: string, info: IGetInsuranceCostRequestData, sessionID: string): any; + insure(pmcData: IPmcData, body: IInsureRequestData, sessionID: string): any; + update(secondsSinceLastRun: number): boolean; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IInventoryCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IInventoryCallbacks.d.ts new file mode 100644 index 0000000..e53f7d0 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IInventoryCallbacks.d.ts @@ -0,0 +1,36 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IInventoryFoldRequestData } from "../../eft/inventory/IInventoryFoldRequestData"; +import { IInventorySplitRequestData } from "../../eft/inventory/IInventorySplitRequestData"; +import { IInventoryMoveRequestData } from "../../eft/inventory/IInventoryMoveRequestData"; +import { IInventoryMergeRequestData } from "../../eft/inventory/IInventoryMergeRequestData"; +import { IInventoryRemoveRequestData } from "../../eft/inventory/IInventoryRemoveRequestData"; +import { IInventoryTransferRequestData } from "../../eft/inventory/IInventoryTransferRequestData"; +import { IInventorySwapRequestData } from "../../eft/inventory/IInventorySwapRequestData"; +import { IInventoryToggleRequestData } from "../../eft/inventory/IInventoryToggleRequestData"; +import { IInventoryTagRequestData } from "../../eft/inventory/IInventoryTagRequestData"; +import { IInventoryBindRequestData } from "../../eft/inventory/IInventoryBindRequestData"; +import { IInventoryExamineRequestData } from "../../eft/inventory/IInventoryExamineRequestData"; +import { IInventoryReadEncyclopediaRequestData } from "../../eft/inventory/IInventoryReadEncyclopediaRequestData"; +import { IInventorySortRequestData } from "../../eft/inventory/IInventorySortRequestData"; +import { IInventoryCreateMarkerRequestData } from "../../eft/inventory/IInventoryCreateMarkerRequestData"; +import { IInventoryDeleteMarkerRequestData } from "../../eft/inventory/IInventoryDeleteMarkerRequestData"; +import { IInventoryEditMarkerRequestData } from "../../eft/inventory/IInventoryEditMarkerRequestData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +export interface IInventoryCallbacks { + moveItem(pmcData: IPmcData, body: IInventoryMoveRequestData, sessionID: string): IItemEventRouterResponse; + removeItem(pmcData: IPmcData, body: IInventoryRemoveRequestData, sessionID: string): IItemEventRouterResponse; + splitItem(pmcData: IPmcData, body: IInventorySplitRequestData, sessionID: string): IItemEventRouterResponse; + mergeItem(pmcData: IPmcData, body: IInventoryMergeRequestData, sessionID: string): IItemEventRouterResponse; + transferItem(pmcData: IPmcData, body: IInventoryTransferRequestData, sessionID: string): IItemEventRouterResponse; + swapItem(pmcData: IPmcData, body: IInventorySwapRequestData, sessionID: string): IItemEventRouterResponse; + foldItem(pmcData: IPmcData, body: IInventoryFoldRequestData, sessionID: string): IItemEventRouterResponse; + toggleItem(pmcData: IPmcData, body: IInventoryToggleRequestData, sessionID: string): IItemEventRouterResponse; + tagItem(pmcData: IPmcData, body: IInventoryTagRequestData, sessionID: string): IItemEventRouterResponse; + bindItem(pmcData: IPmcData, body: IInventoryBindRequestData, sessionID: string): IItemEventRouterResponse; + examineItem(pmcData: IPmcData, body: IInventoryExamineRequestData, sessionID: string): IItemEventRouterResponse; + readEncyclopedia(pmcData: IPmcData, body: IInventoryReadEncyclopediaRequestData, sessionID: string): IItemEventRouterResponse; + sortInventory(pmcData: IPmcData, body: IInventorySortRequestData, sessionID: string): IItemEventRouterResponse; + createMapMarker(pmcData: IPmcData, body: IInventoryCreateMarkerRequestData, sessionID: string): IItemEventRouterResponse; + deleteMapMarker(pmcData: IPmcData, body: IInventoryDeleteMarkerRequestData, sessionID: string): IItemEventRouterResponse; + editMapMarker(pmcData: IPmcData, body: IInventoryEditMarkerRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IItemEventCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IItemEventCallbacks.d.ts new file mode 100644 index 0000000..59db771 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IItemEventCallbacks.d.ts @@ -0,0 +1,6 @@ +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { IItemEventRouterRequest } from "../../eft/itemEvent/IItemEventRouterRequest"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +export interface IItemEventCallbacks { + handleEvents(url: string, info: IItemEventRouterRequest, sessionID: string): IGetBodyResponseData; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/ILauncherCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/ILauncherCallbacks.d.ts new file mode 100644 index 0000000..52dfec6 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/ILauncherCallbacks.d.ts @@ -0,0 +1,20 @@ +import { IRegisterData } from "../../eft/launcher/IRegisterData"; +import { IRemoveProfileData } from "../../eft/launcher/IRemoveProfileData"; +import { ILoginRequestData } from "../../eft/launcher/ILoginRequestData"; +import { IChangeRequestData } from "../../eft/launcher/IChangeRequestData"; +import { IGetMiniProfileRequestData } from "../../eft/launcher/IGetMiniProfileRequestData.js"; +export interface ILauncherCallbacks { + connect(): string; + login(url: string, info: ILoginRequestData, sessionID: string): string; + register(url: string, info: IRegisterData, sessionID: string): "FAILED" | "OK"; + get(url: string, info: ILoginRequestData, sessionID: string): string; + changeUsername(url: string, info: IChangeRequestData, sessionID: string): "FAILED" | "OK"; + changePassword(url: string, info: IChangeRequestData, sessionID: string): "FAILED" | "OK"; + wipe(url: string, info: IRegisterData, sessionID: string): "FAILED" | "OK"; + getMiniProfile(url: string, info: IGetMiniProfileRequestData, sessionID: string): string; + getAllMiniProfiles(url: string, info: any, sessionID: string): string; + getServerVersion(): string; + ping(url: string, info: any, sessionID: string): string; + removeProfile(url: string, info: IRemoveProfileData, sessionID: string): string; + getCompatibleTarkovVersion(): string; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/ILocationCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/ILocationCallbacks.d.ts new file mode 100644 index 0000000..71656a4 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/ILocationCallbacks.d.ts @@ -0,0 +1,8 @@ +import { IGetLocationRequestData } from "../../eft/location/IGetLocationRequestData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { ILocationsGenerateAllResponse } from "../../eft/common/ILocationsSourceDestinationBase"; +import { ILocationBase } from "../../eft/common/ILocationBase"; +export interface ILocationCallbacks { + getLocationData(url: string, info: any, sessionID: string): IGetBodyResponseData; + getLocation(url: string, info: IGetLocationRequestData, sessionID: string): IGetBodyResponseData; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IMatchCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IMatchCallbacks.d.ts new file mode 100644 index 0000000..fcbf173 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IMatchCallbacks.d.ts @@ -0,0 +1,25 @@ +import { IStartOfflineRaidRequestData } from "../../eft/match/IStartOffineRaidRequestData"; +import { IEndOfflineRaidRequestData } from "../../eft/match/IEndOfflineRaidRequestData"; +import { INullResponseData } from "../../eft/httpResponse/INullResponseData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { IPmcData } from "../../eft/common/IPmcData"; +export interface IMatchCallbacks { + updatePing(url: string, info: any, sessionID: string): INullResponseData; + exitMatch(url: string, info: any, sessionID: string): INullResponseData; + exitToMenu(url: string, info: any, sessionID: string): INullResponseData; + startGroupSearch(url: string, info: any, sessionID: string): INullResponseData; + stopGroupSearch(url: string, info: any, sessionID: string): INullResponseData; + sendGroupInvite(url: string, info: any, sessionID: string): INullResponseData; + acceptGroupInvite(url: string, info: any, sessionID: string): INullResponseData; + cancelGroupInvite(url: string, info: any, sessionID: string): INullResponseData; + putMetrics(url: string, info: any, sessionID: string): INullResponseData; + getProfile(url: string, info: any, sessionID: string): IGetBodyResponseData; + serverAvailable(url: string, info: any, sessionID: string): IGetBodyResponseData | IGetBodyResponseData; + joinMatch(url: string, info: any, sessionID: string): IGetBodyResponseData; + getMetrics(url: string, info: any, sessionID: string): IGetBodyResponseData; + getGroupStatus(url: string, info: any, sessionID: string): IGetBodyResponseData; + createGroup(url: string, info: any, sessionID: string): IGetBodyResponseData; + deleteGroup(url: string, info: any, sessionID: string): INullResponseData; + startOfflineRaid(url: string, info: IStartOfflineRaidRequestData, sessionID: string): INullResponseData; + endOfflineRaid(url: string, info: IEndOfflineRaidRequestData, sessionID: string): INullResponseData; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IModCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IModCallbacks.d.ts new file mode 100644 index 0000000..1a4cd7b --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IModCallbacks.d.ts @@ -0,0 +1,6 @@ +export interface IModCallbacks { + load(): void; + sendBundle(sessionID: string, req: any, resp: any, body: any): void; + getBundles(url: string, info: any, sessionID: string): string; + getBundle(url: string, info: any, sessionID: string): string; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/INoteCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/INoteCallbacks.d.ts new file mode 100644 index 0000000..8453a4f --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/INoteCallbacks.d.ts @@ -0,0 +1,8 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { INoteActionData } from "../../eft/notes/INoteActionData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +export interface INoteCallbacks { + addNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse; + editNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse; + deleteNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/INotifierCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/INotifierCallbacks.d.ts new file mode 100644 index 0000000..a211310 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/INotifierCallbacks.d.ts @@ -0,0 +1,17 @@ +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { INotifierChannel } from "../../eft/notifier/INotifier"; +import { ISelectProfileRequestData } from "../../eft/notifier/ISelectProfileRequestData"; +export interface INotifierCallbacks { + /** + * If we don't have anything to send, it's ok to not send anything back + * because notification requests can be long-polling. In fact, we SHOULD wait + * until we actually have something to send because otherwise we'd spam the client + * and the client would abort the connection due to spam. + */ + sendNotification(sessionID: string, req: any, resp: any, data: any): void; + getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData; + createNotifierChannel(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + selectProfile(url: string, info: ISelectProfileRequestData, sessionID: string): IGetBodyResponseData; + notify(url: string, info: any, sessionID: string): string; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IPresetBuildCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IPresetBuildCallbacks.d.ts new file mode 100644 index 0000000..97c6487 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IPresetBuildCallbacks.d.ts @@ -0,0 +1,10 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IPresetBuildActionRequestData } from "../../eft/presetBuild/IPresetBuildActionRequestData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { WeaponBuild } from "../../eft/profile/IAkiProfile"; +export interface IPresetBuildCallbacks { + getHandbookUserlist(url: string, info: any, sessionID: string): IGetBodyResponseData; + saveBuild(pmcData: IPmcData, body: IPresetBuildActionRequestData, sessionID: string): IItemEventRouterResponse; + removeBuild(pmcData: IPmcData, body: IPresetBuildActionRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IPresetCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IPresetCallbacks.d.ts new file mode 100644 index 0000000..4169857 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IPresetCallbacks.d.ts @@ -0,0 +1,3 @@ +export interface IPresetCallbacks { + load(): void; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IProfileCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IProfileCallbacks.d.ts new file mode 100644 index 0000000..9d4d2df --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IProfileCallbacks.d.ts @@ -0,0 +1,21 @@ +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { INullResponseData } from "../../eft/httpResponse/INullResponseData"; +import { IProfileChangeNicknameRequestData } from "../../eft/profile/IProfileChangeNicknameRequestData"; +import { IProfileChangeVoiceRequestData } from "../../eft/profile/IProfileChangeVoiceRequestData"; +import { IProfileCreateRequestData } from "../../eft/profile/IProfileCreateRequestData"; +import { IValidateNicknameRequestData } from "../../eft/profile/IValidateNicknameRequestData"; +import { ISearchFriendRequestData } from "../../eft/profile/ISearchFriendRequestData"; +import { ISearchFriendResponse } from "../../eft/profile/ISearchFriendResponse"; +export interface IProfileCallbacks { + onLoad(sessionID: string): any; + createProfile(url: string, info: IProfileCreateRequestData, sessionID: string): IGetBodyResponseData; + getProfileData(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + regenerateScav(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + changeVoice(url: string, info: IProfileChangeVoiceRequestData, sessionID: string): INullResponseData; + changeNickname(url: string, info: IProfileChangeNicknameRequestData, sessionID: string): IGetBodyResponseData; + validateNickname(url: string, info: IValidateNicknameRequestData, sessionID: string): IGetBodyResponseData; + getReservedNickname(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getProfileStatus(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + searchFriend(url: string, info: ISearchFriendRequestData, sessionID: string): IGetBodyResponseData; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IQuestCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IQuestCallbacks.d.ts new file mode 100644 index 0000000..1c4d0c3 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IQuestCallbacks.d.ts @@ -0,0 +1,19 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IAcceptQuestRequestData } from "../../eft/quests/IAcceptQuestRequestData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { IListQuestsRequestData } from "../../eft/quests/IListQuestsRequestData"; +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { ICompleteQuestRequestData } from "../../eft/quests/ICompleteQuestRequestData"; +import { IHandoverQuestRequestData } from "../../eft/quests/IHandoverQuestRequestData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +import { IQuest } from "../../eft/common/tables/IQuest"; +import { IPmcDataRepeatableQuest } from "../../eft/common/tables/IRepeatableQuests"; +import { IRepeatableQuestChangeRequest } from "../../eft/quests/IRepeatableQuestChangeRequest"; +export interface IQuestCallbacks { + changeRepeatableQuest(pmcData: IPmcData, body: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse; + acceptQuest(pmcData: IPmcData, body: IAcceptQuestRequestData, sessionID: string): IItemEventRouterResponse; + completeQuest(pmcData: IPmcData, body: ICompleteQuestRequestData, sessionID: string): IItemEventRouterResponse; + handoverQuest(pmcData: IPmcData, body: IHandoverQuestRequestData, sessionID: string): IItemEventRouterResponse; + listQuests(url: string, info: IListQuestsRequestData, sessionID: string): IGetBodyResponseData; + activityPeriods(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IRagfairCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IRagfairCallbacks.d.ts new file mode 100644 index 0000000..9282bd4 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IRagfairCallbacks.d.ts @@ -0,0 +1,21 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { ISearchRequestData } from "../../eft/ragfair/ISearchRequestData"; +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IGetMarketPriceRequestData } from "../../eft/ragfair/IGetMarketPriceRequestData"; +import { IAddOfferRequestData } from "../../eft/ragfair/IAddOfferRequestData"; +import { IRemoveOfferRequestData } from "../../eft/ragfair/IRemoveOfferRequestData"; +import { IExtendOfferRequestData } from "../../eft/ragfair/IExtendOfferRequestData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +import { IGetItemPriceResult } from "../../eft/ragfair/IGetItemPriceResult"; +export interface IRagfairCallbacks { + load(): void; + search(url: string, info: ISearchRequestData, sessionID: string): IGetBodyResponseData; + getMarketPrice(url: string, info: IGetMarketPriceRequestData, sessionID: string): IGetBodyResponseData; + getItemPrices(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + addOffer(pmcData: IPmcData, info: IAddOfferRequestData, sessionID: string): IItemEventRouterResponse; + removeOffer(pmcData: IPmcData, info: IRemoveOfferRequestData, sessionID: string): IItemEventRouterResponse; + extendOffer(pmcData: IPmcData, info: IExtendOfferRequestData, sessionID: string): IItemEventRouterResponse; + update(timeSinceLastRun: number): boolean; + updatePlayer(timeSinceLastRun: number): boolean; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IRepairCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IRepairCallbacks.d.ts new file mode 100644 index 0000000..e8183c9 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IRepairCallbacks.d.ts @@ -0,0 +1,8 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +import { IRepairActionDataRequest } from "../../eft/repair/IRepairActionDataRequest"; +import { ITraderRepairActionDataRequest } from "../../eft/repair/ITraderRepairActionDataRequest"; +export interface IRepairCallbacks { + traderRepair(pmcData: IPmcData, body: ITraderRepairActionDataRequest, sessionID: string): IItemEventRouterResponse; + repair(pmcData: IPmcData, body: IRepairActionDataRequest, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/ISaveCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/ISaveCallbacks.d.ts new file mode 100644 index 0000000..1ad3b82 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/ISaveCallbacks.d.ts @@ -0,0 +1,4 @@ +export interface ISaveCallbacks { + load(): void; + update(secondsSinceLastRun: number): boolean; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/ITradeCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/ITradeCallbacks.d.ts new file mode 100644 index 0000000..2f41d54 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/ITradeCallbacks.d.ts @@ -0,0 +1,8 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IProcessRagfairTradeRequestData } from "../../eft/trade/IProcessRagfairTradeRequestData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +import { IProcessBaseTradeRequestData } from "../../eft/trade/IProcessBaseTradeRequestData"; +export interface ITradeCallbacks { + processTrade(pmcData: IPmcData, body: IProcessBaseTradeRequestData, sessionID: string): IItemEventRouterResponse; + processRagfairTrade(pmcData: IPmcData, body: IProcessRagfairTradeRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/ITraderCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/ITraderCallbacks.d.ts new file mode 100644 index 0000000..e0d7d06 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/ITraderCallbacks.d.ts @@ -0,0 +1,11 @@ +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IBarterScheme, ITraderAssort, ITraderBase } from "../../eft/common/tables/ITrader"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +export interface ITraderCallbacks { + load(): void; + getTraderSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getProfilePurchases(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData>; + getTrader(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getAssort(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + update(): boolean; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IWeatherCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IWeatherCallbacks.d.ts new file mode 100644 index 0000000..9ac72ae --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IWeatherCallbacks.d.ts @@ -0,0 +1,5 @@ +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +export interface IWeatherCallbacks { + getWeather(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; +} diff --git a/TypeScript/11AddTrader/types/models/spt/callbacks/IWishlistCallbacks.d.ts b/TypeScript/11AddTrader/types/models/spt/callbacks/IWishlistCallbacks.d.ts new file mode 100644 index 0000000..e5d519c --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/callbacks/IWishlistCallbacks.d.ts @@ -0,0 +1,7 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IWishlistActionData } from "../../eft/wishlist/IWishlistActionData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +export interface IWishlistCallbacks { + addToWishlist(pmcData: IPmcData, body: IWishlistActionData, sessionID: string): IItemEventRouterResponse; + removeFromWishlist(pmcData: IPmcData, body: IWishlistActionData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/11AddTrader/types/models/spt/config/IAirdropConfig.d.ts b/TypeScript/11AddTrader/types/models/spt/config/IAirdropConfig.d.ts new file mode 100644 index 0000000..f4aee89 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/config/IAirdropConfig.d.ts @@ -0,0 +1,20 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IAirdropConfig extends IBaseConfig { + kind: "aki-airdrop"; + airdropChancePercent: AirdropChancePercent; + airdropMinOpenHeight: number; + airdropMaxOpenHeight: number; + planeMinFlyHeight: number; + planeMaxFlyHeight: number; + planeVolume: number; + airdropMinStartTimeSeconds: number; + airdropMaxStartTimeSeconds: number; +} +export interface AirdropChancePercent { + bigmap: number; + woods: number; + lighthouse: number; + shoreline: number; + interchange: number; + reserve: number; +} diff --git a/TypeScript/11AddTrader/types/models/spt/config/IBaseConfig.d.ts b/TypeScript/11AddTrader/types/models/spt/config/IBaseConfig.d.ts new file mode 100644 index 0000000..8b6ba88 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/config/IBaseConfig.d.ts @@ -0,0 +1,3 @@ +export interface IBaseConfig { + kind: string; +} diff --git a/TypeScript/11AddTrader/types/models/spt/config/IBotConfig.d.ts b/TypeScript/11AddTrader/types/models/spt/config/IBotConfig.d.ts new file mode 100644 index 0000000..f8ea940 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/models/spt/config/ICoreConfig.d.ts b/TypeScript/11AddTrader/types/models/spt/config/ICoreConfig.d.ts new file mode 100644 index 0000000..cfcaf61 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/config/ICoreConfig.d.ts @@ -0,0 +1,7 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface ICoreConfig extends IBaseConfig { + kind: "aki-core"; + akiVersion: string; + projectName: string; + compatibleTarkovVersion: string; +} diff --git a/TypeScript/11AddTrader/types/models/spt/config/IHealthConfig.d.ts b/TypeScript/11AddTrader/types/models/spt/config/IHealthConfig.d.ts new file mode 100644 index 0000000..fdbf656 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/config/IHealthConfig.d.ts @@ -0,0 +1,14 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IHealthConfig extends IBaseConfig { + kind: "aki-health"; + healthMultipliers: HealthMultipliers; + save: Save; +} +export interface HealthMultipliers { + death: number; + blacked: number; +} +export interface Save { + health: boolean; + effects: boolean; +} diff --git a/TypeScript/11AddTrader/types/models/spt/config/IHideoutConfig.d.ts b/TypeScript/11AddTrader/types/models/spt/config/IHideoutConfig.d.ts new file mode 100644 index 0000000..4658fa6 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/config/IHideoutConfig.d.ts @@ -0,0 +1,27 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IHideoutConfig extends IBaseConfig { + kind: "aki-hideout"; + runIntervalSeconds: number; + scavCase: ScavCase; + fuelDrainRateMultipler: number; +} +export interface ScavCase { + rewardParentBlacklist: string[]; + rewardItemBlacklist: any[]; + ammoRewards: AmmoRewards; + moneyRewards: MoneyRewards; +} +export interface AmmoRewards { + giveMultipleOfTen: boolean; + minAmount: number; +} +export interface MoneyRewards { + enabled: boolean; + rub: MinMax; + usd: MinMax; + eur: MinMax; +} +export interface MinMax { + min: number; + max: number; +} diff --git a/TypeScript/11AddTrader/types/models/spt/config/IHttpConfig.d.ts b/TypeScript/11AddTrader/types/models/spt/config/IHttpConfig.d.ts new file mode 100644 index 0000000..c41d035 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/config/IHttpConfig.d.ts @@ -0,0 +1,6 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IHttpConfig extends IBaseConfig { + kind: "aki-http"; + ip: string; + port: number; +} diff --git a/TypeScript/11AddTrader/types/models/spt/config/IInRaidConfig.d.ts b/TypeScript/11AddTrader/types/models/spt/config/IInRaidConfig.d.ts new file mode 100644 index 0000000..baaf083 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/config/IInRaidConfig.d.ts @@ -0,0 +1,21 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IInRaidConfig extends IBaseConfig { + kind: "aki-inraid"; + MIAOnRaidEnd: boolean; + raidMenuSettings: RaidMenuSettings; + save: Save; + carExtracts: string[]; + carExtractBaseStandingGain: number; + scavExtractGain: number; +} +export interface RaidMenuSettings { + aiAmount: string; + aiDifficulty: string; + bossEnabled: boolean; + scavWars: boolean; + taggedAndCursed: boolean; +} +export interface Save { + loot: boolean; + durability: boolean; +} diff --git a/TypeScript/11AddTrader/types/models/spt/config/IInsuranceConfig.d.ts b/TypeScript/11AddTrader/types/models/spt/config/IInsuranceConfig.d.ts new file mode 100644 index 0000000..6e9c744 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/config/IInsuranceConfig.d.ts @@ -0,0 +1,7 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IInsuranceConfig extends IBaseConfig { + kind: "aki-insurance"; + insuranceMultiplier: Record; + returnChancePercent: Record; + runIntervalSeconds: number; +} diff --git a/TypeScript/11AddTrader/types/models/spt/config/IInventoryConfig.d.ts b/TypeScript/11AddTrader/types/models/spt/config/IInventoryConfig.d.ts new file mode 100644 index 0000000..ffffa41 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/config/IInventoryConfig.d.ts @@ -0,0 +1,5 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IInventoryConfig extends IBaseConfig { + kind: "aki-inventory"; + newItemsMarkedFound: boolean; +} diff --git a/TypeScript/11AddTrader/types/models/spt/config/ILocationConfig.d.ts b/TypeScript/11AddTrader/types/models/spt/config/ILocationConfig.d.ts new file mode 100644 index 0000000..0551d57 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/config/ILocationConfig.d.ts @@ -0,0 +1,24 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface ILocationConfig extends IBaseConfig { + kind: "aki-location"; + looseLootMultiplier: LootMultiplier; + staticLootMultiplier: LootMultiplier; +} +export interface LootMultiplier { + bigmap: number; + develop: number; + factory4_day: number; + factory4_night: number; + interchange: number; + laboratory: number; + rezervbase: number; + shoreline: number; + woods: number; + hideout: number; + lighthouse: number; + privatearea: number; + suburbs: number; + tarkovstreets: number; + terminal: number; + town: number; +} diff --git a/TypeScript/11AddTrader/types/models/spt/config/IMatchConfig.d.ts b/TypeScript/11AddTrader/types/models/spt/config/IMatchConfig.d.ts new file mode 100644 index 0000000..92c4d77 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/config/IMatchConfig.d.ts @@ -0,0 +1,5 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IMatchConfig extends IBaseConfig { + kind: "aki-match"; + enabled: boolean; +} diff --git a/TypeScript/11AddTrader/types/models/spt/config/IQuestConfig.d.ts b/TypeScript/11AddTrader/types/models/spt/config/IQuestConfig.d.ts new file mode 100644 index 0000000..be4a97b --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/config/IQuestConfig.d.ts @@ -0,0 +1,77 @@ +import { ELocationName } from "../../enums/ELocationName"; +import { IBaseConfig } from "./IBaseConfig"; +export interface IQuestConfig extends IBaseConfig { + kind: "aki-quest"; + redeemTime: number; + repeatableQuests: IRepeatableQuestConfig[]; +} +export interface IRepeatableQuestConfig { + name: string; + types: string[]; + resetTime: number; + numQuests: number; + minPlayerLevel: number; + rewardScaling: IRewardScaling; + locations: Record; + traderWhitelist: ITraderWhitelist[]; + questConfig: IQuestConfig; +} +export interface IRewardScaling { + levels: number[]; + experience: number[]; + roubles: number[]; + items: number[]; + reputation: number[]; + rewardSpread: number; +} +export interface ITraderWhitelist { + traderId: string; + questTypes: string[]; +} +export interface IQuestConfig { + Exploration: IExploration; + Completion: ICompletion; + Elimination: IElimination; +} +export interface IExploration { + maxExtracts: number; + specificExits: ISpecificExits; +} +export interface ISpecificExits { + probability: number; + passageRequirementWhitelist: string[]; +} +export interface ICompletion { + minRequestedAmount: number; + maxRequestedAmount: number; + minRequestedBulletAmount: number; + maxRequestedBulletAmount: number; + useWhitelist: boolean; + useBlacklist: boolean; +} +export interface IElimination { + targets: ITarget[]; + bodyPartProb: number; + bodyParts: IBodyPart[]; + specificLocationProb: number; + distLocationBlacklist: string[]; + distProb: number; + maxDist: number; + minDist: number; + maxKills: number; + minKills: number; +} +export interface IProbabilityObject { + key: string; + relativeProbability: number; + data?: any; +} +export interface ITarget extends IProbabilityObject { + data: IBossInfo; +} +export interface IBossInfo { + isBoss: boolean; +} +export interface IBodyPart extends IProbabilityObject { + data: string[]; +} diff --git a/TypeScript/11AddTrader/types/models/spt/config/IRagfairConfig.d.ts b/TypeScript/11AddTrader/types/models/spt/config/IRagfairConfig.d.ts new file mode 100644 index 0000000..2d151ca --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/config/IRagfairConfig.d.ts @@ -0,0 +1,59 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IRagfairConfig extends IBaseConfig { + kind: "aki-ragfair"; + runIntervalSeconds: number; + sell: Sell; + traders: Record; + dynamic: Dynamic; +} +export interface Sell { + fees: boolean; + chance: Chance; + time: Time; + reputation: Reputation; +} +export interface Chance { + base: number; + overprices: number; + underpriced: number; +} +export interface Time { + base: number; + min: number; + max: number; +} +export interface Reputation { + gain: number; + loss: number; +} +export interface Dynamic { + expiredOfferThreshold: number; + offerItemCount: MinMax; + price: MinMax; + endTimeSeconds: MinMax; + condition: Condition; + stackablePercent: MinMax; + nonStackableCount: MinMax; + rating: MinMax; + currencies: Record; + showAsSingleStack: string[]; + blacklist: Blacklist; +} +export interface MinMax { + min: number; + max: number; +} +export interface Condition { + conditionChance: number; + min: number; + max: number; +} +export interface Blacklist { + /** + * show/hide trader items that are blacklisted by bsg + */ + traderItems: boolean; + custom: string[]; + enableBsgList: boolean; + enableQuestList: boolean; +} diff --git a/TypeScript/11AddTrader/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/11AddTrader/types/models/spt/config/IRepairConfig.d.ts new file mode 100644 index 0000000..4966eb5 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/config/IRepairConfig.d.ts @@ -0,0 +1,5 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IRepairConfig extends IBaseConfig { + kind: "aki-repair"; + priceMultiplier: number; +} diff --git a/TypeScript/11AddTrader/types/models/spt/config/ITraderConfig.d.ts b/TypeScript/11AddTrader/types/models/spt/config/ITraderConfig.d.ts new file mode 100644 index 0000000..dab73e3 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/config/ITraderConfig.d.ts @@ -0,0 +1,15 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface ITraderConfig extends IBaseConfig { + kind: "aki-trader"; + updateTime: UpdateTime[]; + updateTimeDefault: number; + fenceAssortSize: number; + fenceMaxPresetsCount: number; + fencePresetPriceMult: number; + minDurabilityForSale: number; + fenceItemIgnoreList: string[]; +} +export interface UpdateTime { + traderId: string; + seconds: number; +} diff --git a/TypeScript/11AddTrader/types/models/spt/config/IWeatherConfig.d.ts b/TypeScript/11AddTrader/types/models/spt/config/IWeatherConfig.d.ts new file mode 100644 index 0000000..c52cab3 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/config/IWeatherConfig.d.ts @@ -0,0 +1,21 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IWeatherConfig extends IBaseConfig { + kind: "aki-weather"; + acceleration: number; + weather: Weather; +} +export interface Weather { + clouds: MinMax; + windSpeed: MinMax; + windDirection: MinMax; + windGustiness: MinMax; + rain: MinMax; + rainIntensity: MinMax; + fog: MinMax; + temp: MinMax; + pressure: MinMax; +} +export interface MinMax { + min: number; + max: number; +} diff --git a/TypeScript/11AddTrader/types/models/spt/controllers/IBotController.d.ts b/TypeScript/11AddTrader/types/models/spt/controllers/IBotController.d.ts new file mode 100644 index 0000000..010e208 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/controllers/IBotController.d.ts @@ -0,0 +1,13 @@ +import { IGenerateBotsRequestData } from "../../eft/bot/IGenerateBotsRequestData"; +import { IBotBase } from "../../eft/common/tables/IBotBase"; +import { IBotCore } from "../../eft/common/tables/IBotCore"; +import { Difficulty } from "../../eft/common/tables/IBotType"; +export interface IBotController { + getBotLimit(type: string): number; + getBotDifficulty(type: string, difficulty: string): IBotCore | Difficulty; + isBotPmc(botRole: string): boolean; + isBotBoss(botRole: string): boolean; + isBotFollower(botRole: string): boolean; + generate(info: IGenerateBotsRequestData, playerScav: boolean): IBotBase[]; + getBotCap(): number; +} diff --git a/TypeScript/11AddTrader/types/models/spt/generators/IBotGenerator.d.ts b/TypeScript/11AddTrader/types/models/spt/generators/IBotGenerator.d.ts new file mode 100644 index 0000000..f3e8586 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/generators/IBotGenerator.d.ts @@ -0,0 +1,10 @@ +import { Inventory as PmcInventory } from "../../eft/common/IPmcData"; +import { Inventory, Chances, Generation } from "../../eft/common/tables/IBotType"; +export interface IBotGenerator { + generateInventory(templateInventory: Inventory, equipmentChances: Chances, generation: Generation, botRole: string, isPmc: boolean): PmcInventory; +} +export interface IExhaustableArray { + getRandomValue(): T; + getFirstValue(): T; + hasValues(): boolean; +} diff --git a/TypeScript/11AddTrader/types/models/spt/generators/ILocationGenerator.d.ts b/TypeScript/11AddTrader/types/models/spt/generators/ILocationGenerator.d.ts new file mode 100644 index 0000000..530ceca --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/generators/ILocationGenerator.d.ts @@ -0,0 +1,6 @@ +import { IStaticContainerProps, IStaticLootDetails, IStaticAmmoDetails, IStaticForcedProps } from "../../eft/common/tables/ILootBase"; +import { ILooseLoot, SpawnpointTemplate } from "../../eft/common/ILooseLoot"; +export interface ILocationGenerator { + generateContainerLoot(containerIn: IStaticContainerProps, staticForced: IStaticForcedProps[], staticLootDist: Record, staticAmmoDist: Record, locationName: string): IStaticContainerProps; + generateDynamicLoot(dynamicLootDist: ILooseLoot, staticAmmoDist: Record, locationName: string): SpawnpointTemplate[]; +} diff --git a/TypeScript/11AddTrader/types/models/spt/generators/IPMCLootGenerator.d.ts b/TypeScript/11AddTrader/types/models/spt/generators/IPMCLootGenerator.d.ts new file mode 100644 index 0000000..a9db89b --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/generators/IPMCLootGenerator.d.ts @@ -0,0 +1,4 @@ +export interface IPMCLootGenerator { + generatePMCPocketLootPool(): string[]; + generatePMCBackpackLootPool(): string[]; +} diff --git a/TypeScript/11AddTrader/types/models/spt/generators/IRagfairAssortGenerator.d.ts b/TypeScript/11AddTrader/types/models/spt/generators/IRagfairAssortGenerator.d.ts new file mode 100644 index 0000000..6670540 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/generators/IRagfairAssortGenerator.d.ts @@ -0,0 +1,4 @@ +import { Item } from "../../eft/common/tables/IItem"; +export interface IRagfairAssortGenerator { + getAssortItems(): Item[]; +} diff --git a/TypeScript/11AddTrader/types/models/spt/generators/IRagfairOfferGenerator.d.ts b/TypeScript/11AddTrader/types/models/spt/generators/IRagfairOfferGenerator.d.ts new file mode 100644 index 0000000..30b4be5 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/generators/IRagfairOfferGenerator.d.ts @@ -0,0 +1,6 @@ +import { IBarterScheme } from "../../eft/common/tables/ITrader"; +import { IRagfairOffer } from "../../eft/ragfair/IRagfairOffer"; +import { Item } from "../../eft/common/tables/IItem"; +export interface IRagfairOfferGenerator { + createOffer(userID: string, time: number, items: Item[], barterScheme: IBarterScheme[], loyalLevel: number, price: number, sellInOnePiece: boolean): IRagfairOffer; +} diff --git a/TypeScript/11AddTrader/types/models/spt/helpers/Traders.d.ts b/TypeScript/11AddTrader/types/models/spt/helpers/Traders.d.ts new file mode 100644 index 0000000..e935d29 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/models/spt/mod/IMod.d.ts b/TypeScript/11AddTrader/types/models/spt/mod/IMod.d.ts new file mode 100644 index 0000000..e6eec79 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/mod/IMod.d.ts @@ -0,0 +1,10 @@ +export declare namespace ModLoader { + interface IMod { + name: string; + version: string; + main?: string; + author?: string; + license: string; + dependencies?: Record; + } +} diff --git a/TypeScript/11AddTrader/types/models/spt/mod/IModLoader.d.ts b/TypeScript/11AddTrader/types/models/spt/mod/IModLoader.d.ts new file mode 100644 index 0000000..5398c9b --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/models/spt/mod/IPackageJsonData.d.ts b/TypeScript/11AddTrader/types/models/spt/mod/IPackageJsonData.d.ts new file mode 100644 index 0000000..09472cd --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/models/spt/ragfair/IRagfairServerPrices.d.ts b/TypeScript/11AddTrader/types/models/spt/ragfair/IRagfairServerPrices.d.ts new file mode 100644 index 0000000..c7d246a --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/ragfair/IRagfairServerPrices.d.ts @@ -0,0 +1,4 @@ +export interface IRagfairServerPrices { + static: Record; + dynamic: Record; +} diff --git a/TypeScript/11AddTrader/types/models/spt/server/IDatabaseTables.d.ts b/TypeScript/11AddTrader/types/models/spt/server/IDatabaseTables.d.ts new file mode 100644 index 0000000..dbb71be --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/models/spt/server/IHttpServer.d.ts b/TypeScript/11AddTrader/types/models/spt/server/IHttpServer.d.ts new file mode 100644 index 0000000..c828399 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/server/IHttpServer.d.ts @@ -0,0 +1,12 @@ +/// +/// +import http, { ServerResponse } from "http"; +import { INotification } from "../../eft/notifier/INotifier"; +export interface IHttpServer { + load(): void; + getCookies(req: http.IncomingMessage): any; + sendFile(resp: ServerResponse, file: any): void; + isConnectionWebSocket(sessionID: string): boolean; + sendResponse(sessionID: string, req: any, resp: any, body: Buffer): void; + sendMessage(sessionID: string, output: INotification): void; +} diff --git a/TypeScript/11AddTrader/types/models/spt/server/ILocaleBase.d.ts b/TypeScript/11AddTrader/types/models/spt/server/ILocaleBase.d.ts new file mode 100644 index 0000000..a20084d --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/models/spt/server/ILocations.d.ts b/TypeScript/11AddTrader/types/models/spt/server/ILocations.d.ts new file mode 100644 index 0000000..18f0262 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/server/ILocations.d.ts @@ -0,0 +1,26 @@ +import { ILocationBase } from "../../eft/common/ILocationBase"; +import { ILooseLoot } from "../../eft/common/ILooseLoot"; +import { ILocationsBase } from "../../eft/common/tables/ILocationsBase"; +export interface ILocations { + bigmap?: ILocationData; + develop?: ILocationData; + factory4_day?: ILocationData; + factory4_night?: ILocationData; + hideout?: ILocationData; + interchange?: ILocationData; + laboratory?: ILocationData; + lighthouse?: ILocationData; + privatearea?: ILocationData; + rezervbase?: ILocationData; + shoreline?: ILocationData; + suburbs?: ILocationData; + tarkovstreets?: ILocationData; + terminal?: ILocationData; + town?: ILocationData; + woods?: ILocationData; + base?: ILocationsBase; +} +export interface ILocationData { + base: ILocationBase; + looseLoot?: ILooseLoot; +} diff --git a/TypeScript/11AddTrader/types/models/spt/server/IServerBase.d.ts b/TypeScript/11AddTrader/types/models/spt/server/IServerBase.d.ts new file mode 100644 index 0000000..d033db3 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/server/IServerBase.d.ts @@ -0,0 +1,4 @@ +export interface IServerBase { + ip: string; + port: number; +} diff --git a/TypeScript/11AddTrader/types/models/spt/server/ISettingsBase.d.ts b/TypeScript/11AddTrader/types/models/spt/server/ISettingsBase.d.ts new file mode 100644 index 0000000..c067cda --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/server/ISettingsBase.d.ts @@ -0,0 +1,43 @@ +export interface ISettingsBase { + config: Config; +} +export interface Config { + AFKTimeoutSeconds: number; + AdditionalRandomDelaySeconds: number; + ClientSendRateLimit: number; + CriticalRetriesCount: number; + DefaultRetriesCount: number; + FirstCycleDelaySeconds: number; + FramerateLimit: FramerateLimit; + GroupStatusInterval: number; + KeepAliveInterval: number; + Mark502and504AsNonImportant: boolean; + MemoryManagementSettings: MemoryManagementSettings; + NVidiaHighlights: boolean; + NextCycleDelaySeconds: number; + PingServerResultSendInterval: number; + PingServersInterval: number; + ReleaseProfiler: ReleaseProfiler; + SecondCycleDelaySeconds: number; + TurnOffLogging: boolean; + WeaponOverlapDistanceCulling: number; + WebDiagnosticsEnabled: boolean; +} +export interface FramerateLimit { + MaxFramerateGameLimit: number; + MaxFramerateLobbyLimit: number; + MinFramerateLimit: number; +} +export interface MemoryManagementSettings { + AggressiveGC: boolean; + GigabytesRequiredToDisableGCDuringRaid: number; + HeapPreAllocationEnabled: boolean; + HeapPreAllocationMB: number; + OverrideRamCleanerSettings: boolean; + RamCleanerEnabled: boolean; +} +export interface ReleaseProfiler { + Enabled: boolean; + MaxRecords: number; + RecordTriggerValue: number; +} diff --git a/TypeScript/11AddTrader/types/models/spt/utils/IAsyncQueue.d.ts b/TypeScript/11AddTrader/types/models/spt/utils/IAsyncQueue.d.ts new file mode 100644 index 0000000..2be801a --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/utils/IAsyncQueue.d.ts @@ -0,0 +1,4 @@ +import { ICommand } from "./ICommand"; +export interface IAsyncQueue { + waitFor(command: ICommand): Promise; +} diff --git a/TypeScript/11AddTrader/types/models/spt/utils/ICommand.d.ts b/TypeScript/11AddTrader/types/models/spt/utils/ICommand.d.ts new file mode 100644 index 0000000..696bb83 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/utils/ICommand.d.ts @@ -0,0 +1,4 @@ +export interface ICommand { + uuid: string; + cmd: () => Promise; +} diff --git a/TypeScript/11AddTrader/types/models/spt/utils/ILogger.d.ts b/TypeScript/11AddTrader/types/models/spt/utils/ILogger.d.ts new file mode 100644 index 0000000..c983701 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/models/spt/utils/IUuidGenerator.d.ts b/TypeScript/11AddTrader/types/models/spt/utils/IUuidGenerator.d.ts new file mode 100644 index 0000000..3870469 --- /dev/null +++ b/TypeScript/11AddTrader/types/models/spt/utils/IUuidGenerator.d.ts @@ -0,0 +1,3 @@ +export interface IUUidGenerator { + generate(): string; +} diff --git a/TypeScript/11AddTrader/types/routers/HttpRouter.d.ts b/TypeScript/11AddTrader/types/routers/HttpRouter.d.ts new file mode 100644 index 0000000..44edc0b --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/ImageRouter.d.ts b/TypeScript/11AddTrader/types/routers/ImageRouter.d.ts new file mode 100644 index 0000000..80175a0 --- /dev/null +++ b/TypeScript/11AddTrader/types/routers/ImageRouter.d.ts @@ -0,0 +1,14 @@ +/// +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); + private onRoute; + addRoute(key: string, valueToAdd: string): void; + sendImage(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: any, httpServer: IHttpServer): void; + getImage(): string; +} diff --git a/TypeScript/11AddTrader/types/routers/ItemEventRouter.d.ts b/TypeScript/11AddTrader/types/routers/ItemEventRouter.d.ts new file mode 100644 index 0000000..bb20152 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/dynamic/BotDynamicRouter.d.ts b/TypeScript/11AddTrader/types/routers/dynamic/BotDynamicRouter.d.ts new file mode 100644 index 0000000..dd2f68a --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/dynamic/BundleDynamicRouter.d.ts b/TypeScript/11AddTrader/types/routers/dynamic/BundleDynamicRouter.d.ts new file mode 100644 index 0000000..be27008 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/dynamic/CustomizationDynamicRouter.d.ts b/TypeScript/11AddTrader/types/routers/dynamic/CustomizationDynamicRouter.d.ts new file mode 100644 index 0000000..03a5967 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/dynamic/DataDynamicRouter.d.ts b/TypeScript/11AddTrader/types/routers/dynamic/DataDynamicRouter.d.ts new file mode 100644 index 0000000..c30501a --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/dynamic/HttpDynamicRouter.d.ts b/TypeScript/11AddTrader/types/routers/dynamic/HttpDynamicRouter.d.ts new file mode 100644 index 0000000..b2933e9 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/dynamic/InraidDynamicRouter.d.ts b/TypeScript/11AddTrader/types/routers/dynamic/InraidDynamicRouter.d.ts new file mode 100644 index 0000000..ea4a9ae --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/dynamic/LocationDynamicRouter.d.ts b/TypeScript/11AddTrader/types/routers/dynamic/LocationDynamicRouter.d.ts new file mode 100644 index 0000000..30741db --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/dynamic/NotifierDynamicRouter.d.ts b/TypeScript/11AddTrader/types/routers/dynamic/NotifierDynamicRouter.d.ts new file mode 100644 index 0000000..4786817 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/dynamic/TraderDynamicRouter.d.ts b/TypeScript/11AddTrader/types/routers/dynamic/TraderDynamicRouter.d.ts new file mode 100644 index 0000000..a100b4c --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/item_events/CustomizationItemEventRouter.d.ts b/TypeScript/11AddTrader/types/routers/item_events/CustomizationItemEventRouter.d.ts new file mode 100644 index 0000000..3025e2c --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/item_events/HealthItemEventRouter.d.ts b/TypeScript/11AddTrader/types/routers/item_events/HealthItemEventRouter.d.ts new file mode 100644 index 0000000..bad9af2 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/item_events/HideoutItemEventRouter.d.ts b/TypeScript/11AddTrader/types/routers/item_events/HideoutItemEventRouter.d.ts new file mode 100644 index 0000000..2cec18b --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/item_events/InsuranceItemEventRouter.d.ts b/TypeScript/11AddTrader/types/routers/item_events/InsuranceItemEventRouter.d.ts new file mode 100644 index 0000000..8efc2c2 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/item_events/InventoryItemEventRouter.d.ts b/TypeScript/11AddTrader/types/routers/item_events/InventoryItemEventRouter.d.ts new file mode 100644 index 0000000..1d93e7b --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/item_events/NoteItemEventRouter.d.ts b/TypeScript/11AddTrader/types/routers/item_events/NoteItemEventRouter.d.ts new file mode 100644 index 0000000..12af594 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/item_events/PresetBuildItemEventRouter.d.ts b/TypeScript/11AddTrader/types/routers/item_events/PresetBuildItemEventRouter.d.ts new file mode 100644 index 0000000..7298c52 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/item_events/QuestItemEventRouter.d.ts b/TypeScript/11AddTrader/types/routers/item_events/QuestItemEventRouter.d.ts new file mode 100644 index 0000000..9944ae9 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/item_events/RagfairItemEventRouter.d.ts b/TypeScript/11AddTrader/types/routers/item_events/RagfairItemEventRouter.d.ts new file mode 100644 index 0000000..88e52ba --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/item_events/RepairItemEventRouter.d.ts b/TypeScript/11AddTrader/types/routers/item_events/RepairItemEventRouter.d.ts new file mode 100644 index 0000000..b292ded --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/item_events/TradeItemEventRouter.d.ts b/TypeScript/11AddTrader/types/routers/item_events/TradeItemEventRouter.d.ts new file mode 100644 index 0000000..1bca2b8 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/item_events/WishlistItemEventRouter.d.ts b/TypeScript/11AddTrader/types/routers/item_events/WishlistItemEventRouter.d.ts new file mode 100644 index 0000000..38831f6 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/save_load/HealthSaveLoadRouter.d.ts b/TypeScript/11AddTrader/types/routers/save_load/HealthSaveLoadRouter.d.ts new file mode 100644 index 0000000..114f5b2 --- /dev/null +++ b/TypeScript/11AddTrader/types/routers/save_load/HealthSaveLoadRouter.d.ts @@ -0,0 +1,7 @@ +import { IAkiProfile } from "../../models/eft/profile/IAkiProfile"; +import { HandledRoute, SaveLoadRouter } from "../../di/Router"; +export declare class HealthSaveLoadRouter extends SaveLoadRouter { + constructor(); + getHandledRoutes(): HandledRoute[]; + handleLoad(profile: IAkiProfile): IAkiProfile; +} diff --git a/TypeScript/11AddTrader/types/routers/save_load/InraidSaveLoadRouter.d.ts b/TypeScript/11AddTrader/types/routers/save_load/InraidSaveLoadRouter.d.ts new file mode 100644 index 0000000..4c00b40 --- /dev/null +++ b/TypeScript/11AddTrader/types/routers/save_load/InraidSaveLoadRouter.d.ts @@ -0,0 +1,7 @@ +import { IAkiProfile } from "../../models/eft/profile/IAkiProfile"; +import { HandledRoute, SaveLoadRouter } from "../../di/Router"; +export declare class InraidSaveLoadRouter extends SaveLoadRouter { + constructor(); + getHandledRoutes(): HandledRoute[]; + handleLoad(profile: IAkiProfile): IAkiProfile; +} diff --git a/TypeScript/11AddTrader/types/routers/save_load/InsuranceSaveLoadRouter.d.ts b/TypeScript/11AddTrader/types/routers/save_load/InsuranceSaveLoadRouter.d.ts new file mode 100644 index 0000000..30ce98e --- /dev/null +++ b/TypeScript/11AddTrader/types/routers/save_load/InsuranceSaveLoadRouter.d.ts @@ -0,0 +1,7 @@ +import { IAkiProfile } from "../../models/eft/profile/IAkiProfile"; +import { HandledRoute, SaveLoadRouter } from "../../di/Router"; +export declare class InsuranceSaveLoadRouter extends SaveLoadRouter { + constructor(); + getHandledRoutes(): HandledRoute[]; + handleLoad(profile: IAkiProfile): IAkiProfile; +} diff --git a/TypeScript/11AddTrader/types/routers/save_load/ProfileSaveLoadRouter.d.ts b/TypeScript/11AddTrader/types/routers/save_load/ProfileSaveLoadRouter.d.ts new file mode 100644 index 0000000..16c7619 --- /dev/null +++ b/TypeScript/11AddTrader/types/routers/save_load/ProfileSaveLoadRouter.d.ts @@ -0,0 +1,7 @@ +import { IAkiProfile } from "../../models/eft/profile/IAkiProfile"; +import { HandledRoute, SaveLoadRouter } from "../../di/Router"; +export declare class ProfileSaveLoadRouter extends SaveLoadRouter { + constructor(); + getHandledRoutes(): HandledRoute[]; + handleLoad(profile: IAkiProfile): IAkiProfile; +} diff --git a/TypeScript/11AddTrader/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/11AddTrader/types/routers/serializers/BundleSerializer.d.ts new file mode 100644 index 0000000..5f275c4 --- /dev/null +++ b/TypeScript/11AddTrader/types/routers/serializers/BundleSerializer.d.ts @@ -0,0 +1,11 @@ +import { IHttpServer } from "../../models/spt/server/IHttpServer"; +import { ILogger } from "../../models/spt/utils/ILogger"; +import { Serializer } from "../../di/Serializer"; +import { BundleLoader } from "../../loaders/BundleLoader"; +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/TypeScript/11AddTrader/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/11AddTrader/types/routers/serializers/ImageSerializer.d.ts new file mode 100644 index 0000000..29340d0 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/11AddTrader/types/routers/serializers/NotifySerializer.d.ts new file mode 100644 index 0000000..8be8ac2 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/BotStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/BotStaticRouter.d.ts new file mode 100644 index 0000000..d8b0bf4 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/BundleStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/BundleStaticRouter.d.ts new file mode 100644 index 0000000..3905b82 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/CustomizationStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/CustomizationStaticRouter.d.ts new file mode 100644 index 0000000..46c71b8 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/DataStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/DataStaticRouter.d.ts new file mode 100644 index 0000000..a493d3a --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/DialogStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/DialogStaticRouter.d.ts new file mode 100644 index 0000000..a59fb14 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/GameStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/GameStaticRouter.d.ts new file mode 100644 index 0000000..988b673 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/HealthStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/HealthStaticRouter.d.ts new file mode 100644 index 0000000..e644861 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/InraidStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/InraidStaticRouter.d.ts new file mode 100644 index 0000000..66ed860 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/InsuranceStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/InsuranceStaticRouter.d.ts new file mode 100644 index 0000000..8da26b3 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/ItemEventStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/ItemEventStaticRouter.d.ts new file mode 100644 index 0000000..08ba6bb --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/LauncherStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/LauncherStaticRouter.d.ts new file mode 100644 index 0000000..9d07f78 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/LocationStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/LocationStaticRouter.d.ts new file mode 100644 index 0000000..9c5c52e --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/MatchStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/MatchStaticRouter.d.ts new file mode 100644 index 0000000..d746381 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/NotifierStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/NotifierStaticRouter.d.ts new file mode 100644 index 0000000..1c8566d --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/PresetStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/PresetStaticRouter.d.ts new file mode 100644 index 0000000..2272f82 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/ProfileStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/ProfileStaticRouter.d.ts new file mode 100644 index 0000000..fd787f1 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/QuestStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/QuestStaticRouter.d.ts new file mode 100644 index 0000000..fda3c23 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/RagfairStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/RagfairStaticRouter.d.ts new file mode 100644 index 0000000..618374f --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/TraderStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/TraderStaticRouter.d.ts new file mode 100644 index 0000000..18f0629 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/routers/static/WeatherStaticRouter.d.ts b/TypeScript/11AddTrader/types/routers/static/WeatherStaticRouter.d.ts new file mode 100644 index 0000000..61b904d --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/servers/ConfigServer.d.ts b/TypeScript/11AddTrader/types/servers/ConfigServer.d.ts new file mode 100644 index 0000000..83af38d --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/servers/DatabaseServer.d.ts b/TypeScript/11AddTrader/types/servers/DatabaseServer.d.ts new file mode 100644 index 0000000..521bcf9 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/servers/HttpServer.d.ts b/TypeScript/11AddTrader/types/servers/HttpServer.d.ts new file mode 100644 index 0000000..274a299 --- /dev/null +++ b/TypeScript/11AddTrader/types/servers/HttpServer.d.ts @@ -0,0 +1,48 @@ +/// +/// +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/TypeScript/11AddTrader/types/servers/RagfairServer.d.ts b/TypeScript/11AddTrader/types/servers/RagfairServer.d.ts new file mode 100644 index 0000000..a2369b0 --- /dev/null +++ b/TypeScript/11AddTrader/types/servers/RagfairServer.d.ts @@ -0,0 +1,46 @@ +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); + load(): void; + update(): void; + private processExpiredOffer; + returnPlayerOffer(offer: IRagfairOffer): IItemEventRouterResponse; + getCategories(): Record; + /** + * Disable/Hide an offer from flea + * @param offerId + */ + hideOffer(offerId: string): void; + getOffer(offerID: string): IRagfairOffer; + removeOfferStack(offerID: string, amount: number): void; + doesOfferExist(offerId: string): boolean; + addPlayerOffers(): void; +} diff --git a/TypeScript/11AddTrader/types/servers/SaveServer.d.ts b/TypeScript/11AddTrader/types/servers/SaveServer.d.ts new file mode 100644 index 0000000..fdf92e4 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/services/FenceService.d.ts b/TypeScript/11AddTrader/types/services/FenceService.d.ts new file mode 100644 index 0000000..27d14ef --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/services/HashCacheService.d.ts b/TypeScript/11AddTrader/types/services/HashCacheService.d.ts new file mode 100644 index 0000000..c9b0170 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/services/InsuranceService.d.ts b/TypeScript/11AddTrader/types/services/InsuranceService.d.ts new file mode 100644 index 0000000..160faba --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/services/MatchLocationService.d.ts b/TypeScript/11AddTrader/types/services/MatchLocationService.d.ts new file mode 100644 index 0000000..f7b7d3b --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/services/ModCompilerService.d.ts b/TypeScript/11AddTrader/types/services/ModCompilerService.d.ts new file mode 100644 index 0000000..d316e48 --- /dev/null +++ b/TypeScript/11AddTrader/types/services/ModCompilerService.d.ts @@ -0,0 +1,13 @@ +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, path: string, modTypeScriptFiles: string[]): Promise; + private compile; + private areFilesReady; + private delay; +} diff --git a/TypeScript/11AddTrader/types/services/NotificationService.d.ts b/TypeScript/11AddTrader/types/services/NotificationService.d.ts new file mode 100644 index 0000000..9c6c143 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/services/PaymentService.d.ts b/TypeScript/11AddTrader/types/services/PaymentService.d.ts new file mode 100644 index 0000000..0a6c4d6 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/services/PlayerService.d.ts b/TypeScript/11AddTrader/types/services/PlayerService.d.ts new file mode 100644 index 0000000..99e5986 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/services/RagfairCategoriesService.d.ts b/TypeScript/11AddTrader/types/services/RagfairCategoriesService.d.ts new file mode 100644 index 0000000..fb9efa2 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/services/RagfairLinkedItemService.d.ts b/TypeScript/11AddTrader/types/services/RagfairLinkedItemService.d.ts new file mode 100644 index 0000000..d5dc58e --- /dev/null +++ b/TypeScript/11AddTrader/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; + buildLinkedItemTable(): void; + private getFilters; +} diff --git a/TypeScript/11AddTrader/types/services/RagfairOfferService.d.ts b/TypeScript/11AddTrader/types/services/RagfairOfferService.d.ts new file mode 100644 index 0000000..4e4ae26 --- /dev/null +++ b/TypeScript/11AddTrader/types/services/RagfairOfferService.d.ts @@ -0,0 +1,52 @@ +import { ConfigServer } from "../servers/ConfigServer"; +import { DatabaseServer } from "../servers/DatabaseServer"; +import { SaveServer } from "../servers/SaveServer"; +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 timeUtil; + private databaseServer; + private saveServer; + private configServer; + private playerOffersLoaded; + private toUpdate; + private expiredOffers; + private offers; + private ragfairConfig; + constructor(timeUtil: TimeUtil, databaseServer: DatabaseServer, saveServer: SaveServer, 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; + /** + * 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 + * @returns offer exists - true + */ + doesOfferExist(offerId: string): boolean; + getTraders(): Record; + flagTraderForUpdate(expiredOfferUserId: string): void; + removeOffer(globalOfferIndex: number, countToRemove: number): void; + removeOfferStack(offerID: string, amount: number): void; + removeAllOffersByTrader(traderId: string): void; + addTradersToUpdateList(): void; + addPlayerOffers(): void; +} diff --git a/TypeScript/11AddTrader/types/services/RagfairPriceService.d.ts b/TypeScript/11AddTrader/types/services/RagfairPriceService.d.ts new file mode 100644 index 0000000..7cdf854 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/services/RagfairRequiredItemsService.d.ts b/TypeScript/11AddTrader/types/services/RagfairRequiredItemsService.d.ts new file mode 100644 index 0000000..e4582d0 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/services/TraderAssortService.d.ts b/TypeScript/11AddTrader/types/services/TraderAssortService.d.ts new file mode 100644 index 0000000..ccb9e45 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/services/mod/dynamicRouter/DynamicRouterMod.d.ts b/TypeScript/11AddTrader/types/services/mod/dynamicRouter/DynamicRouterMod.d.ts new file mode 100644 index 0000000..abfe237 --- /dev/null +++ b/TypeScript/11AddTrader/types/services/mod/dynamicRouter/DynamicRouterMod.d.ts @@ -0,0 +1,6 @@ +import { DynamicRouter, RouteAction } from "../../../di/Router"; +export declare class DynamicRouterMod extends DynamicRouter { + private topLevelRoute; + constructor(routes: RouteAction[], topLevelRoute: string); + getTopLevelRoute(): string; +} diff --git a/TypeScript/11AddTrader/types/services/mod/dynamicRouter/DynamicRouterModService.d.ts b/TypeScript/11AddTrader/types/services/mod/dynamicRouter/DynamicRouterModService.d.ts new file mode 100644 index 0000000..6742fc6 --- /dev/null +++ b/TypeScript/11AddTrader/types/services/mod/dynamicRouter/DynamicRouterModService.d.ts @@ -0,0 +1,7 @@ +import { DependencyContainer } from "tsyringe"; +import { RouteAction } from "../../../di/Router"; +export declare class DynamicRouterModService { + private container; + constructor(container: DependencyContainer); + registerDynamicRouter(name: string, routes: RouteAction[], topLevelRoute: string): void; +} diff --git a/TypeScript/11AddTrader/types/services/mod/image/imageRouteService.d.ts b/TypeScript/11AddTrader/types/services/mod/image/imageRouteService.d.ts new file mode 100644 index 0000000..854083c --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/services/mod/onLoad/OnLoadMod.d.ts b/TypeScript/11AddTrader/types/services/mod/onLoad/OnLoadMod.d.ts new file mode 100644 index 0000000..53fb062 --- /dev/null +++ b/TypeScript/11AddTrader/types/services/mod/onLoad/OnLoadMod.d.ts @@ -0,0 +1,8 @@ +import { OnLoad } from "../../../di/OnLoad"; +export declare class OnLoadMod extends OnLoad { + private onLoadOverride; + private getRouteOverride; + constructor(onLoadOverride: () => void, getRouteOverride: () => string); + onLoad(): void; + getRoute(): string; +} diff --git a/TypeScript/11AddTrader/types/services/mod/onLoad/OnLoadModService.d.ts b/TypeScript/11AddTrader/types/services/mod/onLoad/OnLoadModService.d.ts new file mode 100644 index 0000000..89bad14 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/services/mod/onUpdate/OnUpdateMod.d.ts b/TypeScript/11AddTrader/types/services/mod/onUpdate/OnUpdateMod.d.ts new file mode 100644 index 0000000..ee89043 --- /dev/null +++ b/TypeScript/11AddTrader/types/services/mod/onUpdate/OnUpdateMod.d.ts @@ -0,0 +1,8 @@ +import { OnUpdate } from "../../../di/OnUpdate"; +export declare class OnUpdateMod extends OnUpdate { + private onUpdateOverride; + private getRouteOverride; + constructor(onUpdateOverride: (timeSinceLastRun: number) => boolean, getRouteOverride: () => string); + onUpdate(timeSinceLastRun: number): boolean; + getRoute(): string; +} diff --git a/TypeScript/11AddTrader/types/services/mod/onUpdate/OnUpdateModService.d.ts b/TypeScript/11AddTrader/types/services/mod/onUpdate/OnUpdateModService.d.ts new file mode 100644 index 0000000..32419f4 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/services/mod/staticRouter/StaticRouterMod.d.ts b/TypeScript/11AddTrader/types/services/mod/staticRouter/StaticRouterMod.d.ts new file mode 100644 index 0000000..1e62747 --- /dev/null +++ b/TypeScript/11AddTrader/types/services/mod/staticRouter/StaticRouterMod.d.ts @@ -0,0 +1,6 @@ +import { RouteAction, StaticRouter } from "../../../di/Router"; +export declare class StaticRouterMod extends StaticRouter { + private topLevelRoute; + constructor(routes: RouteAction[], topLevelRoute: string); + getTopLevelRoute(): string; +} diff --git a/TypeScript/11AddTrader/types/services/mod/staticRouter/StaticRouterModService.d.ts b/TypeScript/11AddTrader/types/services/mod/staticRouter/StaticRouterModService.d.ts new file mode 100644 index 0000000..d4c42aa --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/utils/App.d.ts b/TypeScript/11AddTrader/types/utils/App.d.ts new file mode 100644 index 0000000..a11f576 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/utils/AyncQueue.d.ts b/TypeScript/11AddTrader/types/utils/AyncQueue.d.ts new file mode 100644 index 0000000..a99aa37 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/utils/DatabaseImporter.d.ts b/TypeScript/11AddTrader/types/utils/DatabaseImporter.d.ts new file mode 100644 index 0000000..97dda30 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/utils/HashUtil.d.ts b/TypeScript/11AddTrader/types/utils/HashUtil.d.ts new file mode 100644 index 0000000..cf92b47 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/utils/HttpResponseUtil.d.ts b/TypeScript/11AddTrader/types/utils/HttpResponseUtil.d.ts new file mode 100644 index 0000000..85c28bd --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/utils/JsonUtil.d.ts b/TypeScript/11AddTrader/types/utils/JsonUtil.d.ts new file mode 100644 index 0000000..20b7448 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/utils/Logger.d.ts b/TypeScript/11AddTrader/types/utils/Logger.d.ts new file mode 100644 index 0000000..9d5b32a --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/utils/MathUtil.d.ts b/TypeScript/11AddTrader/types/utils/MathUtil.d.ts new file mode 100644 index 0000000..ea5fd69 --- /dev/null +++ b/TypeScript/11AddTrader/types/utils/MathUtil.d.ts @@ -0,0 +1,53 @@ +export declare class MathUtil { + /** + * Helper to create the sum of all array elements + * @param {array} values The array with numbers of which to calculate the sum + * @return {number} sum(values) + */ + arraySum(values: number[]): number; + /** + * Helper to create the cumulative sum of all array elements + * arrayCumsum([1, 2, 3, 4]) = [1, 3, 6, 10] + * @param {array} values The array with numbers of which to calculate the cumulative sum + * @return {array} cumsum(values) + */ + arrayCumsum(values: number[]): number[]; + /** + * Helper to create the product of each element times factor + * @param {array} values The array of numbers which shall be multiplied by the factor + * @return {array} array times factor + */ + arrayProd(values: number[], factor: number): number[]; + /** + * Helper to add a constant to all array elements + * @param {array} values The array of numbers to which the summand should be added + * @return {array} array plus summand + */ + arrayAdd(values: number[], summand: number): number[]; + /** + * Map a value from an input range to an output range linearly + * + * Example: + * a_min = 0; a_max=1; + * b_min = 1; b_max=3; + * MathUtil.mapToRange(0.5, a_min, a_max, b_min, b_max) // returns 2 + * + * @param {number} x The value from input range to be mapped to output range + * @param {number} minIn min of input range + * @param {number} maxIn max of input range + * @param {number} minOut min of output range + * @param {number} maxOut max of outout range + * @return {number} the result of the mapping + */ + mapToRange(x: number, minIn: number, maxIn: number, minOut: number, maxOut: number): number; + /** + * Linear interpolation + * e.g. used to do a continuous integration for quest rewards which are defined for specific support centers of pmcLevel + * + * @param {string} xp the point of x at which to interpolate + * @param {array} x support points in x (of same length as y) + * @param {array} y support points in y (of same length as x) + * @return {number} y(xp) + */ + interp1(xp: number, x: number[], y: number[]): number; +} diff --git a/TypeScript/11AddTrader/types/utils/ObjectId.d.ts b/TypeScript/11AddTrader/types/utils/ObjectId.d.ts new file mode 100644 index 0000000..b100572 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/utils/RandomUtil.d.ts b/TypeScript/11AddTrader/types/utils/RandomUtil.d.ts new file mode 100644 index 0000000..3a3ecb6 --- /dev/null +++ b/TypeScript/11AddTrader/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/TypeScript/11AddTrader/types/utils/TimeUtil.d.ts b/TypeScript/11AddTrader/types/utils/TimeUtil.d.ts new file mode 100644 index 0000000..9733be9 --- /dev/null +++ b/TypeScript/11AddTrader/types/utils/TimeUtil.d.ts @@ -0,0 +1,8 @@ +export declare class TimeUtil { + static readonly oneHourAsSeconds = 3600; + formatTime(date: Date): string; + formatDate(date: Date): string; + getDate(): string; + getTime(): string; + getTimestamp(): number; +} diff --git a/TypeScript/11AddTrader/types/utils/UUidGenerator.d.ts b/TypeScript/11AddTrader/types/utils/UUidGenerator.d.ts new file mode 100644 index 0000000..000b719 --- /dev/null +++ b/TypeScript/11AddTrader/types/utils/UUidGenerator.d.ts @@ -0,0 +1,4 @@ +import { IUUidGenerator } from "../models/spt/utils/IUuidGenerator"; +export declare class UUidGenerator implements IUUidGenerator { + generate: () => string; +} diff --git a/TypeScript/11AddTrader/types/utils/VFS.d.ts b/TypeScript/11AddTrader/types/utils/VFS.d.ts new file mode 100644 index 0000000..c84ece5 --- /dev/null +++ b/TypeScript/11AddTrader/types/utils/VFS.d.ts @@ -0,0 +1,55 @@ +/// +/// +import "reflect-metadata"; +import fs from "fs"; +import { IAsyncQueue } from "../models/spt/utils/IAsyncQueue"; +import { IUUidGenerator } from "../models/spt/utils/IUuidGenerator"; +export declare class VFS { + 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/TypeScript/11AddTrader/types/utils/Watermark.d.ts b/TypeScript/11AddTrader/types/utils/Watermark.d.ts new file mode 100644 index 0000000..1a5dee3 --- /dev/null +++ b/TypeScript/11AddTrader/types/utils/Watermark.d.ts @@ -0,0 +1,28 @@ +import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; +export declare class WatermarkLocale { + private locales; + getLocale(): string; + getDescription(): string[]; + getWarning(): 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/TypeScript/11AddTrader/types/utils/decorators/Singleton.d.ts b/TypeScript/11AddTrader/types/utils/decorators/Singleton.d.ts new file mode 100644 index 0000000..7e89026 --- /dev/null +++ b/TypeScript/11AddTrader/types/utils/decorators/Singleton.d.ts @@ -0,0 +1,4 @@ +import type constructor from "./constructor"; +import { InjectionToken } from "tsyringe"; +declare function singleton(token?: InjectionToken): (target: constructor) => void; +export default singleton; diff --git a/TypeScript/11AddTrader/types/utils/decorators/constructor.d.ts b/TypeScript/11AddTrader/types/utils/decorators/constructor.d.ts new file mode 100644 index 0000000..416f354 --- /dev/null +++ b/TypeScript/11AddTrader/types/utils/decorators/constructor.d.ts @@ -0,0 +1,4 @@ +declare type constructor = { + new (...args: any[]): T; +}; +export default constructor; diff --git a/TypeScript/11AddTrader/yarn.lock b/TypeScript/11AddTrader/yarn.lock new file mode 100644 index 0000000..11044dc --- /dev/null +++ b/TypeScript/11AddTrader/yarn.lock @@ -0,0 +1,1349 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + +"@babel/highlight@^7.10.4": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" + integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@eslint/eslintrc@^0.4.1": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@types/json-schema@^7.0.7": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/node@^14.15.3": + version "14.18.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.18.tgz#5c9503030df484ccffcbb935ea9a9e1d6fad1a20" + integrity sha512-B9EoJFjhqcQ9OmQrNorItO+OwEOORNn3S31WuiHvZY/dm9ajkB7AKD/8toessEtHHNL+58jofbq7hMMY9v4yig== + +"@typescript-eslint/eslint-plugin@^4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" + integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== + dependencies: + "@typescript-eslint/experimental-utils" "4.33.0" + "@typescript-eslint/scope-manager" "4.33.0" + debug "^4.3.1" + functional-red-black-tree "^1.0.1" + ignore "^5.1.8" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/experimental-utils@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" + integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== + dependencies: + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/parser@^4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" + integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== + dependencies: + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" + debug "^4.3.1" + +"@typescript-eslint/scope-manager@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" + integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + +"@typescript-eslint/types@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" + integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== + +"@typescript-eslint/typescript-estree@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" + integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/visitor-keys@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" + integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== + dependencies: + "@typescript-eslint/types" "4.33.0" + eslint-visitor-keys "^2.0.0" + +acorn-jsx@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.1: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +archiver-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" + integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== + dependencies: + glob "^7.1.4" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash.defaults "^4.2.0" + lodash.difference "^4.5.0" + lodash.flatten "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.union "^4.6.0" + normalize-path "^3.0.0" + readable-stream "^2.0.0" + +archiver@^5.3.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.1.tgz#21e92811d6f09ecfce649fbefefe8c79e57cbbb6" + integrity sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w== + dependencies: + archiver-utils "^2.1.0" + async "^3.2.3" + buffer-crc32 "^0.2.1" + readable-stream "^3.6.0" + readdir-glob "^1.0.0" + tar-stream "^2.2.0" + zip-stream "^4.1.0" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async@^3.2.0, async@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" + integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +bestzip@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/bestzip/-/bestzip-2.2.1.tgz#6f14c48e7abf57dfac60aecb45ee4571b77b37a7" + integrity sha512-XdAb87RXqOqF7C6UgQG9IqpEHJvS6IOUo0bXWEAebjSSdhDjsbcqFKdHpn5Q7QHz2pGr3Zmw4wgG3LlzdyDz7w== + dependencies: + archiver "^5.3.0" + async "^3.2.0" + glob "^7.1.6" + which "^2.0.2" + yargs "^16.2.0" + +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +buffer-crc32@^0.2.1, buffer-crc32@^0.2.13: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +compress-commons@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d" + integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ== + dependencies: + buffer-crc32 "^0.2.13" + crc32-stream "^4.0.2" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +copyfiles@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.4.1.tgz#d2dcff60aaad1015f09d0b66e7f0f1c5cd3c5da5" + integrity sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg== + dependencies: + glob "^7.0.5" + minimatch "^3.0.3" + mkdirp "^1.0.4" + noms "0.0.0" + through2 "^2.0.1" + untildify "^4.0.0" + yargs "^16.1.0" + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +crc32-stream@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007" + integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w== + dependencies: + crc-32 "^1.2.0" + readable-stream "^3.4.0" + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +debug@^4.0.1, debug@^4.1.1, debug@^4.3.1: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint@7.26.0: + version "7.26.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.26.0.tgz#d416fdcdcb3236cd8f282065312813f8c13982f6" + integrity sha512-4R1ieRf52/izcZE7AlLy56uIHHDLT74Yzz2Iv2l6kDaYvEu9x+wMB5dZArVL8SYGXSYV2YAg70FcW5Y5nGGNIg== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.1" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.21" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.4" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.9: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastq@^1.6.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.2.5" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" + integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +glob-parent@^5.0.0, glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.0.5, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^13.6.0, globals@^13.9.0: + version "13.15.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" + integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== + dependencies: + type-fest "^0.20.2" + +globby@^11.0.3: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +graceful-fs@^4.2.0: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.8, ignore@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.0, is-glob@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +lazystream@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" + integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== + dependencies: + readable-stream "^2.0.5" + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + +lodash.difference@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= + +lodash.flatten@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + +lodash.union@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +noms@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859" + integrity sha1-2o69nzr51nYJGbJ9nNyAkqczKFk= + dependencies: + inherits "^2.0.1" + readable-stream "~1.0.31" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +once@^1.3.0, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~1.0.31: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readdir-glob@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.1.tgz#f0e10bb7bf7bfa7e0add8baffdc54c3f7dbee6c4" + integrity sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA== + dependencies: + minimatch "^3.0.4" + +regexpp@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +semver@^7.2.1, semver@^7.3.5: + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +table@^6.0.4: + version "6.8.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" + integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== + dependencies: + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + +tar-stream@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +through2@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tslib@^1.8.1, tslib@^1.9.3: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tsyringe@4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/tsyringe/-/tsyringe-4.6.0.tgz#14915d3d7f0db35e1cf7269bdbf7c440713c8d07" + integrity sha512-BMQAZamSfEmIQzH8WJeRu1yZGQbPSDuI9g+yEiKZFIcO46GPZuMOC2d0b52cVBdw1d++06JnDSIIZvEnogMdAw== + dependencies: + tslib "^1.9.3" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +typescript@4.6.4: + version "4.6.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.4.tgz#caa78bbc3a59e6a5c510d35703f6a09877ce45e9" + integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg== + +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@^16.1.0, yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +zip-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79" + integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A== + dependencies: + archiver-utils "^2.1.0" + compress-commons "^4.1.0" + readable-stream "^3.6.0" From 603a77abcb71ce4aa839d865b3df7b6c473f29ca Mon Sep 17 00:00:00 2001 From: Mangiang Date: Sat, 4 Jun 2022 23:04:12 -0400 Subject: [PATCH 2/3] fix: trader mod example --- TypeScript/13AddTrader/.eslintignore | 9 + TypeScript/13AddTrader/.eslintrc.json | 75 ++ TypeScript/13AddTrader/README.md | 64 + TypeScript/13AddTrader/db/base.json | 85 ++ TypeScript/13AddTrader/mod.code-workspace | 12 + TypeScript/13AddTrader/package.json | 25 + TypeScript/13AddTrader/res/cat.jpg | Bin 0 -> 28622 bytes TypeScript/13AddTrader/src/mod.ts | 129 ++ TypeScript/13AddTrader/tsconfig.json | 25 + TypeScript/13AddTrader/types/Program.d.ts | 4 + TypeScript/13AddTrader/types/TYPES.d.ts | 3 + TypeScript/13AddTrader/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 + .../13AddTrader/types/di/Container.d.ts | 14 + TypeScript/13AddTrader/types/di/OnLoad.d.ts | 4 + .../13AddTrader/types/di/OnLoadOnUpdate.d.ts | 7 + TypeScript/13AddTrader/types/di/OnUpdate.d.ts | 4 + TypeScript/13AddTrader/types/di/Router.d.ts | 40 + .../13AddTrader/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 + .../13AddTrader/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 ++ .../13AddTrader/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 + .../13AddTrader/types/ide/Compiler.d.ts | 1 + .../13AddTrader/types/ide/DebugEntry.d.ts | 1 + .../13AddTrader/types/ide/ReleaseEntry.d.ts | 1 + .../13AddTrader/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 +++++ .../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 + .../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 + .../13AddTrader/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/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 | 12 + .../types/models/spt/server/ILocaleBase.d.ts | 61 + .../types/models/spt/server/ILocations.d.ts | 26 + .../types/models/spt/server/IServerBase.d.ts | 4 + .../models/spt/server/ISettingsBase.d.ts | 43 + .../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 + .../13AddTrader/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 + .../13AddTrader/types/servers/HttpServer.d.ts | 48 + .../types/servers/RagfairServer.d.ts | 30 + .../13AddTrader/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 + TypeScript/13AddTrader/types/utils/App.d.ts | 14 + .../13AddTrader/types/utils/AyncQueue.d.ts | 7 + .../types/utils/DatabaseImporter.d.ts | 18 + .../13AddTrader/types/utils/HashUtil.d.ts | 11 + .../types/utils/HttpResponseUtil.d.ts | 16 + .../13AddTrader/types/utils/JsonUtil.d.ts | 25 + .../13AddTrader/types/utils/Logger.d.ts | 25 + .../13AddTrader/types/utils/MathUtil.d.ts | 53 + .../13AddTrader/types/utils/ObjectId.d.ts | 14 + .../13AddTrader/types/utils/RandomUtil.d.ts | 153 +++ .../13AddTrader/types/utils/TimeUtil.d.ts | 8 + .../types/utils/UUidGenerator.d.ts | 4 + TypeScript/13AddTrader/types/utils/VFS.d.ts | 55 + .../13AddTrader/types/utils/Watermark.d.ts | 29 + .../types/utils/decorators/Singleton.d.ts | 4 + .../types/utils/decorators/constructor.d.ts | 4 + 433 files changed, 10766 insertions(+) create mode 100644 TypeScript/13AddTrader/.eslintignore create mode 100644 TypeScript/13AddTrader/.eslintrc.json create mode 100644 TypeScript/13AddTrader/README.md create mode 100644 TypeScript/13AddTrader/db/base.json create mode 100644 TypeScript/13AddTrader/mod.code-workspace create mode 100644 TypeScript/13AddTrader/package.json create mode 100644 TypeScript/13AddTrader/res/cat.jpg create mode 100644 TypeScript/13AddTrader/src/mod.ts create mode 100644 TypeScript/13AddTrader/tsconfig.json create mode 100644 TypeScript/13AddTrader/types/Program.d.ts create mode 100644 TypeScript/13AddTrader/types/TYPES.d.ts create mode 100644 TypeScript/13AddTrader/types/Utils.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/BotCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/BundleCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/CustomizationCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/DataCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/DialogueCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/GameCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/HandbookCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/HealthCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/HideoutCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/HttpCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/InraidCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/InsuranceCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/InventoryCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/ItemEventCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/LauncherCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/LocationCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/MatchCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/ModCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/NoteCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/NotifierCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/PresetBuildCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/PresetCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/ProfileCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/QuestCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/RagfairCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/RepairCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/SaveCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/TradeCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/TraderCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/WeatherCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/callbacks/WishlistCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/BotController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/CustomizationController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/DialogueController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/GameController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/HandbookController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/HealthController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/HideoutController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/InraidController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/InsuranceController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/InventoryController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/LauncherController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/LocationController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/MatchController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/NoteController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/NotifierController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/PresetBuildController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/PresetController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/ProfileController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/QuestController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/RagfairController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/RepairController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/RepeatableQuestController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/TradeController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/TraderController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/WeatherController.d.ts create mode 100644 TypeScript/13AddTrader/types/controllers/WishlistController.d.ts create mode 100644 TypeScript/13AddTrader/types/di/Container.d.ts create mode 100644 TypeScript/13AddTrader/types/di/OnLoad.d.ts create mode 100644 TypeScript/13AddTrader/types/di/OnLoadOnUpdate.d.ts create mode 100644 TypeScript/13AddTrader/types/di/OnUpdate.d.ts create mode 100644 TypeScript/13AddTrader/types/di/Router.d.ts create mode 100644 TypeScript/13AddTrader/types/di/Serializer.d.ts create mode 100644 TypeScript/13AddTrader/types/generators/BotGenerator.d.ts create mode 100644 TypeScript/13AddTrader/types/generators/BotInventoryGenerator.d.ts create mode 100644 TypeScript/13AddTrader/types/generators/BotLootGenerator.d.ts create mode 100644 TypeScript/13AddTrader/types/generators/BotWeaponGenerator.d.ts create mode 100644 TypeScript/13AddTrader/types/generators/LocationGenerator.d.ts create mode 100644 TypeScript/13AddTrader/types/generators/PMCLootGenerator.d.ts create mode 100644 TypeScript/13AddTrader/types/generators/RagfairAssortGenerator.d.ts create mode 100644 TypeScript/13AddTrader/types/generators/RagfairOfferGenerator.d.ts create mode 100644 TypeScript/13AddTrader/types/generators/WeatherGenerator.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/AssortHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/BotGeneratorHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/BotHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/ContainerHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/DialogueHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/DurabilityLimitsHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/ExtendedProfileHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/GameEventHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/HandbookHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/HealthHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/HideoutHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/HttpServerHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/InRaidHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/InventoryHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/ItemHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/NotificationSendHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/NotifierHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/PaymentHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/PresetHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/ProfileHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/QuestConditionHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/QuestHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/RagfairHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/RagfairOfferHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/RagfairSellHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/RagfairServerHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/RagfairSortHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/RagfairTaxHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/RepairHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/SecureContainerHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/TradeHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/TraderAssortHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/TraderHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/UtilityHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/helpers/WeightedRandomHelper.d.ts create mode 100644 TypeScript/13AddTrader/types/ide/BleedingEdgeEntry.d.ts create mode 100644 TypeScript/13AddTrader/types/ide/Compiler.d.ts create mode 100644 TypeScript/13AddTrader/types/ide/DebugEntry.d.ts create mode 100644 TypeScript/13AddTrader/types/ide/ReleaseEntry.d.ts create mode 100644 TypeScript/13AddTrader/types/ide/TestEntry.d.ts create mode 100644 TypeScript/13AddTrader/types/loaders/BundleLoader.d.ts create mode 100644 TypeScript/13AddTrader/types/loaders/DelayedModLoader.d.ts create mode 100644 TypeScript/13AddTrader/types/loaders/InitialModLoader.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/bot/IGenerateBotsRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/IEmptyRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/IGlobals.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/ILocation.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/ILocationBase.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/ILocationsSourceDestinationBase.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/ILooseLoot.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/IMetricsTableData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/IPmcData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/request/IBaseInteractionRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/tables/IBotBase.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/tables/IBotCore.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/tables/IBotType.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/tables/ICustomizationItem.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/tables/IHandbookBase.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/tables/IItem.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/tables/ILocationsBase.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/tables/ILootBase.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/tables/IQuest.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/tables/IRepeatableQuests.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/tables/ITemplateItem.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/common/tables/ITrader.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/customization/IBuyClothingRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/customization/IWearClothingRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/dialog/IFriendRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/dialog/IGetAllAttachmentsRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/dialog/IGetAllAttachmentsResponse.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/dialog/IGetChatServerListRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/dialog/IGetFriendListDataResponse.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/dialog/IGetMailDialogInfoRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/dialog/IGetMailDialogListRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/dialog/IGetMailDialogViewRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/dialog/IGetMailDialogViewResponseData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/dialog/IPinDialogRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/dialog/IRemoveDialogRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/dialog/ISendMessageRequest.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/dialog/ISetDialogReadRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/game/IGameConfigResponse.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/game/IGameEmptyCrcRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/game/IVersionValidateRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/health/IHealthTreatmentRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/health/IOffraidEatRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/health/IOffraidHealRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/health/ISyncHealthRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/hideout/HideoutUpgradeCompleteRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/hideout/IHideoutArea.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/hideout/IHideoutContinousProductionStartRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/hideout/IHideoutProduction.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/hideout/IHideoutPutItemInRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/hideout/IHideoutScavCase.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/hideout/IHideoutScavCaseStartRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/hideout/IHideoutSettingsBase.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/hideout/IHideoutSingleProductionStartRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/hideout/IHideoutTakeItemOutRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/hideout/IHideoutTakeProductionRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/hideout/IHideoutToggleAreaRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/hideout/IHideoutUpgradeCompleteRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/hideout/IHideoutUpgradeRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/httpResponse/IGetBodyResponseData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/httpResponse/INullResponseData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inRaid/IRegisterPlayerRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inRaid/ISaveProgressRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/insurance/IGetInsuranceCostRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/insurance/IInsureRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inventory/IAddItemRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inventory/IInventoryAddRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inventory/IInventoryBaseActionRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inventory/IInventoryBindRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inventory/IInventoryCreateMarkerRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inventory/IInventoryDeleteMarkerRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inventory/IInventoryEditMarkerRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inventory/IInventoryExamineRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inventory/IInventoryFoldRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inventory/IInventoryMergeRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inventory/IInventoryMoveRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inventory/IInventoryReadEncyclopediaRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inventory/IInventoryRemoveRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inventory/IInventorySortRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inventory/IInventorySplitRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inventory/IInventorySwapRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inventory/IInventoryTagRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inventory/IInventoryToggleRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/inventory/IInventoryTransferRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/itemEvent/IEmptyItemEventRouterResponse.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/itemEvent/IItemEventRouterBase.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/itemEvent/IItemEventRouterRequest.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/itemEvent/IItemEventRouterResponse.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/launcher/IChangeRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/launcher/IGetMiniProfileRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/launcher/ILoginRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/launcher/IMiniProfile.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/launcher/IRegisterData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/launcher/IRemoveProfileData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/location/IGetLocationRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/match/IEndOfflineRaidRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/match/IGetProfileRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/match/IStartOffineRaidRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/notes/INoteActionData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/notifier/INotifier.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/notifier/ISelectProfileRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/player/IPlayerIncrementSkillLevelRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/profile/IAkiProfile.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/profile/IProfileChangeNicknameRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/profile/IProfileChangeVoiceRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/profile/IProfileCreateRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/profile/ISearchFriendRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/profile/ISearchFriendResponse.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/profile/IValidateNicknameRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/quests/IAcceptQuestRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/quests/ICompleteQuestRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/quests/IHandoverQuestRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/quests/IListQuestsRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/quests/IRepeatableQuestChangeRequest.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/ragfair/IAddOfferRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/ragfair/IExtendOfferRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/ragfair/IGetItemPriceResult.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/ragfair/IGetMarketPriceRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/ragfair/IGetOffersResult.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/ragfair/IRagfairOffer.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/ragfair/IRemoveOfferRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/ragfair/ISearchRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/repair/IBaseRepairActionDataRequest.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/repair/IRepairActionDataRequest.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/repair/ITraderRepairActionDataRequest.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/trade/IProcessBaseTradeRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/trade/IProcessBuyTradeRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/trade/IProcessRagfairTradeRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/trade/IProcessSellTradeRequestData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/weather/IWeatherData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/eft/wishlist/IWishlistActionData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/enums/BaseClasses.d.ts create mode 100644 TypeScript/13AddTrader/types/models/enums/ConfigTypes.d.ts create mode 100644 TypeScript/13AddTrader/types/models/enums/ELocationName.d.ts create mode 100644 TypeScript/13AddTrader/types/models/enums/EquipmentSlots.d.ts create mode 100644 TypeScript/13AddTrader/types/models/enums/HideoutAreas.d.ts create mode 100644 TypeScript/13AddTrader/types/models/enums/MemberCategory.d.ts create mode 100644 TypeScript/13AddTrader/types/models/enums/MessageType.d.ts create mode 100644 TypeScript/13AddTrader/types/models/enums/Money.d.ts create mode 100644 TypeScript/13AddTrader/types/models/enums/Traders.d.ts create mode 100644 TypeScript/13AddTrader/types/models/external/mod.d.ts create mode 100644 TypeScript/13AddTrader/types/models/external/tsyringe.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/bindings/Route.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IBotCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IBundleCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/ICustomizationCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IDataCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IDialogueCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IGameCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IHandbookCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IHealthCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IHideoutCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IHttpCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IInraidCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IInsuranceCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IInventoryCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IItemEventCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/ILauncherCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/ILocationCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IMatchCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IModCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/INoteCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/INotifierCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IPresetBuildCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IPresetCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IProfileCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IQuestCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IRagfairCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IRepairCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/ISaveCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/ITradeCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/ITraderCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IWeatherCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/callbacks/IWishlistCallbacks.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/config/IAirdropConfig.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/config/IBaseConfig.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/config/IBotConfig.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/config/ICoreConfig.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/config/IHealthConfig.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/config/IHideoutConfig.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/config/IHttpConfig.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/config/IInRaidConfig.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/config/IInsuranceConfig.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/config/IInventoryConfig.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/config/ILocationConfig.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/config/IMatchConfig.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/config/IQuestConfig.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/config/IRagfairConfig.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/config/IRepairConfig.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/config/ITraderConfig.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/config/IWeatherConfig.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/controllers/IBotController.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/generators/IBotGenerator.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/generators/ILocationGenerator.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/generators/IPMCLootGenerator.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/generators/IRagfairAssortGenerator.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/generators/IRagfairOfferGenerator.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/mod/IMod.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/mod/IModLoader.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/mod/IPackageJsonData.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/ragfair/IRagfairServerPrices.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/server/IDatabaseTables.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/server/IHttpServer.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/server/ILocaleBase.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/server/ILocations.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/server/IServerBase.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/server/ISettingsBase.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/utils/IAsyncQueue.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/utils/ICommand.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/utils/ILogger.d.ts create mode 100644 TypeScript/13AddTrader/types/models/spt/utils/IUuidGenerator.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/HttpRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/ImageRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/ItemEventRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/dynamic/BotDynamicRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/dynamic/BundleDynamicRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/dynamic/CustomizationDynamicRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/dynamic/DataDynamicRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/dynamic/HttpDynamicRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/dynamic/InraidDynamicRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/dynamic/LocationDynamicRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/dynamic/NotifierDynamicRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/dynamic/TraderDynamicRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/item_events/CustomizationItemEventRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/item_events/HealthItemEventRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/item_events/HideoutItemEventRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/item_events/InsuranceItemEventRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/item_events/InventoryItemEventRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/item_events/NoteItemEventRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/item_events/PresetBuildItemEventRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/item_events/QuestItemEventRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/item_events/RagfairItemEventRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/item_events/RepairItemEventRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/item_events/TradeItemEventRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/item_events/WishlistItemEventRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/save_load/HealthSaveLoadRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/save_load/InraidSaveLoadRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/save_load/InsuranceSaveLoadRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/save_load/ProfileSaveLoadRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/serializers/BundleSerializer.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/serializers/ImageSerializer.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/serializers/NotifySerializer.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/BotStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/BundleStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/CustomizationStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/DataStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/DialogStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/GameStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/HealthStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/InraidStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/InsuranceStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/ItemEventStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/LauncherStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/LocationStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/MatchStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/NotifierStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/PresetStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/ProfileStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/QuestStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/RagfairStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/TraderStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/routers/static/WeatherStaticRouter.d.ts create mode 100644 TypeScript/13AddTrader/types/servers/ConfigServer.d.ts create mode 100644 TypeScript/13AddTrader/types/servers/DatabaseServer.d.ts create mode 100644 TypeScript/13AddTrader/types/servers/HttpServer.d.ts create mode 100644 TypeScript/13AddTrader/types/servers/RagfairServer.d.ts create mode 100644 TypeScript/13AddTrader/types/servers/SaveServer.d.ts create mode 100644 TypeScript/13AddTrader/types/services/FenceService.d.ts create mode 100644 TypeScript/13AddTrader/types/services/HashCacheService.d.ts create mode 100644 TypeScript/13AddTrader/types/services/InsuranceService.d.ts create mode 100644 TypeScript/13AddTrader/types/services/MatchLocationService.d.ts create mode 100644 TypeScript/13AddTrader/types/services/ModCompilerService.d.ts create mode 100644 TypeScript/13AddTrader/types/services/NotificationService.d.ts create mode 100644 TypeScript/13AddTrader/types/services/PaymentService.d.ts create mode 100644 TypeScript/13AddTrader/types/services/PlayerService.d.ts create mode 100644 TypeScript/13AddTrader/types/services/RagfairCategoriesService.d.ts create mode 100644 TypeScript/13AddTrader/types/services/RagfairLinkedItemService.d.ts create mode 100644 TypeScript/13AddTrader/types/services/RagfairOfferService.d.ts create mode 100644 TypeScript/13AddTrader/types/services/RagfairPriceService.d.ts create mode 100644 TypeScript/13AddTrader/types/services/RagfairRequiredItemsService.d.ts create mode 100644 TypeScript/13AddTrader/types/services/TraderAssortService.d.ts create mode 100644 TypeScript/13AddTrader/types/services/mod/dynamicRouter/DynamicRouterMod.d.ts create mode 100644 TypeScript/13AddTrader/types/services/mod/dynamicRouter/DynamicRouterModService.d.ts create mode 100644 TypeScript/13AddTrader/types/services/mod/image/imageRouteService.d.ts create mode 100644 TypeScript/13AddTrader/types/services/mod/onLoad/OnLoadMod.d.ts create mode 100644 TypeScript/13AddTrader/types/services/mod/onLoad/OnLoadModService.d.ts create mode 100644 TypeScript/13AddTrader/types/services/mod/onUpdate/OnUpdateMod.d.ts create mode 100644 TypeScript/13AddTrader/types/services/mod/onUpdate/OnUpdateModService.d.ts create mode 100644 TypeScript/13AddTrader/types/services/mod/staticRouter/StaticRouterMod.d.ts create mode 100644 TypeScript/13AddTrader/types/services/mod/staticRouter/StaticRouterModService.d.ts create mode 100644 TypeScript/13AddTrader/types/utils/App.d.ts create mode 100644 TypeScript/13AddTrader/types/utils/AyncQueue.d.ts create mode 100644 TypeScript/13AddTrader/types/utils/DatabaseImporter.d.ts create mode 100644 TypeScript/13AddTrader/types/utils/HashUtil.d.ts create mode 100644 TypeScript/13AddTrader/types/utils/HttpResponseUtil.d.ts create mode 100644 TypeScript/13AddTrader/types/utils/JsonUtil.d.ts create mode 100644 TypeScript/13AddTrader/types/utils/Logger.d.ts create mode 100644 TypeScript/13AddTrader/types/utils/MathUtil.d.ts create mode 100644 TypeScript/13AddTrader/types/utils/ObjectId.d.ts create mode 100644 TypeScript/13AddTrader/types/utils/RandomUtil.d.ts create mode 100644 TypeScript/13AddTrader/types/utils/TimeUtil.d.ts create mode 100644 TypeScript/13AddTrader/types/utils/UUidGenerator.d.ts create mode 100644 TypeScript/13AddTrader/types/utils/VFS.d.ts create mode 100644 TypeScript/13AddTrader/types/utils/Watermark.d.ts create mode 100644 TypeScript/13AddTrader/types/utils/decorators/Singleton.d.ts create mode 100644 TypeScript/13AddTrader/types/utils/decorators/constructor.d.ts diff --git a/TypeScript/13AddTrader/.eslintignore b/TypeScript/13AddTrader/.eslintignore new file mode 100644 index 0000000..9922d9a --- /dev/null +++ b/TypeScript/13AddTrader/.eslintignore @@ -0,0 +1,9 @@ +# Exclude these folders from linting +node_modules +dist/ +types/ + +# Exclude these filetypes from linting +*.json +*.txt +*.exe \ No newline at end of file diff --git a/TypeScript/13AddTrader/.eslintrc.json b/TypeScript/13AddTrader/.eslintrc.json new file mode 100644 index 0000000..c505160 --- /dev/null +++ b/TypeScript/13AddTrader/.eslintrc.json @@ -0,0 +1,75 @@ +{ + "root": true, + "parser": "@typescript-eslint/parser", + "plugins": [ + "@typescript-eslint" + ], + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + "@typescript-eslint/no-explicit-any": 0, + "@typescript-eslint/no-unused-vars": 1, + "@typescript-eslint/no-empty-interface": 0, + "@typescript-eslint/no-namespace": 0, + "@typescript-eslint/comma-dangle": 1, + "@typescript-eslint/func-call-spacing": 2, + "@typescript-eslint/quotes": 1, + "@typescript-eslint/brace-style": [ + "warn", + "allman" + ], + "@typescript-eslint/naming-convention": [ + "warn", + { + "selector": "default", + "format": ["camelCase"], + "leadingUnderscore": "allow" + }, + { + "selector": "typeLike", + "format": ["PascalCase"] + }, + { + "selector": "objectLiteralProperty", + "format": ["PascalCase", "camelCase"], + "leadingUnderscore": "allow" + }, + { + "selector": "typeProperty", + "format": ["PascalCase", "camelCase"], + "leadingUnderscore": "allow" + }, + { + "selector": "enumMember", + "format": ["UPPER_CASE"] + } + ], + "@typescript-eslint/indent": [ + "warn", + 4 + ], + "@typescript-eslint/no-unused-expressions": [ + "warn", + { + "allowShortCircuit": false, + "allowTernary": false + } + ], + "@typescript-eslint/keyword-spacing": [ + "warn", + { + "before": true, + "after": true + } + ], + "@typescript-eslint/explicit-module-boundary-types": [ + "warn", + { + "allowArgumentsExplicitlyTypedAsAny": true + } + ] + } +} \ No newline at end of file diff --git a/TypeScript/13AddTrader/README.md b/TypeScript/13AddTrader/README.md new file mode 100644 index 0000000..efc31a4 --- /dev/null +++ b/TypeScript/13AddTrader/README.md @@ -0,0 +1,64 @@ + +This project was created to automate most parts of building and setting up an environment. + +## **NodeJS 14.15.3:** + +The first step would be to install nodejs on your pc, the version you NEED is **14.15.3** + +That version is the one that has been used to test the mod templates and build scripts. + +It can be downloaded from here: https://nodejs.org/download/release/v14.15.3/ + +A system reboot may be needed after install. + +## **IDE:** + +The second step is having an IDE ready. For the currect purpose we've setup a VSCodium workspace file. + +You CAN use Visual Studio Code if you so desire, just keep in mind that our dev tests on the mod files was done using VSCodium. + +You can get VSCodium here: https://vscodium.com/#install + +## **Workspace:** + +Once you have NodeJS and VSCodium ready, open the mod.code-workspace file with VSCodium (File->Open Worspace from File...). + +Once the project loads into VSCodium you will be recommended to install the ESLint plugin. This is HIGHLY recommended. + +## **Environment Setup:** + +There is a task that will automatically setup your environment to use typescript. + +To run it, you just need to go to: + +> Terminal->Run Task...->Show All Tasks...->npm: install + +After running this task, your environment will be ready to start coding. + +DO NOT remove the node_modules folder, this is an auto generated directory that has the required dependencies to be able to use typescript and more. + +## **IMPORTANT:** + +Before starting to work on your mod, we suggest you read about Dependency Injection and Inversion of Control as this is the adopted architecture SPT-AKI has adopted. + +It will be difficult to understand some of the problems you may be having if you dont understand the basics of it. + +A guide explaining all the essentials will be available on the hub on release for you to read about. + +## **Coding:** + +All your work should be centered around the mod.ts file as an entry point. +You can ONLY change the following properties from the package.json file: `"name"`, `"version"`, `"license"`: `"MIT"`, `"author"`, `"akiVersion"`. + +If you have never used typescript before, you can read about it here: https://www.typescriptlang.org/docs/ + +## **Distributing your mod:** + +The project has been set up with an automatic task that will copy and zip ALL required files for your mod to work on SPT-AKI. +To run this task you just need to go to: + +> Terminal->Run Task...->Show All Tasks...->npm: build:zip + +The output will be a mod.zip file that will appear on the root of the project. + +Always verify that all files were included into the zip file. \ No newline at end of file diff --git a/TypeScript/13AddTrader/db/base.json b/TypeScript/13AddTrader/db/base.json new file mode 100644 index 0000000..8100b35 --- /dev/null +++ b/TypeScript/13AddTrader/db/base.json @@ -0,0 +1,85 @@ +{ + "_id": "cat", + "working": true, + "customization_seller": false, + "name": "Cat", + "surname": " ", + "nickname": "Cat", + "location": "Here is the cat shop", + "avatar": "/files/trader/avatar/cat.jpg", + "balance_rub": 5000000, + "balance_dol": 0, + "balance_eur": 0, + "unlockedByDefault": true, + "discount": 0, + "discount_end": 0, + "buyer_up": true, + "currency": "RUB", + "nextResupply": 1615141448, + "repair": { + "availability": false, + "quality": "2", + "excluded_id_list": [], + "excluded_category": [], + "currency": "5449016a4bdc2d6f028b456f", + "currency_coefficient": 1, + "price_rate": 10 + }, + "insurance": { + "availability": false, + "min_payment": 0, + "min_return_hour": 0, + "max_return_hour": 0, + "max_storage_time": 99, + "excluded_category": [] + }, + "gridHeight": 150, + "loyaltyLevels": [ + { + "minLevel": 1, + "minSalesSum": 0, + "minStanding": 0, + "buy_price_coef": 38, + "repair_price_coef": 175, + "insurance_price_coef": 10, + "exchange_price_coef": 0, + "heal_price_coef": 0 + } + ], + "sell_category": [ + "82e7fac0b7495d72d4083356", + "ac705d3440c1407645e33579", + "dc97aee367144dc03389405d", + "7ffcc96aa06c7e90940330c5", + "e8f46e3ad74b9d862121f9dc", + "5b47574386f77428ca22b33e", + "5b47574386f77428ca22b33f", + "5b5f78dc86f77409407a7f8e", + "5b47574386f77428ca22b346", + "5b47574386f77428ca22b340", + "5b47574386f77428ca22b344", + "5b47574386f77428ca22b342", + "5b47574386f77428ca22b341", + "5b47574386f77428ca22b345", + "5b47574386f77428ca22b343", + "5b5f71b386f774093f2ecf11", + "5b5f71c186f77409407a7ec0", + "5b5f71de86f774093f2ecf13", + "5b5f724186f77447ed5636ad", + "5b5f736886f774094242f193", + "5b5f73ec86f774093e6cb4fd", + "5b5f74cc86f77447ec5d770a", + "5b5f750686f774093e6cb503", + "5b5f751486f77447ec5d770c", + "5b5f752e86f774093e6cb505", + "5b5f754a86f774094242f19b", + "5b5f755f86f77447ec5d770e", + "5b5f757486f774093e6cb507", + "5b5f75b986f77447ec5d7710", + "5b5f75c686f774094242f19f", + "5b5f75e486f77447ec5d7712", + "5b5f760586f774093e6cb509", + "5b5f761f86f774094242f1a1", + "5b5f764186f77447ec5d7714" + ] +} diff --git a/TypeScript/13AddTrader/mod.code-workspace b/TypeScript/13AddTrader/mod.code-workspace new file mode 100644 index 0000000..6732c67 --- /dev/null +++ b/TypeScript/13AddTrader/mod.code-workspace @@ -0,0 +1,12 @@ +{ + "folders": [ + { + "path": "." + } + ], + "extensions": { + "recommendations": [ + "dbaeumer.vscode-eslint" + ] + } +} \ No newline at end of file diff --git a/TypeScript/13AddTrader/package.json b/TypeScript/13AddTrader/package.json new file mode 100644 index 0000000..aacb8f9 --- /dev/null +++ b/TypeScript/13AddTrader/package.json @@ -0,0 +1,25 @@ +{ + "name": "13AddTrader", + "version": "1.0.0", + "main": "src/mod.js", + "license": "MIT", + "author": "Shirito", + "akiVersion": "3.0.0", + "scripts": { + "setup:environment": "npm i", + "build:unzipped": "copyfiles -e \"./node_modules/**/*.*\" -e \"./dist/**/*.*\" -e \"./package-lock.json\" -e \"./tsconfig.json\" -e \"./README.txt\" -e \"./mod.code-workspace\" ./**/*.* ./dist", + "zip:files": "cd dist/ && bestzip ../mod.zip *", + "build:zip": "npm run clean:environment && npm run build:unzipped && npm run zip:files", + "clean:environment": "node -e \"require('fs').rm('mod.zip', ()=>{})\" && node -e \"require('fs').rmdir('./dist/',{recursive:true},()=>{})\"" + }, + "devDependencies": { + "@types/node": "^14.15.3", + "@typescript-eslint/eslint-plugin": "^4.33.0", + "@typescript-eslint/parser": "^4.33.0", + "copyfiles": "2.4.1", + "eslint": "7.26.0", + "tsyringe": "4.6.0", + "typescript": "4.6.4", + "bestzip": "2.2.1" + } +} diff --git a/TypeScript/13AddTrader/res/cat.jpg b/TypeScript/13AddTrader/res/cat.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f3ccda282b5785051e5711f31d52d60c10499593 GIT binary patch literal 28622 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 literal 0 HcmV?d00001 diff --git a/TypeScript/13AddTrader/src/mod.ts b/TypeScript/13AddTrader/src/mod.ts new file mode 100644 index 0000000..8abcbea --- /dev/null +++ b/TypeScript/13AddTrader/src/mod.ts @@ -0,0 +1,129 @@ +import { DependencyContainer } from "tsyringe"; + +// SPT types +import { IMod } from "@spt-aki/models/external/mod"; +import { ILogger } from "@spt-aki/models/spt/utils/ILogger"; +import { InitialModLoader } from "@spt-aki/loaders/InitialModLoader"; +import { DatabaseServer } from "@spt-aki/servers/DatabaseServer"; +import { ImageRouter } from "@spt-aki/routers/ImageRouter"; +import { ConfigServer } from "@spt-aki/servers/ConfigServer"; +import { ConfigTypes } from "@spt-aki/models/enums/ConfigTypes"; +import { ITraderAssort, ITraderBase } from "@spt-aki/models/eft/common/tables/ITrader"; +import { ITraderConfig, UpdateTime } from "@spt-aki/models/spt/config/ITraderConfig"; +import { JsonUtil } from "@spt-aki/utils/JsonUtil"; +import { Item } from "@spt-aki/models/eft/common/tables/IItem"; + +// The new trader config +import * as baseJson from "../db/base.json"; + +class SampleTrader implements IMod { + mod: string + logger: ILogger + + constructor() { + this.mod = "13AddTrader"; + } + + // Perform these actions before server fully loads + public load(container: DependencyContainer): void { + this.logger = container.resolve("WinstonLogger"); + this.logger.debug(`[${this.mod}] Loading... `); + + this.registerProfileImage(container); + + this.setupTraderUpdateTime(container); + + this.logger.debug(`[${this.mod}] Loaded`); + } + + public delayedLoad(container: DependencyContainer): void { + this.logger.debug(`[${this.mod}] Delayed Loading... `); + + const databaseServer = container.resolve("DatabaseServer"); + const jsonUtil = container.resolve("JsonUtil"); + + // Keep a reference to the tables + const tables = databaseServer.getTables(); + + // Add the new trader to the trader lists in DatabaseServer + tables.traders[baseJson._id] = { + assort: this.createAssortTable(), + base: jsonUtil.deserialize(jsonUtil.serialize(baseJson)) as ITraderBase, + questassort: undefined + }; + + // For each language, add locale for the new trader + const locales = Object.values(tables.locales.global); + for (const locale of locales) { + locale.trading[baseJson._id] = { + FullName: baseJson.name, + FirstName: "Cat", + Nickname: baseJson.nickname, + Location: baseJson.location, + Description: "This is the cat shop" + }; + } + this.logger.debug(`[${this.mod}] Delayed Loaded`); + } + + private registerProfileImage(container: DependencyContainer): void { + // Reference the mod "res" folder + const initialModLoader = container.resolve("InitialModLoader"); + const imageFilepath = `./${initialModLoader.getModPath(this.mod)}res`; + + // Register route pointing to the profile picture + const imageRouter = container.resolve("ImageRouter"); + imageRouter.addRoute(baseJson.avatar.replace(".jpg", ""), `${imageFilepath}/cat.jpg`); + } + + private setupTraderUpdateTime(container: DependencyContainer): void { + // Add refresh time in seconds when Config server allows to set configs + const configServer = container.resolve("ConfigServer"); + const traderConfig = configServer.getConfig(ConfigTypes.TRADER); + const traderRefreshConfig: UpdateTime = { traderId: baseJson._id, seconds: 3600 } + traderConfig.updateTime.push(traderRefreshConfig); + } + + private createAssortTable(): ITraderAssort { + // Assort table + const assortTable: ITraderAssort = { + items: [], + barter_scheme: {}, + loyal_level_items: {} + } + + // Keep reference of a few IDs + const MILK_ID = "575146b724597720a27126d5"; + const ROUBLE_ID = "5449016a4bdc2d6f028b456f"; + + // Define item in the table + const newMilkItem: Item = { + _id: MILK_ID, + _tpl: MILK_ID, + parentId: "hideout", + slotId: "hideout", + upd: { + UnlimitedCount: true, + StackObjectsCount: 999999999 + } + }; + assortTable.items.push(newMilkItem); + + // Define the item price to be 1 RUB + assortTable.barter_scheme[MILK_ID] = [ + [ + { + count: 1, + _tpl: ROUBLE_ID + } + ] + ]; + + // Unlockable at level 1 (from the start) + assortTable.loyal_level_items[MILK_ID] = 1; + + return assortTable; + } +} + +module.exports = { mod: new SampleTrader() } \ No newline at end of file diff --git a/TypeScript/13AddTrader/tsconfig.json b/TypeScript/13AddTrader/tsconfig.json new file mode 100644 index 0000000..0ff9e2a --- /dev/null +++ b/TypeScript/13AddTrader/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "allowJs": true, + "module": "CommonJS", + "target": "es2020", + "moduleResolution": "node", + "esModuleInterop": true, + "downlevelIteration": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "resolveJsonModule": true, + "outDir": "tmp", + "baseUrl": ".", + "paths": { + "@spt-aki/*": ["./types/*"] + } + }, + "lib": [ + "es2020" + ], + "include": [ + "src/*", + "src/**/*" + ] +} \ No newline at end of file diff --git a/TypeScript/13AddTrader/types/Program.d.ts b/TypeScript/13AddTrader/types/Program.d.ts new file mode 100644 index 0000000..d4b71b9 --- /dev/null +++ b/TypeScript/13AddTrader/types/Program.d.ts @@ -0,0 +1,4 @@ +export declare class Program { + constructor(); + start(): void; +} diff --git a/TypeScript/13AddTrader/types/TYPES.d.ts b/TypeScript/13AddTrader/types/TYPES.d.ts new file mode 100644 index 0000000..6407c3a --- /dev/null +++ b/TypeScript/13AddTrader/types/TYPES.d.ts @@ -0,0 +1,3 @@ +export declare const TYPES: { + [name: string]: symbol; +}; diff --git a/TypeScript/13AddTrader/types/Utils.d.ts b/TypeScript/13AddTrader/types/Utils.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/TypeScript/13AddTrader/types/callbacks/BotCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/BotCallbacks.d.ts new file mode 100644 index 0000000..9602975 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/BundleCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/BundleCallbacks.d.ts new file mode 100644 index 0000000..b007ab8 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/CustomizationCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/CustomizationCallbacks.d.ts new file mode 100644 index 0000000..918b8b6 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/DataCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/DataCallbacks.d.ts new file mode 100644 index 0000000..018420e --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/DialogueCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/DialogueCallbacks.d.ts new file mode 100644 index 0000000..3b6fbd1 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/GameCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/GameCallbacks.d.ts new file mode 100644 index 0000000..44a30ea --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/HandbookCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/HandbookCallbacks.d.ts new file mode 100644 index 0000000..0db5fec --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/HealthCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/HealthCallbacks.d.ts new file mode 100644 index 0000000..a50dd42 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/HideoutCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/HideoutCallbacks.d.ts new file mode 100644 index 0000000..3698176 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/HttpCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/HttpCallbacks.d.ts new file mode 100644 index 0000000..9fe387d --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/InraidCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/InraidCallbacks.d.ts new file mode 100644 index 0000000..2d53227 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/InsuranceCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/InsuranceCallbacks.d.ts new file mode 100644 index 0000000..79feb67 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/InventoryCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/InventoryCallbacks.d.ts new file mode 100644 index 0000000..9795aa0 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/ItemEventCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/ItemEventCallbacks.d.ts new file mode 100644 index 0000000..74e79c4 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/LauncherCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/LauncherCallbacks.d.ts new file mode 100644 index 0000000..4bd5e2c --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/LocationCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/LocationCallbacks.d.ts new file mode 100644 index 0000000..5ecab74 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/MatchCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/MatchCallbacks.d.ts new file mode 100644 index 0000000..63d38d9 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/ModCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/ModCallbacks.d.ts new file mode 100644 index 0000000..2011f0e --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/NoteCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/NoteCallbacks.d.ts new file mode 100644 index 0000000..fd7c5ca --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/NotifierCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/NotifierCallbacks.d.ts new file mode 100644 index 0000000..416e6a3 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/PresetBuildCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/PresetBuildCallbacks.d.ts new file mode 100644 index 0000000..639c33f --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/PresetCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/PresetCallbacks.d.ts new file mode 100644 index 0000000..f62afd6 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/ProfileCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/ProfileCallbacks.d.ts new file mode 100644 index 0000000..efce47d --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/QuestCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/QuestCallbacks.d.ts new file mode 100644 index 0000000..f742096 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/RagfairCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/RagfairCallbacks.d.ts new file mode 100644 index 0000000..152475f --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/RepairCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/RepairCallbacks.d.ts new file mode 100644 index 0000000..f63ec18 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/SaveCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/SaveCallbacks.d.ts new file mode 100644 index 0000000..b7219a0 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/TradeCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/TradeCallbacks.d.ts new file mode 100644 index 0000000..9928951 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/TraderCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/TraderCallbacks.d.ts new file mode 100644 index 0000000..2a8af7f --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/WeatherCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/WeatherCallbacks.d.ts new file mode 100644 index 0000000..e40ab3e --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/callbacks/WishlistCallbacks.d.ts b/TypeScript/13AddTrader/types/callbacks/WishlistCallbacks.d.ts new file mode 100644 index 0000000..e0249fd --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/BotController.d.ts b/TypeScript/13AddTrader/types/controllers/BotController.d.ts new file mode 100644 index 0000000..8ecb97f --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/CustomizationController.d.ts b/TypeScript/13AddTrader/types/controllers/CustomizationController.d.ts new file mode 100644 index 0000000..698e6be --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/DialogueController.d.ts b/TypeScript/13AddTrader/types/controllers/DialogueController.d.ts new file mode 100644 index 0000000..235594f --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/GameController.d.ts b/TypeScript/13AddTrader/types/controllers/GameController.d.ts new file mode 100644 index 0000000..bb2a55a --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/HandbookController.d.ts b/TypeScript/13AddTrader/types/controllers/HandbookController.d.ts new file mode 100644 index 0000000..f473437 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/HealthController.d.ts b/TypeScript/13AddTrader/types/controllers/HealthController.d.ts new file mode 100644 index 0000000..ca049f6 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/HideoutController.d.ts b/TypeScript/13AddTrader/types/controllers/HideoutController.d.ts new file mode 100644 index 0000000..f35c23b --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/InraidController.d.ts b/TypeScript/13AddTrader/types/controllers/InraidController.d.ts new file mode 100644 index 0000000..c1cd6f5 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/InsuranceController.d.ts b/TypeScript/13AddTrader/types/controllers/InsuranceController.d.ts new file mode 100644 index 0000000..b175a06 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/InventoryController.d.ts b/TypeScript/13AddTrader/types/controllers/InventoryController.d.ts new file mode 100644 index 0000000..8235082 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/LauncherController.d.ts b/TypeScript/13AddTrader/types/controllers/LauncherController.d.ts new file mode 100644 index 0000000..2a30713 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/LocationController.d.ts b/TypeScript/13AddTrader/types/controllers/LocationController.d.ts new file mode 100644 index 0000000..41a8719 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/MatchController.d.ts b/TypeScript/13AddTrader/types/controllers/MatchController.d.ts new file mode 100644 index 0000000..84abbe3 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/NoteController.d.ts b/TypeScript/13AddTrader/types/controllers/NoteController.d.ts new file mode 100644 index 0000000..4d3420e --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/NotifierController.d.ts b/TypeScript/13AddTrader/types/controllers/NotifierController.d.ts new file mode 100644 index 0000000..36fef66 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/PresetBuildController.d.ts b/TypeScript/13AddTrader/types/controllers/PresetBuildController.d.ts new file mode 100644 index 0000000..11c5c3e --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/PresetController.d.ts b/TypeScript/13AddTrader/types/controllers/PresetController.d.ts new file mode 100644 index 0000000..6ec8c55 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/ProfileController.d.ts b/TypeScript/13AddTrader/types/controllers/ProfileController.d.ts new file mode 100644 index 0000000..c8bd5f1 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/QuestController.d.ts b/TypeScript/13AddTrader/types/controllers/QuestController.d.ts new file mode 100644 index 0000000..d8caee5 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/RagfairController.d.ts b/TypeScript/13AddTrader/types/controllers/RagfairController.d.ts new file mode 100644 index 0000000..5b94a95 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/RepairController.d.ts b/TypeScript/13AddTrader/types/controllers/RepairController.d.ts new file mode 100644 index 0000000..77dd47a --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/RepeatableQuestController.d.ts b/TypeScript/13AddTrader/types/controllers/RepeatableQuestController.d.ts new file mode 100644 index 0000000..2dedc7e --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/TradeController.d.ts b/TypeScript/13AddTrader/types/controllers/TradeController.d.ts new file mode 100644 index 0000000..f0a177b --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/TraderController.d.ts b/TypeScript/13AddTrader/types/controllers/TraderController.d.ts new file mode 100644 index 0000000..36eac75 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/WeatherController.d.ts b/TypeScript/13AddTrader/types/controllers/WeatherController.d.ts new file mode 100644 index 0000000..312c3a3 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/controllers/WishlistController.d.ts b/TypeScript/13AddTrader/types/controllers/WishlistController.d.ts new file mode 100644 index 0000000..5ef8df3 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/di/Container.d.ts b/TypeScript/13AddTrader/types/di/Container.d.ts new file mode 100644 index 0000000..17791b0 --- /dev/null +++ b/TypeScript/13AddTrader/types/di/Container.d.ts @@ -0,0 +1,14 @@ +import { DependencyContainer } from "tsyringe"; +export declare class Container { + static registerTypes(depContainer: DependencyContainer): void; + static registerListTypes(depContainer: DependencyContainer): void; + private static registerUtils; + private static registerRouters; + private static registerGenerators; + private static registerHelpers; + private static registerLoaders; + private static registerCallbacks; + private static registerServices; + private static registerServers; + private static registerControllers; +} diff --git a/TypeScript/13AddTrader/types/di/OnLoad.d.ts b/TypeScript/13AddTrader/types/di/OnLoad.d.ts new file mode 100644 index 0000000..064d07d --- /dev/null +++ b/TypeScript/13AddTrader/types/di/OnLoad.d.ts @@ -0,0 +1,4 @@ +export declare class OnLoad { + onLoad(): void; + getRoute(): string; +} diff --git a/TypeScript/13AddTrader/types/di/OnLoadOnUpdate.d.ts b/TypeScript/13AddTrader/types/di/OnLoadOnUpdate.d.ts new file mode 100644 index 0000000..8bd3dc3 --- /dev/null +++ b/TypeScript/13AddTrader/types/di/OnLoadOnUpdate.d.ts @@ -0,0 +1,7 @@ +import { OnLoad } from "./OnLoad"; +import { OnUpdate } from "./OnUpdate"; +export declare class OnLoadOnUpdate implements OnLoad, OnUpdate { + onUpdate(timeSinceLastRun: number): boolean; + onLoad(): void; + getRoute(): string; +} diff --git a/TypeScript/13AddTrader/types/di/OnUpdate.d.ts b/TypeScript/13AddTrader/types/di/OnUpdate.d.ts new file mode 100644 index 0000000..7fbbe09 --- /dev/null +++ b/TypeScript/13AddTrader/types/di/OnUpdate.d.ts @@ -0,0 +1,4 @@ +export declare class OnUpdate { + onUpdate(timeSinceLastRun: number): boolean; + getRoute(): string; +} diff --git a/TypeScript/13AddTrader/types/di/Router.d.ts b/TypeScript/13AddTrader/types/di/Router.d.ts new file mode 100644 index 0000000..2fb98e0 --- /dev/null +++ b/TypeScript/13AddTrader/types/di/Router.d.ts @@ -0,0 +1,40 @@ +import { IPmcData } from "../models/eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; +import { IAkiProfile } from "../models/eft/profile/IAkiProfile"; +export declare class Router { + private handledRoutes; + getTopLevelRoute(): string; + protected getHandledRoutes(): HandledRoute[]; + private getInternalHandledRoutes; + canHandle(url: string, partialMatch?: boolean): boolean; +} +export declare class StaticRouter extends Router { + private routes; + constructor(routes: RouteAction[]); + handleStatic(url: string, info: any, sessionID: string, output: string): any; + getHandledRoutes(): HandledRoute[]; +} +export declare class DynamicRouter extends Router { + private routes; + constructor(routes: RouteAction[]); + handleDynamic(url: string, info: any, sessionID: string, output: string): any; + getHandledRoutes(): HandledRoute[]; +} +export declare class ItemEventRouterDefinition extends Router { + constructor(); + handleItemEvent(url: string, pmcData: IPmcData, body: any, sessionID: string): IItemEventRouterResponse; +} +export declare class SaveLoadRouter extends Router { + constructor(); + handleLoad(profile: IAkiProfile): IAkiProfile; +} +export declare class HandledRoute { + route: string; + dynamic: boolean; + constructor(route: string, dynamic: boolean); +} +export declare class RouteAction { + url: string; + action: (url: string, info: any, sessionID: string, output: string) => any; + constructor(url: string, action: (url: string, info: any, sessionID: string, output: string) => any); +} diff --git a/TypeScript/13AddTrader/types/di/Serializer.d.ts b/TypeScript/13AddTrader/types/di/Serializer.d.ts new file mode 100644 index 0000000..70aa7c5 --- /dev/null +++ b/TypeScript/13AddTrader/types/di/Serializer.d.ts @@ -0,0 +1,5 @@ +import { IHttpServer } from "../models/spt/server/IHttpServer"; +export declare class Serializer { + serialize(sessionID: string, req: any, resp: any, body: any, httpServer: IHttpServer): void; + canHandle(something: string): boolean; +} diff --git a/TypeScript/13AddTrader/types/generators/BotGenerator.d.ts b/TypeScript/13AddTrader/types/generators/BotGenerator.d.ts new file mode 100644 index 0000000..e2565b7 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/generators/BotInventoryGenerator.d.ts b/TypeScript/13AddTrader/types/generators/BotInventoryGenerator.d.ts new file mode 100644 index 0000000..0cdbacb --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/generators/BotLootGenerator.d.ts b/TypeScript/13AddTrader/types/generators/BotLootGenerator.d.ts new file mode 100644 index 0000000..1d8c8e1 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/generators/BotWeaponGenerator.d.ts b/TypeScript/13AddTrader/types/generators/BotWeaponGenerator.d.ts new file mode 100644 index 0000000..e8f91cb --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/generators/LocationGenerator.d.ts b/TypeScript/13AddTrader/types/generators/LocationGenerator.d.ts new file mode 100644 index 0000000..4b96792 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/generators/PMCLootGenerator.d.ts b/TypeScript/13AddTrader/types/generators/PMCLootGenerator.d.ts new file mode 100644 index 0000000..601431b --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/generators/RagfairAssortGenerator.d.ts b/TypeScript/13AddTrader/types/generators/RagfairAssortGenerator.d.ts new file mode 100644 index 0000000..06d3250 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/generators/RagfairOfferGenerator.d.ts b/TypeScript/13AddTrader/types/generators/RagfairOfferGenerator.d.ts new file mode 100644 index 0000000..e3fbe4a --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/generators/WeatherGenerator.d.ts b/TypeScript/13AddTrader/types/generators/WeatherGenerator.d.ts new file mode 100644 index 0000000..b9faa3a --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/AssortHelper.d.ts b/TypeScript/13AddTrader/types/helpers/AssortHelper.d.ts new file mode 100644 index 0000000..33cb5c6 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/BotGeneratorHelper.d.ts b/TypeScript/13AddTrader/types/helpers/BotGeneratorHelper.d.ts new file mode 100644 index 0000000..141f71d --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/BotHelper.d.ts b/TypeScript/13AddTrader/types/helpers/BotHelper.d.ts new file mode 100644 index 0000000..d901362 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/ContainerHelper.d.ts b/TypeScript/13AddTrader/types/helpers/ContainerHelper.d.ts new file mode 100644 index 0000000..34cd1e4 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/DialogueHelper.d.ts b/TypeScript/13AddTrader/types/helpers/DialogueHelper.d.ts new file mode 100644 index 0000000..ae1f581 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/DurabilityLimitsHelper.d.ts b/TypeScript/13AddTrader/types/helpers/DurabilityLimitsHelper.d.ts new file mode 100644 index 0000000..609bc7d --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/ExtendedProfileHelper.d.ts b/TypeScript/13AddTrader/types/helpers/ExtendedProfileHelper.d.ts new file mode 100644 index 0000000..4dd7d3a --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/GameEventHelper.d.ts b/TypeScript/13AddTrader/types/helpers/GameEventHelper.d.ts new file mode 100644 index 0000000..8131d31 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/HandbookHelper.d.ts b/TypeScript/13AddTrader/types/helpers/HandbookHelper.d.ts new file mode 100644 index 0000000..aed6984 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/HealthHelper.d.ts b/TypeScript/13AddTrader/types/helpers/HealthHelper.d.ts new file mode 100644 index 0000000..bb160a3 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/HideoutHelper.d.ts b/TypeScript/13AddTrader/types/helpers/HideoutHelper.d.ts new file mode 100644 index 0000000..d6a4414 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/HttpServerHelper.d.ts b/TypeScript/13AddTrader/types/helpers/HttpServerHelper.d.ts new file mode 100644 index 0000000..2e40814 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/InRaidHelper.d.ts b/TypeScript/13AddTrader/types/helpers/InRaidHelper.d.ts new file mode 100644 index 0000000..e79d384 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/InventoryHelper.d.ts b/TypeScript/13AddTrader/types/helpers/InventoryHelper.d.ts new file mode 100644 index 0000000..00e95d3 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/ItemHelper.d.ts b/TypeScript/13AddTrader/types/helpers/ItemHelper.d.ts new file mode 100644 index 0000000..5ff64b6 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/NotificationSendHelper.d.ts b/TypeScript/13AddTrader/types/helpers/NotificationSendHelper.d.ts new file mode 100644 index 0000000..b9298da --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/NotifierHelper.d.ts b/TypeScript/13AddTrader/types/helpers/NotifierHelper.d.ts new file mode 100644 index 0000000..0d524e9 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/PaymentHelper.d.ts b/TypeScript/13AddTrader/types/helpers/PaymentHelper.d.ts new file mode 100644 index 0000000..2d068a4 --- /dev/null +++ b/TypeScript/13AddTrader/types/helpers/PaymentHelper.d.ts @@ -0,0 +1,14 @@ +export declare class PaymentHelper { + /** + * Check whether tpl is Money + * @param {string} tpl + * @returns void + */ + isMoneyTpl(tpl: string): boolean; + /** + * Gets currency TPL from TAG + * @param {string} currency + * @returns string + */ + getCurrency(currency: string): string; +} diff --git a/TypeScript/13AddTrader/types/helpers/PresetHelper.d.ts b/TypeScript/13AddTrader/types/helpers/PresetHelper.d.ts new file mode 100644 index 0000000..0a24128 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/ProfileHelper.d.ts b/TypeScript/13AddTrader/types/helpers/ProfileHelper.d.ts new file mode 100644 index 0000000..508443c --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/QuestConditionHelper.d.ts b/TypeScript/13AddTrader/types/helpers/QuestConditionHelper.d.ts new file mode 100644 index 0000000..2a0ee94 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/QuestHelper.d.ts b/TypeScript/13AddTrader/types/helpers/QuestHelper.d.ts new file mode 100644 index 0000000..9e2dd5e --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/RagfairHelper.d.ts b/TypeScript/13AddTrader/types/helpers/RagfairHelper.d.ts new file mode 100644 index 0000000..8e70bcd --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/RagfairOfferHelper.d.ts b/TypeScript/13AddTrader/types/helpers/RagfairOfferHelper.d.ts new file mode 100644 index 0000000..3bf8add --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/RagfairSellHelper.d.ts b/TypeScript/13AddTrader/types/helpers/RagfairSellHelper.d.ts new file mode 100644 index 0000000..929d112 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/RagfairServerHelper.d.ts b/TypeScript/13AddTrader/types/helpers/RagfairServerHelper.d.ts new file mode 100644 index 0000000..d29ba42 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/RagfairSortHelper.d.ts b/TypeScript/13AddTrader/types/helpers/RagfairSortHelper.d.ts new file mode 100644 index 0000000..e9d8069 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/RagfairTaxHelper.d.ts b/TypeScript/13AddTrader/types/helpers/RagfairTaxHelper.d.ts new file mode 100644 index 0000000..e87334f --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/RepairHelper.d.ts b/TypeScript/13AddTrader/types/helpers/RepairHelper.d.ts new file mode 100644 index 0000000..47123e1 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/SecureContainerHelper.d.ts b/TypeScript/13AddTrader/types/helpers/SecureContainerHelper.d.ts new file mode 100644 index 0000000..8f246b6 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/TradeHelper.d.ts b/TypeScript/13AddTrader/types/helpers/TradeHelper.d.ts new file mode 100644 index 0000000..475390b --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/TraderAssortHelper.d.ts b/TypeScript/13AddTrader/types/helpers/TraderAssortHelper.d.ts new file mode 100644 index 0000000..d95879c --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/TraderHelper.d.ts b/TypeScript/13AddTrader/types/helpers/TraderHelper.d.ts new file mode 100644 index 0000000..ec64d59 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/helpers/UtilityHelper.d.ts b/TypeScript/13AddTrader/types/helpers/UtilityHelper.d.ts new file mode 100644 index 0000000..5d9f482 --- /dev/null +++ b/TypeScript/13AddTrader/types/helpers/UtilityHelper.d.ts @@ -0,0 +1,3 @@ +export declare class UtilityHelper { + arrayIntersect(a: T[], b: T[]): T[]; +} diff --git a/TypeScript/13AddTrader/types/helpers/WeightedRandomHelper.d.ts b/TypeScript/13AddTrader/types/helpers/WeightedRandomHelper.d.ts new file mode 100644 index 0000000..9aa0d29 --- /dev/null +++ b/TypeScript/13AddTrader/types/helpers/WeightedRandomHelper.d.ts @@ -0,0 +1,28 @@ +export declare class WeightedRandomHelper { + /** + * Gets a tplId from a weighted dictionary + * @param {tplId: weighting[]} itemArray + * @returns tplId + */ + getWeightedInventoryItem(itemArray: { + [tplId: string]: unknown; + } | ArrayLike): string; + /** + * Picks the random item based on its weight. + * The items with higher weight will be picked more often (with a higher probability). + * + * For example: + * - items = ['banana', 'orange', 'apple'] + * - weights = [0, 0.2, 0.8] + * - weightedRandom(items, weights) in 80% of cases will return 'apple', in 20% of cases will return + * 'orange' and it will never return 'banana' (because probability of picking the banana is 0%) + * + * @param {any[]} items + * @param {number[]} weights + * @returns {{item: any, index: number}} + */ + weightedRandom(items: string | any[], weights: string | any[]): { + item: any; + index: number; + }; +} diff --git a/TypeScript/13AddTrader/types/ide/BleedingEdgeEntry.d.ts b/TypeScript/13AddTrader/types/ide/BleedingEdgeEntry.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/TypeScript/13AddTrader/types/ide/BleedingEdgeEntry.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/TypeScript/13AddTrader/types/ide/Compiler.d.ts b/TypeScript/13AddTrader/types/ide/Compiler.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/TypeScript/13AddTrader/types/ide/Compiler.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/TypeScript/13AddTrader/types/ide/DebugEntry.d.ts b/TypeScript/13AddTrader/types/ide/DebugEntry.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/TypeScript/13AddTrader/types/ide/DebugEntry.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/TypeScript/13AddTrader/types/ide/ReleaseEntry.d.ts b/TypeScript/13AddTrader/types/ide/ReleaseEntry.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/TypeScript/13AddTrader/types/ide/ReleaseEntry.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/TypeScript/13AddTrader/types/ide/TestEntry.d.ts b/TypeScript/13AddTrader/types/ide/TestEntry.d.ts new file mode 100644 index 0000000..fded23a --- /dev/null +++ b/TypeScript/13AddTrader/types/ide/TestEntry.d.ts @@ -0,0 +1 @@ +import "reflect-metadata"; diff --git a/TypeScript/13AddTrader/types/loaders/BundleLoader.d.ts b/TypeScript/13AddTrader/types/loaders/BundleLoader.d.ts new file mode 100644 index 0000000..4f7664c --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/loaders/DelayedModLoader.d.ts b/TypeScript/13AddTrader/types/loaders/DelayedModLoader.d.ts new file mode 100644 index 0000000..7d0009f --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/loaders/InitialModLoader.d.ts b/TypeScript/13AddTrader/types/loaders/InitialModLoader.d.ts new file mode 100644 index 0000000..5957d35 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/models/eft/bot/IGenerateBotsRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/bot/IGenerateBotsRequestData.d.ts new file mode 100644 index 0000000..c49cef7 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/bot/IGenerateBotsRequestData.d.ts @@ -0,0 +1,8 @@ +export interface IGenerateBotsRequestData { + conditions: Condition[]; +} +export interface Condition { + Role: string; + Limit: number; + Difficulty: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/IEmptyRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/common/IEmptyRequestData.d.ts new file mode 100644 index 0000000..284d16e --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/IEmptyRequestData.d.ts @@ -0,0 +1,2 @@ +export interface IEmptyRequestData { +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/IGlobals.d.ts b/TypeScript/13AddTrader/types/models/eft/common/IGlobals.d.ts new file mode 100644 index 0000000..456895c --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/IGlobals.d.ts @@ -0,0 +1,1176 @@ +import { Item } from "./tables/IItem"; +export interface IGlobals { + time: number; + config: Config; + bot_presets: BotPreset[]; + BotWeaponScatterings: BotWeaponScattering[]; + ItemPresets: Record; +} +export interface Config { + content: Content; + AimPunchMagnitude: number; + WeaponSkillProgressRate: number; + SkillAtrophy: boolean; + exp: Exp; + t_base_looting: number; + t_base_lockpicking: number; + armor: Armor; + SessionsToShowHotKeys: number; + MaxBotsAliveOnMap: number; + SavagePlayCooldown: number; + SavagePlayCooldownNdaFree: number; + MarksmanAccuracy: number; + SavagePlayCooldownDevelop: number; + TODSkyDate: string; + Mastering: Mastering[]; + GlobalItemPriceModifier: number; + TradingUnlimitedItems: boolean; + MaxLoyaltyLevelForAll: boolean; + GlobalLootChanceModifier: number; + TimeBeforeDeploy: number; + TimeBeforeDeployLocal: number; + LoadTimeSpeedProgress: number; + BaseLoadTime: number; + BaseUnloadTime: number; + BaseCheckTime: number; + Customization: Customization; + UncheckOnShot: boolean; + BotsEnabled: boolean; + ArmorMaterials: ArmorMaterials; + LegsOverdamage: number; + HandsOverdamage: number; + StomachOverdamage: number; + Health: Health; + rating: Rating; + tournament: Tournament; + RagFair: RagFair; + handbook: Handbook; + FractureCausedByFalling: Probability; + FractureCausedByBulletHit: Probability; + WAVE_COEF_LOW: number; + WAVE_COEF_MID: number; + WAVE_COEF_HIGH: number; + WAVE_COEF_HORDE: number; + Stamina: Stamina; + StaminaRestoration: StaminaRestoration; + StaminaDrain: StaminaDrain; + RequirementReferences: RequirementReferences; + RepairKitSettings: RepairKitSettings; + RestrictionsInRaid: RestrictionsInRaid[]; + SkillMinEffectiveness: number; + SkillFatiguePerPoint: number; + SkillFreshEffectiveness: number; + SkillFreshPoints: number; + SkillPointsBeforeFatigue: number; + SkillFatigueReset: number; + DiscardLimitsEnabled: boolean; + EventType: string[]; + WalkSpeed: xyz; + SprintSpeed: xyz; + SkillEnduranceWeightThreshold: number; + TeamSearchingTimeout: number; + Insurance: Insurance; + SkillExpPerLevel: number; + GameSearchingTimeout: number; + WallContusionAbsorption: xyz; + SkillsSettings: SkillsSettings; + AzimuthPanelShowsPlayerOrientation: boolean; + Aiming: Aiming; + Malfunction: Malfunction; + Overheat: Overheat; + FenceSettings: FenceSettings; + TestValue: number; + Inertia: Inertia; + Ballistic: Ballistic; +} +export interface Content { + ip: string; + port: number; + root: string; +} +export interface Exp { + heal: Heal; + match_end: MatchEnd; + kill: Kill; + level: Level; + loot_attempts: LootAttempt[]; + expForLockedDoorOpen: number; + expForLockedDoorBreach: number; + triggerMult: number; +} +export interface Heal { + expForHeal: number; + expForHydration: number; + expForEnergy: number; +} +export interface MatchEnd { + README: string; + survived_exp_requirement: number; + survived_seconds_requirement: number; + survived_exp_reward: number; + mia_exp_reward: number; + runner_exp_reward: number; + leftMult: number; + miaMult: number; + survivedMult: number; + runnerMult: number; + killedMult: number; +} +export interface Kill { + combo: Combo[]; + victimLevelExp: number; + headShotMult: number; + expOnDamageAllHealth: number; + longShotDistance: number; + bloodLossToLitre: number; + victimBotLevelExp: number; +} +export interface Combo { + percent: number; +} +export interface Level { + exp_table: ExpTable[]; + trade_level: number; + savage_level: number; + clan_level: number; + mastering1: number; + mastering2: number; +} +export interface ExpTable { + exp: number; +} +export interface LootAttempt { + k_exp: number; +} +export interface Armor { + class: Class[]; +} +export interface Class { + resistance: number; +} +export interface Mastering { + Name: string; + Templates: string[]; + Level2: number; + Level3: number; +} +export interface Customization { + SavageHead: SavageHead; + SavageBody: SavageBody; + SavageFeet: SavageFeet; + CustomizationVoice: CustomizationVoice[]; + BodyParts: BodyParts; +} +export interface SavageHead { + wild_head_1: WildHead; + wild_head_2: WildHead; + wild_head_3: WildHead; + Wild_Dealmaker_head: WildHead; + Wild_Killa_head: WildHead; + bear_head: WildHead; + bear_head_1: WildHead; + usec_head_1: WildHead; + Head_BOSS_Glukhar: WildHead; + Wild_Head_nonMesh: WildHead; + Head_BOSS_Sanitar: WildHead; + wild_head_drozd: WildHead; + wild_head_misha: WildHead; + head_cultist_01: WildHead; + head_cultist_02: WildHead; + head_cultist_03: WildHead; + DefaultUsecHead: WildHead; + usec_head_3: WildHead; + usec_head_4: WildHead; + usec_head_5: WildHead; +} +export interface WildHead { + head: string; + isNotRandom: boolean; + NotRandom: boolean; +} +export interface SavageBody { + wild_body: WildBody; + wild_body_1: WildBody; + wild_body_2: WildBody; + wild_body_3: WildBody; + Wild_Dealmaker_body: WildBody; + wild_security_body_1: WildBody; + wild_security_body_2: WildBody; + wild_Killa_body: WildBody; + wild_pmcBot_body: WildBody; + wild_Shturman_body: WildBody; + wild_Gluhar_body: WildBody; + Tshirt_security_TshirtTatu_01: WildBody; + Tshirt_security_TshirtTatu_02: WildBody; + Top_security_Husky: WildBody; + Top_security_Gorka4: WildBody; + scav_kit_upper_meteor: WildBody; + wild_body_russia1: WildBody; + Top_BOSS_Sanitar: WildBody; + wild_body_motocross: WildBody; + top_cultist_01: WildBody; + top_cultist_02: WildBody; + wild_body_rainparka: WildBody; + wild_body_underarmour: WildBody; + top_boss_tagilla: WildBody; + DefaultUsecBody: WildBody; + usec_upper_acu: WildBody; + usec_upper_commando: WildBody; + usec_upper_aggressor: WildBody; + usec_upper_hoody: WildBody; + usec_upper_pcuironsight: WildBody; + usec_top_beltstaff: WildBody; + usec_upper_flexion: WildBody; + usec_upper_tier3: WildBody; + usec_upper_pcsmulticam: WildBody; + usec_upper_tier_2: WildBody; + usec_upper_infiltrator: WildBody; + user_upper_NightPatrol: WildBody; + wild_body_bomber: WildBody; + wild_top_yellowcoat: WildBody; +} +export interface WildBody { + body: string; + hands: string; + isNotRandom: boolean; +} +export interface SavageFeet { + wild_feet: WildFeet; + wild_feet_1: WildFeet; + wild_feet_2: WildFeet; + Wild_Dealmaker_feet: WildFeet; + wild_security_feet_1: WildFeet; + Wild_Killa_feet: WildFeet; + wild_pmcBot_feet: WildFeet; + Pants_BOSS_Glukhar: WildFeet; + Pants_BOSS_Shturman: WildFeet; + Pants_security_Gorka4: WildFeet; + Pants_security_Flora: WildFeet; + scav_kit_lower_sklon: WildFeet; + Pants_BOSS_Sanitar: WildFeet; + wild_feet_sweatpants: WildFeet; + wild_feet_wasatch: WildFeet; + wild_feet_slimPants: WildFeet; + pants_cultist_01: WildFeet; + pants_cultist_02: WildFeet; + wild_feet_scavelite_taclite: WildFeet; + pants_boss_tagilla: WildFeet; + wild_feet_bomber: WildFeet; + wild_pants_yellowcoat: WildFeet; +} +export interface WildFeet { + feet: string; + isNotRandom: boolean; + NotRandom: boolean; +} +export interface CustomizationVoice { + voice: string; + side: string[]; + isNotRandom: boolean; +} +export interface BodyParts { + Head: string; + Body: string; + Feet: string; + Hands: string; +} +export interface ArmorMaterials { + UHMWPE: ArmorType; + Aramid: ArmorType; + Combined: ArmorType; + Titan: ArmorType; + Aluminium: ArmorType; + ArmoredSteel: ArmorType; + Ceramic: ArmorType; + Glass: ArmorType; +} +export interface ArmorType { + Destructibility: number; + MinRepairDegradation: number; + MaxRepairDegradation: number; + ExplosionDestructibility: number; + MinRepairKitDegradation: number; + MaxRepairKitDegradation: number; +} +export interface Health { + Falling: Falling; + Effects: Effects; + HealPrice: HealPrice; + ProfileHealthSettings: ProfileHealthSettings; +} +export interface Falling { + DamagePerMeter: number; + SafeHeight: number; +} +export interface Effects { + Existence: Existence; + Dehydration: Dehydration; + BreakPart: BreakPart; + Contusion: Contusion; + Disorientation: Disorientation; + Exhaustion: Exhaustion; + LowEdgeHealth: LowEdgeHealth; + RadExposure: RadExposure; + Stun: Stun; + Intoxication: Intoxication; + Regeneration: Regeneration; + Wound: Wound; + Berserk: Berserk; + Flash: Flash; + MedEffect: MedEffect; + Pain: Pain; + PainKiller: PainKiller; + SandingScreen: SandingScreen; + Stimulator: Stimulator; + Tremor: Tremor; + ChronicStaminaFatigue: ChronicStaminaFatigue; + Fracture: Fracture2; + HeavyBleeding: HeavyBleeding2; + LightBleeding: LightBleeding2; + BodyTemperature: BodyTemperature; +} +export interface Existence { + EnergyLoopTime: number; + HydrationLoopTime: number; + EnergyDamage: number; + HydrationDamage: number; + DestroyedStomachEnergyTimeFactor: number; + DestroyedStomachHydrationTimeFactor: number; +} +export interface Dehydration { + DefaultDelay: number; + DefaultResidueTime: number; + BleedingHealth: number; + BleedingLoopTime: number; + BleedingLifeTime: number; + DamageOnStrongDehydration: number; + StrongDehydrationLoopTime: number; +} +export interface BreakPart { + DefaultDelay: number; + DefaultResidueTime: number; + HealExperience: number; + OfflineDurationMin: number; + OfflineDurationMax: number; + RemovePrice: number; + RemovedAfterDeath: boolean; + BulletHitProbability: Probability; + FallingProbability: Probability; +} +export interface Contusion { + Dummy: number; +} +export interface Disorientation { + Dummy: number; +} +export interface Exhaustion { + DefaultDelay: number; + DefaultResidueTime: number; + Damage: number; + DamageLoopTime: number; +} +export interface LowEdgeHealth { + DefaultDelay: number; + DefaultResidueTime: number; + StartCommonHealth: number; +} +export interface RadExposure { + Damage: number; + DamageLoopTime: number; +} +export interface Stun { + Dummy: number; +} +export interface Intoxication { + DefaultDelay: number; + DefaultResidueTime: number; + DamageHealth: number; + HealthLoopTime: number; + OfflineDurationMin: number; + OfflineDurationMax: number; + RemovedAfterDeath: boolean; + HealExperience: number; + RemovePrice: number; +} +export interface Regeneration { + LoopTime: number; + MinimumHealthPercentage: number; + Energy: number; + Hydration: number; + BodyHealth: BodyHealth; + Influences: Influences; +} +export interface BodyHealth { + Head: BodyHealthValue; + Chest: BodyHealthValue; + Stomach: BodyHealthValue; + LeftArm: BodyHealthValue; + RightArm: BodyHealthValue; + LeftLeg: BodyHealthValue; + RightLeg: BodyHealthValue; +} +export interface BodyHealthValue { + Value: number; +} +export interface Influences { + LightBleeding: Influence; + HeavyBleeding: Influence; + Fracture: Influence; + RadExposure: Influence; + Intoxication: Influence; +} +export interface Influence { + HealthSlowDownPercentage: number; + EnergySlowDownPercentage: number; + HydrationSlowDownPercentage: number; +} +export interface Wound { + WorkingTime: number; + ThresholdMin: number; + ThresholdMax: number; +} +export interface Berserk { + DefaultDelay: number; + WorkingTime: number; + DefaultResidueTime: number; +} +export interface Flash { + Dummy: number; +} +export interface MedEffect { + LoopTime: number; + StartDelay: number; + DrinkStartDelay: number; + FoodStartDelay: number; + DrugsStartDelay: number; + MedKitStartDelay: number; + MedicalStartDelay: number; + StimulatorStartDelay: number; +} +export interface Pain { + TremorDelay: number; + HealExperience: number; +} +export interface PainKiller { + Dummy: number; +} +export interface SandingScreen { + Dummy: number; +} +export interface Stimulator { + BuffLoopTime: number; + Buffs: Buffs; +} +export interface Buffs { + BuffsSJ1TGLabs: Buff[]; + BuffsSJ6TGLabs: Buff[]; + BuffsPropital: Buff[]; + BuffsZagustin: Buff[]; + BuffseTGchange: Buff[]; + BuffsAdrenaline: Buff[]; + BuffsGoldenStarBalm: Buff[]; + Buffs_drink_aquamari: Buff[]; + Buffs_drink_maxenergy: Buff[]; + Buffs_drink_milk: Buff[]; + Buffs_drink_tarcola: Buff[]; + Buffs_drink_hotrod: Buff[]; + Buffs_drink_juice_army: Buff[]; + Buffs_drink_water: Buff[]; + Buffs_food_borodinskiye: Buff[]; + Buffs_food_condensed_milk: Buff[]; + Buffs_food_emelya: Buff[]; + Buffs_food_mayonez: Buff[]; + Buffs_food_mre: Buff[]; + Buffs_food_sugar: Buff[]; + Buffs_drink_vodka: Buff[]; + Buffs_drink_jack: Buff[]; + Buffs_drink_moonshine: Buff[]; + Buffs_drink_purewater: Buff[]; + Buffs_3bTG: Buff[]; + Buffs_AHF1M: Buff[]; + Buffs_L1: Buff[]; + Buffs_MULE: Buff[]; + Buffs_Meldonin: Buff[]; + Buffs_Obdolbos: Buff[]; + Buffs_P22: Buff[]; + Buffs_KultistsToxin: Buff[]; + Buffs_BodyTemperature: Buff[]; + Buffs_Antidote: Buff[]; + Buffs_melee_bleed: Buff[]; + Buffs_melee_blunt: Buff[]; + Buffs_hultafors: Buff[]; + Buffs_drink_vodka_BAD: Buff[]; + Buffs_food_alyonka: Buff[]; + Buffs_food_slippers: Buff[]; + Buffs_knife: Buff[]; +} +export interface Buff { + BuffType: string; + Chance: number; + Delay: number; + Duration: number; + Value: number; + AbsoluteValue: boolean; + SkillName: string; +} +export interface Tremor { + DefaultDelay: number; + DefaultResidueTime: number; +} +export interface ChronicStaminaFatigue { + EnergyRate: number; + WorkingTime: number; + TicksEvery: number; + EnergyRatePerStack: number; +} +export interface Fracture2 { + DefaultDelay: number; + DefaultResidueTime: number; + HealExperience: number; + OfflineDurationMin: number; + OfflineDurationMax: number; + RemovePrice: number; + RemovedAfterDeath: boolean; + BulletHitProbability: Probability; + FallingProbability: Probability; +} +export interface HeavyBleeding2 { + DefaultDelay: number; + DefaultResidueTime: number; + DamageEnergy: number; + DamageHealth: number; + EnergyLoopTime: number; + HealthLoopTime: number; + DamageHealthDehydrated: number; + HealthLoopTimeDehydrated: number; + LifeTimeDehydrated: number; + EliteVitalityDuration: number; + HealExperience: number; + OfflineDurationMin: number; + OfflineDurationMax: number; + RemovePrice: number; + RemovedAfterDeath: boolean; + Probability: Probability; +} +export interface Probability { + FunctionType: string; + K: number; + B: number; + Threshold: number; +} +export interface LightBleeding2 { + DefaultDelay: number; + DefaultResidueTime: number; + DamageEnergy: number; + DamageHealth: number; + EnergyLoopTime: number; + HealthLoopTime: number; + DamageHealthDehydrated: number; + HealthLoopTimeDehydrated: number; + LifeTimeDehydrated: number; + EliteVitalityDuration: number; + HealExperience: number; + OfflineDurationMin: number; + OfflineDurationMax: number; + RemovePrice: number; + RemovedAfterDeath: boolean; + Probability: Probability; +} +export interface BodyTemperature { + DefaultBuildUpTime: number; + DefaultResidueTime: number; + LoopTime: number; +} +export interface HealPrice { + HealthPointPrice: number; + HydrationPointPrice: number; + EnergyPointPrice: number; + TrialLevels: number; + TrialRaids: number; +} +export interface ProfileHealthSettings { + BodyPartsSettings: BodyPartsSettings; + HealthFactorsSettings: HealthFactorsSettings; +} +export interface BodyPartsSettings { + Head: BodyPartsSetting; + Chest: BodyPartsSetting; + Stomach: BodyPartsSetting; + LeftArm: BodyPartsSetting; + RightArm: BodyPartsSetting; + LeftLeg: BodyPartsSetting; + RightLeg: BodyPartsSetting; +} +export interface BodyPartsSetting { + Minimum: number; + Maximum: number; + Default: number; + OverDamageReceivedMultiplier: number; +} +export interface HealthFactorsSettings { + Energy: HealthFactorSetting; + Hydration: HealthFactorSetting; + Temperature: HealthFactorSetting; + Poisoning: HealthFactorSetting; + Radiation: HealthFactorSetting; +} +export interface HealthFactorSetting { + Minimum: number; + Maximum: number; + Default: number; +} +export interface Rating { + levelRequired: number; + limit: number; + categories: Categories; +} +export interface Categories { + experience: boolean; + kd: boolean; + surviveRatio: boolean; + avgEarnings: boolean; + kills: boolean; + raidCount: boolean; + longestShot: boolean; + timeOnline: boolean; + inventoryFullCost: boolean; + ragFairStanding: boolean; +} +export interface Tournament { + categories: Categories2; + limit: number; + levelRequired: number; +} +export interface Categories2 { + dogtags: boolean; +} +export interface RagFair { + enabled: boolean; + priceStabilizerEnabled: boolean; + includePveTraderSales: boolean; + priceStabilizerStartIntervalInHours: number; + minUserLevel: number; + communityTax: number; + communityItemTax: number; + communityRequirementTax: number; + offerPriorityCost: number; + offerDurationTimeInHour: number; + offerDurationTimeInHourAfterRemove: number; + priorityTimeModifier: number; + maxRenewOfferTimeInHour: number; + renewPricePerHour: number; + maxActiveOfferCount: MaxActiveOfferCount[]; + balancerRemovePriceCoefficient: number; + balancerMinPriceCount: number; + balancerAveragePriceCoefficient: number; + delaySinceOfferAdd: number; + uniqueBuyerTimeoutInDays: number; + ratingSumForIncrease: number; + ratingIncreaseCount: number; + ratingSumForDecrease: number; + ratingDecreaseCount: number; + maxSumForIncreaseRatingPerOneSale: number; + maxSumForDecreaseRatingPerOneSale: number; + maxSumForRarity: MaxSumForRarity; + ChangePriceCoef: number; + balancerUserItemSaleCooldownEnabled: boolean; + balancerUserItemSaleCooldown: number; + youSellOfferMaxStorageTimeInHour: number; + yourOfferDidNotSellMaxStorageTimeInHour: number; + isOnlyFoundInRaidAllowed: boolean; + sellInOnePiece: number; +} +export interface MaxActiveOfferCount { + from: number; + to: number; + count: number; +} +export interface MaxSumForRarity { + Common: RarityMaxSum; + Rare: RarityMaxSum; + Superrare: RarityMaxSum; + Not_exist: RarityMaxSum; +} +export interface RarityMaxSum { + value: number; +} +export interface Handbook { + defaultCategory: string; +} +export interface Stamina { + Capacity: number; + SprintDrainRate: number; + BaseRestorationRate: number; + JumpConsumption: number; + GrenadeHighThrow: number; + GrenadeLowThrow: number; + AimDrainRate: number; + AimRangeFinderDrainRate: number; + OxygenCapacity: number; + OxygenRestoration: number; + WalkOverweightLimits: xyz; + BaseOverweightLimits: xyz; + SprintOverweightLimits: xyz; + WalkSpeedOverweightLimits: xyz; + CrouchConsumption: xyz; + WalkConsumption: xyz; + StandupConsumption: xyz; + TransitionSpeed: xyz; + SprintAccelerationLowerLimit: number; + SprintSpeedLowerLimit: number; + SprintSensitivityLowerLimit: number; + AimConsumptionByPose: xyz; + RestorationMultiplierByPose: xyz; + OverweightConsumptionByPose: xyz; + AimingSpeedMultiplier: number; + WalkVisualEffectMultiplier: number; + HandsCapacity: number; + HandsRestoration: number; + ProneConsumption: number; + BaseHoldBreathConsumption: number; + SoundRadius: xyz; + ExhaustedMeleeSpeed: number; + FatigueRestorationRate: number; + FatigueAmountToCreateEffect: number; + ExhaustedMeleeDamageMultiplier: number; + FallDamageMultiplier: number; + SafeHeightOverweight: number; + SitToStandConsumption: number; + StaminaExhaustionCausesJiggle: boolean; + StaminaExhaustionStartsBreathSound: boolean; + StaminaExhaustionRocksCamera: boolean; + HoldBreathStaminaMultiplier: xyz; + PoseLevelIncreaseSpeed: xyz; + PoseLevelDecreaseSpeed: xyz; + PoseLevelConsumptionPerNotch: xyz; +} +export interface StaminaRestoration { + LowerLeftPoint: number; + LowerRightPoint: number; + LeftPlatoPoint: number; + RightPlatoPoint: number; + RightLimit: number; + ZeroValue: number; +} +export interface StaminaDrain { + LowerLeftPoint: number; + LowerRightPoint: number; + LeftPlatoPoint: number; + RightPlatoPoint: number; + RightLimit: number; + ZeroValue: number; +} +export interface RequirementReferences { + Alpinist: Alpinist[]; +} +export interface Alpinist { + Requirement: string; + Id: string; + Count: number; + RequiredSlot: string; + RequirementTip: string; +} +export interface RestrictionsInRaid { + TemplateId: string; + Value: number; +} +export interface Insurance { + MaxStorageTimeInHour: number; +} +export interface SkillsSettings { + SkillProgressRate: number; + WeaponSkillProgressRate: number; + WeaponSkillRecoilBonusPerLevel: number; + HideoutManagement: HideoutManagement; + Crafting: Crafting; + Metabolism: Metabolism; + Immunity: Immunity; + Endurance: Endurance; + Strength: Strength; + Vitality: Vitality; + Health: Health2; + StressResistance: StressResistance; + Throwing: Throwing; + RecoilControl: RecoilControl; + Pistol: WeaponSkills; + Revolver: WeaponSkills; + SMG: any[]; + Assault: WeaponSkills; + Shotgun: WeaponSkills; + Sniper: WeaponSkills; + LMG: any[]; + HMG: any[]; + Launcher: any[]; + AttachedLauncher: any[]; + Melee: any[]; + DMR: WeaponSkills; + BearAssaultoperations: any[]; + BearAuthority: any[]; + BearAksystems: any[]; + BearHeavycaliber: any[]; + BearRawpower: any[]; + UsecArsystems: any[]; + UsecDeepweaponmodding_Settings: any[]; + UsecLongrangeoptics_Settings: any[]; + UsecNegotiations: any[]; + UsecTactics: any[]; + BotReload: any[]; + CovertMovement: CovertMovement; + FieldMedicine: any[]; + Search: Search; + Sniping: any[]; + ProneMovement: any[]; + FirstAid: any[]; + LightVests: ArmorSkills; + HeavyVests: ArmorSkills; + WeaponModding: any[]; + AdvancedModding: any[]; + NightOps: any[]; + SilentOps: any[]; + Lockpicking: any[]; + WeaponTreatment: WeaponTreatment; + MagDrills: MagDrills; + Freetrading: any[]; + Auctions: any[]; + Cleanoperations: any[]; + Barter: any[]; + Shadowconnections: any[]; + Taskperformance: any[]; + Perception: Perception; + Intellect: Intellect; + Attention: Attention; + Charisma: Charisma; + Memory: Memory; + Surgery: Surgery; + AimDrills: AimDrills; + BotSound: any[]; + TroubleShooting: TroubleShooting; +} +export interface ArmorSkills { + WearAmountRepairLVestsReducePerLevel: number; + WearChanceRepairLVestsReduceEliteLevel: number; +} +export interface HideoutManagement { + SkillPointsPerAreaUpgrade: number; + SkillPointsPerCraft: number; + ConsumptionReductionPerLevel: number; + SkillBoostPercent: number; + SkillPointsRate: SkillPointsRate; + EliteSlots: EliteSlots; +} +export interface SkillPointsRate { + Generator: Generator; + AirFilteringUnit: SkillPointRate; + WaterCollector: SkillPointRate; + SolarPower: SkillPointRate; +} +export interface SkillPointRate { + ResourceSpent: number; + PointsGained: number; +} +export interface EliteSlots { + Generator: EliteSlot; + AirFilteringUnit: EliteSlot; + WaterCollector: EliteSlot; + BitcoinFarm: EliteSlot; +} +export interface EliteSlot { + Slots: number; + Container: number; +} +export interface Crafting { + PointsPerCraftingCycle: number; + CraftingCycleHours: number; + PointsPerUniqueCraftCycle: number; + UniqueCraftsPerCycle: number; + CraftTimeReductionPerLevel: number; + ProductionTimeReductionPerLevel: number; + EliteExtraProductions: number; + CraftingPointsToInteligence: number; +} +export interface Metabolism { + HydrationRecoveryRate: number; + EnergyRecoveryRate: number; + IncreasePositiveEffectDurationRate: number; + DecreaseNegativeEffectDurationRate: number; + DecreasePoisonDurationRate: number; +} +export interface Immunity { + ImmunityMiscEffects: number; + ImmunityPoisonBuff: number; + ImmunityPainKiller: number; + HealthNegativeEffect: number; + StimulatorNegativeBuff: number; +} +export interface Endurance { + MovementAction: number; + SprintAction: number; + GainPerFatigueStack: number; +} +export interface Strength { + SprintActionMin: number; + SprintActionMax: number; + MovementActionMin: number; + MovementActionMax: number; + PushUpMin: number; + PushUpMax: number; + FistfightAction: number; + ThrowAction: number; +} +export interface Vitality { + DamageTakenAction: number; + HealthNegativeEffect: number; +} +export interface Health2 { + SkillProgress: number; +} +export interface StressResistance { + HealthNegativeEffect: number; + LowHPDuration: number; +} +export interface Throwing { + ThrowAction: number; +} +export interface RecoilControl { + RecoilAction: number; + RecoilBonusPerLevel: number; +} +export interface WeaponSkills { + WeaponReloadAction: number; + WeaponShotAction: number; + WeaponFixAction: number; + WeaponChamberAction: number; +} +export interface CovertMovement { + MovementAction: number; +} +export interface Search { + SearchAction: number; + FindAction: number; +} +export interface WeaponTreatment { + DurLossReducePerLevel: number; + SkillPointsPerRepair: number; + Filter: any[]; + WearAmountRepairGunsReducePerLevel: number; + WearChanceRepairGunsReduceEliteLevel: number; +} +export interface MagDrills { + RaidLoadedAmmoAction: number; + RaidUnloadedAmmoAction: number; + MagazineCheckAction: number; +} +export interface Perception { + OnlineAction: number; + UniqueLoot: number; +} +export interface Intellect { + ExamineAction: number; + SkillProgress: number; + RepairAction: number; + WearAmountReducePerLevel: number; + WearChanceReduceEliteLevel: number; + RepairPointsCostReduction: number; +} +export interface Attention { + ExamineWithInstruction: number; + FindActionFalse: number; + FindActionTrue: number; +} +export interface Charisma { + SkillProgressInt: number; + SkillProgressAtn: number; + SkillProgressPer: number; +} +export interface Memory { + AnySkillUp: number; + SkillProgress: number; +} +export interface Surgery { + SurgeryAction: number; + SkillProgress: number; +} +export interface AimDrills { + WeaponShotAction: number; +} +export interface TroubleShooting { + MalfRepairSpeedBonusPerLevel: number; + SkillPointsPerMalfFix: number; + EliteDurabilityChanceReduceMult: number; + EliteAmmoChanceReduceMult: number; + EliteMagChanceReduceMult: number; +} +export interface Aiming { + ProceduralIntensityByPose: xyz; + AimProceduralIntensity: number; + HeavyWeight: number; + LightWeight: number; + MaxTimeHeavy: number; + MinTimeHeavy: number; + MaxTimeLight: number; + MinTimeLight: number; + RecoilScaling: number; + RecoilDamping: number; + CameraSnapGlobalMult: number; + RecoilXIntensityByPose: xyz; + RecoilYIntensityByPose: xyz; + RecoilZIntensityByPose: xyz; + RecoilCrank: boolean; + RecoilHandDamping: number; + RecoilConvergenceMult: number; + RecoilVertBonus: number; + RecoilBackBonus: number; +} +export interface Malfunction { + AmmoMalfChanceMult: number; + MagazineMalfChanceMult: number; + MalfRepairHardSlideMult: number; + MalfRepairOneHandBrokenMult: number; + MalfRepairTwoHandsBrokenMult: number; + AllowMalfForBots: boolean; + ShowGlowAttemptsCount: number; + OutToIdleSpeedMultForPistol: number; + IdleToOutSpeedMultOnMalf: number; + TimeToQuickdrawPistol: number; + DurRangeToIgnoreMalfs: xyz; + DurFeedWt: number; + DurMisfireWt: number; + DurJamWt: number; + DurSoftSlideWt: number; + DurHardSlideMinWt: number; + DurHardSlideMaxWt: number; + AmmoMisfireWt: number; + AmmoFeedWt: number; + AmmoJamWt: number; + OverheatFeedWt: number; + OverheatJamWt: number; + OverheatSoftSlideWt: number; + OverheatHardSlideMinWt: number; + OverheatHardSlideMaxWt: number; +} +export interface Overheat { + MinOverheat: number; + MaxOverheat: number; + OverheatProblemsStart: number; + ModHeatFactor: number; + ModCoolFactor: number; + MinWearOnOverheat: number; + MaxWearOnOverheat: number; + MinWearOnMaxOverheat: number; + MaxWearOnMaxOverheat: number; + OverheatWearLimit: number; + MaxCOIIncreaseMult: number; + MinMalfChance: number; + MaxMalfChance: number; + DurReduceMinMult: number; + DurReduceMaxMult: number; + BarrelMoveRndDuration: number; + BarrelMoveMaxMult: number; + FireratePitchMult: number; + FirerateReduceMinMult: number; + FirerateReduceMaxMult: number; + FirerateOverheatBorder: number; + EnableSlideOnMaxOverheat: boolean; + StartSlideOverheat: number; + FixSlideOverheat: number; + AutoshotMinOverheat: number; + AutoshotChance: number; + AutoshotPossibilityDuration: number; + MaxOverheatCoolCoef: number; +} +export interface FenceSettings { + FenceId: string; + Levels: Record; + paidExitStandingNumerator: number; +} +export interface FenceLevel { + SavageCooldownModifier: number; + ScavCaseTimeModifier: number; + PaidExitCostModifier: number; + BotFollowChance: number; + ScavEquipmentSpawnChanceModifier: number; + PriceModifier: number; + HostileBosses: boolean; + HostileScavs: boolean; + ScavAttackSupport: boolean; + ExfiltrationPriceModifier: number; + AvailableExits: number; +} +export interface Inertia { + InertiaLimits: xyz; + InertiaLimitsStep: number; + ExitMovementStateSpeedThreshold: xyz; + WalkInertia: xyz; + FallThreshold: number; + SpeedLimitAfterFallMin: xyz; + SpeedLimitAfterFallMax: xyz; + SpeedLimitDurationMin: xyz; + SpeedLimitDurationMax: xyz; + SpeedInertiaAfterJump: xyz; + BaseJumpPenaltyDuration: number; + DurationPower: number; + BaseJumpPenalty: number; + PenaltyPower: number; + InertiaTiltCurveMin: xyz; + InertiaTiltCurveMax: xyz; + InertiaBackwardCoef: xyz; + TiltInertiaMaxSpeed: xyz; + TiltStartSideBackSpeed: xyz; + TiltMaxSideBackSpeed: xyz; + TiltAcceleration: xyz; + AverageRotationFrameSpan: number; + SprintSpeedInertiaCurveMin: xyz; + SprintSpeedInertiaCurveMax: xyz; + SprintBrakeInertia: xyz; + SprintTransitionMotionPreservation: xyz; + WeaponFlipSpeed: xyz; + PreSprintAccelerationLimits: xyz; + SprintAccelerationLimits: xyz; + SideTime: xyz; + DiagonalTime: xyz; + MinDirectionBlendTime: number; + MoveTime: number; + MinMovementAccelerationRangeRight: xyz; + MaxMovementAccelerationRangeRight: xyz; +} +export interface xyz { + x: number; + y: number; + z: number; +} +export interface Ballistic { + GlobalDamageDegradationCoefficient: number; +} +export interface RepairKitSettings { + armorClassDivisor: number; + durabilityPointCostArmor: number; + durabilityPointCostGuns: number; +} +export interface BotPreset { + UseThis: boolean; + Role: string; + BotDifficulty: string; + VisibleAngle: number; + VisibleDistance: number; + ScatteringPerMeter: number; + HearingSense: number; + SCATTERING_DIST_MODIF: number; + MAX_AIMING_UPGRADE_BY_TIME: number; + FIRST_CONTACT_ADD_SEC: number; + COEF_IF_MOVE: number; +} +export interface BotWeaponScattering { + Name: string; + PriorityScatter1meter: number; + PriorityScatter10meter: number; + PriorityScatter100meter: number; +} +export interface Preset { + _id: string; + _type: string; + _changeWeaponName: boolean; + _name: string; + _parent: string; + _items: Item[]; + _encyclopedia?: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/ILocation.d.ts b/TypeScript/13AddTrader/types/models/eft/common/ILocation.d.ts new file mode 100644 index 0000000..42fac06 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/ILocation.d.ts @@ -0,0 +1,6 @@ +import { ILocationBase } from "./ILocationBase"; +import { ILooseLoot } from "./ILooseLoot"; +export interface ILocation { + base: ILocationBase; + looseLoot: ILooseLoot; +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/ILocationBase.d.ts b/TypeScript/13AddTrader/types/models/eft/common/ILocationBase.d.ts new file mode 100644 index 0000000..ad48d32 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/ILocationBase.d.ts @@ -0,0 +1,198 @@ +export interface ILocationBase { + AccessKeys: string[]; + AirdropParameters: AirdropParameter[]; + Area: number; + AveragePlayTime: number; + AveragePlayerLevel: number; + Banners: Banner[]; + BossLocationSpawn: BossLocationSpawn[]; + BotAssault: number; + BotEasy: number; + BotHard: number; + BotImpossible: number; + BotLocationModifier: BotLocationModifier; + BotMarksman: number; + BotMax: number; + BotMaxPlayer: number; + BotMaxTimePlayer: number; + BotNormal: number; + BotSpawnTimeOffMax: number; + BotSpawnTimeOffMin: number; + BotSpawnTimeOnMax: number; + BotSpawnTimeOnMin: number; + BotStart: number; + BotStop: number; + Description: string; + DisabledForScav: boolean; + DisabledScavExits: string; + Enabled: boolean; + GlobalLootChanceModifier: number; + IconX: number; + IconY: number; + Id: string; + Insurance: boolean; + IsSecret: boolean; + Locked: boolean; + Loot: any[]; + MaxBotPerZone: number; + MaxDistToFreePoint: number; + MaxPlayers: number; + MinDistToExitPoint: number; + MinDistToFreePoint: number; + MinMaxBots: MinMaxBot[]; + MinPlayers: number; + Name: string; + NewSpawn: boolean; + OcculsionCullingEnabled: boolean; + OldSpawn: boolean; + OpenZones: string; + Preview: Preview; + RequiredPlayerLevel: number; + Rules: string; + SafeLocation: boolean; + Scene: Scene; + SpawnPointParams: SpawnPointParam[]; + UnixDateTime: number; + _Id: string; + doors: any[]; + escape_time_limit: number; + exit_access_time: number; + exit_count: number; + exit_time: number; + exits: Exit[]; + filter_ex: string[]; + limits: ILimit[]; + matching_min_seconds: number; + maxItemCountInLocation: MaxItemCountInLocation[]; + sav_summon_seconds: number; + tmp_location_field_remove_me: number; + users_gather_seconds: number; + users_spawn_seconds_n: number; + users_spawn_seconds_n2: number; + users_summon_seconds: number; + waves: Wave[]; +} +export interface ILimit { + min: number; + max: number; + items: any[]; +} +export interface AirdropParameter { + AirdropPointDeactivateDistance: number; + MinPlayersCountToSpawnAirdrop: number; + PlaneAirdropChance: number; + PlaneAirdropCooldownMax: number; + PlaneAirdropCooldownMin: number; + PlaneAirdropEnd: number; + PlaneAirdropMax: number; + PlaneAirdropStartMax: number; + PlaneAirdropStartMin: number; + UnsuccessfulTryPenalty: number; +} +export interface Banner { + id: string; + pic: Pic; +} +export interface Pic { + path: string; + rcid: string; +} +export interface BossLocationSpawn { + BossChance: number; + BossDifficult: string; + BossEscortAmount: string; + BossEscortDifficult: string; + BossEscortType: string; + BossName: string; + BossPlayer: boolean; + BossZone: string; + Time: number; + TriggerId: string; + TriggerName: string; + Delay?: number; + Supports?: BossSupport[]; +} +export interface BossSupport { + BossEscortAmount: string; + BossEscortDifficult: string[]; + BossEscortType: string; +} +export interface BotLocationModifier { + AccuracySpeed: number; + DistToActivate: number; + DistToPersueAxemanCoef: number; + DistToSleep: number; + GainSight: number; + KhorovodChance: number; + MagnetPower: number; + MarksmanAccuratyCoef: number; + Scattering: number; + VisibleDistance: number; +} +export interface MinMaxBot { + WildSpawnType: string; + max: number; + min: number; +} +export interface Preview { + path: string; + rcid: string; +} +export interface Scene { + path: string; + rcid: string; +} +export interface SpawnPointParam { + BotZoneName: string; + Categories: string[]; + ColliderParams: ColliderParams; + DelayToCanSpawnSec: number; + Id: string; + Infiltration: string; + Position: xyz; + Rotation: number; + Sides: string[]; +} +export interface ColliderParams { + _parent: string; + _props: Props; +} +export interface Props { + Center: xyz; + Radius: number; +} +export interface xyz { + x: number; + y: number; + z: number; +} +export interface Exit { + Chance: number; + Count: number; + EntryPoints: string; + ExfiltrationTime: number; + ExfiltrationType: string; + Id: string; + MaxTime: number; + MinTime: number; + Name: string; + PassageRequirement: string; + PlayersCount: number; + RequirementTip: string; +} +export interface MaxItemCountInLocation { + TemplateId: string; + Value: number; +} +export interface Wave { + BotPreset: string; + BotSide: string; + SpawnPoints: string; + WildSpawnType: string; + isPlayers: boolean; + number: number; + slots_max: number; + slots_min: number; + time_max: number; + time_min: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/ILocationsSourceDestinationBase.d.ts b/TypeScript/13AddTrader/types/models/eft/common/ILocationsSourceDestinationBase.d.ts new file mode 100644 index 0000000..7f8d915 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/ILocationsSourceDestinationBase.d.ts @@ -0,0 +1,9 @@ +import { ILocations } from "../../spt/server/ILocations"; +export interface ILocationsGenerateAllResponse { + locations: ILocations; + paths: Path[]; +} +export interface Path { + Source: string; + Destination: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/ILooseLoot.d.ts b/TypeScript/13AddTrader/types/models/eft/common/ILooseLoot.d.ts new file mode 100644 index 0000000..14b795e --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/ILooseLoot.d.ts @@ -0,0 +1,45 @@ +export interface ILooseLoot { + spawnpointCount: SpawnpointCount; + spawnpointsForced: SpawnpointsForced[]; + spawnpoints: Spawnpoint[]; +} +export interface SpawnpointCount { + mean: number; + std: number; +} +export interface SpawnpointsForced { + locationId: string; + probability: number; + template: SpawnpointTemplate; +} +export interface SpawnpointTemplate { + Id: string; + IsStatic: boolean; + useGravity: boolean; + randomRotation: boolean; + Position: Xyz; + Rotation: Xyz; + IsGroupPosition: boolean; + GroupPositions: any[]; + Root: any; + Items: Item[]; +} +export interface Item { + _id: string; + _tpl?: string; +} +export interface Spawnpoint { + locationId: string; + probability: number; + template: SpawnpointTemplate; + itemDistribution: ItemDistribution[]; +} +export interface Xyz { + x: number; + y: number; + z: number; +} +export interface ItemDistribution { + tpl: string; + relativeProbability: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/IMetricsTableData.d.ts b/TypeScript/13AddTrader/types/models/eft/common/IMetricsTableData.d.ts new file mode 100644 index 0000000..873ef82 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/IMetricsTableData.d.ts @@ -0,0 +1,7 @@ +export interface IMetricsTableData { + Keys: number[]; + NetProcessingBins: number[]; + RenderBins: number[]; + GameUpdateBins: number[]; + MemoryMeasureInterval: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/IPmcData.d.ts b/TypeScript/13AddTrader/types/models/eft/common/IPmcData.d.ts new file mode 100644 index 0000000..adc2aa5 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/IPmcData.d.ts @@ -0,0 +1,341 @@ +import { IRagfairOffer } from "../ragfair/IRagfairOffer"; +import { IPmcDataRepeatableQuest } from "./tables/IRepeatableQuests"; +import { Item, Upd } from "./tables/IItem"; +import { HideoutAreas } from "../../enums/HideoutAreas"; +import { MemberCategory } from "../../enums/MemberCategory"; +export interface IPmcData { + _id: string; + aid: string; + savage: string; + Info: Info; + Customization: Customization; + Health: Health; + Inventory: Inventory; + Skills: Skills; + Stats: Stats; + Encyclopedia: Record; + ConditionCounters: ConditionCounters; + BackendCounters: Record; + InsuredItems: InsuredItem[]; + Hideout: Hideout; + Bonuses: Bonus[]; + Notes: Notes; + Quests: Quest[]; + TradersInfo: Record; + RagfairInfo: RagfairInfo; + WishList: string[]; + RepeatableQuests: IPmcDataRepeatableQuest[]; + CarExtractCounts: CarExtractCounts; + SurvivorClass: SurvivorClass; +} +export declare enum SurvivorClass { + Unknown = 0, + Neutralizer = 1, + Marauder = 2, + Paramedic = 3, + Survivor = 4 +} +export interface Info { + EntryPoint: string; + Nickname: string; + LowerNickname: string; + Side: string; + Voice: string; + Level: number; + Experience: number; + RegistrationDate: number; + GameVersion: string; + AccountType: number; + MemberCategory: MemberCategory; + lockedMoveCommands: boolean; + SavageLockTime: number; + LastTimePlayedAsSavage: number; + Settings: Settings; + NicknameChangeDate: number; + IsStreamerModeAvailable: boolean; + Bans: IBan[]; + BannedState: boolean; + BannedUntil: number; +} +export interface Settings { + Role: string; + BotDifficulty: string; + Experience: number; + StandingForKill: number; + AggressorBonus: number; +} +export interface IBan { + type: BanType; + dateTime: number; +} +export declare enum BanType { + Chat = 0, + RagFair = 1, + Voip = 2, + Trading = 3, + Online = 4, + Friends = 5, + ChangeNickname = 6 +} +export interface Notes { + Notes: Note[]; +} +export interface Note { + Time: number; + Text: string; +} +export interface Customization { + Head: string; + Body: string; + Feet: string; + Hands: string; +} +export interface Health { + Hydration: CurrentMax; + Energy: CurrentMax; + Temperature: CurrentMax; + BodyParts: BodyPartsHealth; + UpdateTime: number; +} +export interface BodyPartsHealth { + Head: BodyPartHealth; + Chest: BodyPartHealth; + Stomach: BodyPartHealth; + LeftArm: BodyPartHealth; + RightArm: BodyPartHealth; + LeftLeg: BodyPartHealth; + RightLeg: BodyPartHealth; +} +export interface BodyPartHealth { + Health: CurrentMax; + Effects?: Record; +} +export interface CurrentMax { + Current: number; + Maximum: number; +} +export interface Inventory { + items: Item[]; + equipment: string; + stash: string; + sortingTable: string; + questRaidItems: string; + questStashItems: string; + fastPanel: FastPanel; +} +export interface FastPanel { +} +export interface Skills { + Common: Common[]; + Mastering: Mastering[]; + Bonuses?: any[]; + Points: number; +} +export interface Common { + Id: string; + Progress: number; + PointsEarnedDuringSession: number; + LastAccess: number; +} +export interface Mastering { + Id: string; + Progress: number; +} +export interface Stats { + CarriedQuestItems: string[]; + Victims: Victim[]; + TotalSessionExperience: number; + LastSessionDate: number; + SessionCounters: SessionCounters; + OverallCounters: OverallCounters; + SessionExperienceMult?: number; + ExperienceBonusMult?: number; + Aggressor?: Aggressor; + DroppedItems?: IDroppedItem[]; + FoundInRaidItems?: FoundInRaidItem[]; + DamageHistory?: DamageHistory; + DeathCause?: DeathCause; + LastPlayerState?: LastPlayerState; + TotalInGameTime: number; + SurvivorClass?: string; +} +export interface IDroppedItem { + QuestId: string; + ItemId: string; + ZoneId: string; +} +export interface FoundInRaidItem { + QuestId: string; + ItemId: string; +} +export interface Victim { + AccountId: string; + ProfileId: string; + Name: string; + Side: string; + BodyPart: string; + Time: string; + Distance: number; + Level: number; + Weapon: string; + Role: string; +} +export interface SessionCounters { + Items: CounterKeyValue[]; +} +export interface OverallCounters { + Items: CounterKeyValue[]; +} +export interface CounterKeyValue { + Key: string[]; + Value: number; +} +export interface Aggressor { + AccountId: string; + ProfileId: string; + MainProfileNickname: string; + Name: string; + Side: string; + BodyPart: string; + HeadSegment: string; + WeaponName: string; + Category: string; +} +export interface DamageHistory { + LethalDamagePart: string; + LethalDamage: LethalDamage; + BodyParts: BodyPartsDamageHistory; +} +export interface LethalDamage { + Amount: number; + Type: string; + SourceId: string; + OverDamageFrom: string; + Blunt: boolean; + ImpactsCount: number; +} +export interface BodyPartsDamageHistory { + Head: DamageStats[]; + Chest: DamageStats[]; + Stomach: DamageStats[]; + LeftArm: DamageStats[]; + RightArm: DamageStats[]; + LeftLeg: DamageStats[]; + RightLeg: DamageStats[]; + Common: DamageStats[]; +} +export interface DamageStats { + Amount: number; + Type: string; + SourceId: string; + OverDamageFrom: string; + Blunt: boolean; + ImpactsCount: number; +} +export interface DeathCause { + DamageType: string; + Side: string; + Role: string; + WeaponId: string; +} +export interface LastPlayerState { + Info: LastPlayerStateInfo; + Customization: Record; + Equipment: any; +} +export interface LastPlayerStateInfo { + Nickname: string; + Side: string; + Level: number; + MemberCategory: string; +} +export interface ConditionCounters { + Counters: Counter[]; +} +export interface Counter { + id: string; + value: number; + qid: string; +} +export interface BackendCounter { + id: string; + qid?: string; + value: number; +} +export interface InsuredItem { + tid: string; + itemId: string; +} +export interface Hideout { + Production: Record; + Areas: HideoutArea[]; +} +export interface Productive { + Products: Product[]; + Progress?: number; + inProgress?: boolean; + StartTimestamp?: number; +} +export interface Product { + _id: string; + _tpl: string; + upd?: Upd; +} +export interface ScavCase extends Productive { +} +export interface Production extends Productive { + RecipeId: string; + SkipTime: number; + ProductionTime: number; +} +export interface HideoutArea { + type: HideoutAreas; + level: number; + active: boolean; + passiveBonusesEnabled: boolean; + completeTime: number; + constructing: boolean; + slots: HideoutSlot[]; + lastRecipe: string; +} +export interface HideoutSlot { + item: HideoutItem[]; +} +export interface HideoutItem { + _id: string; + _tpl: string; + upd?: Upd; +} +export interface Bonus { + type: string; + templateId?: string; + passive?: boolean; + production?: boolean; + visible?: boolean; + value?: number; + icon?: string; +} +export interface Quest { + qid: string; + startTime: number; + status: string; + statusTimers?: StatusTimer; + completedConditions?: string[]; +} +export interface StatusTimer { + AvailableForStart?: number; +} +export interface TraderInfo { + loyaltyLevel: number; + salesSum: number; + standing: number; + nextResupply: number; + unlocked: boolean; +} +export interface RagfairInfo { + rating: number; + isRatingGrowing: boolean; + offers: IRagfairOffer[]; +} +export interface CarExtractCounts { +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/request/IBaseInteractionRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/common/request/IBaseInteractionRequestData.d.ts new file mode 100644 index 0000000..7303275 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/request/IBaseInteractionRequestData.d.ts @@ -0,0 +1,9 @@ +export interface IBaseInteractionRequestData { + Action: string; + fromOwner?: OwnerInfo; + toOwner?: OwnerInfo; +} +export interface OwnerInfo { + id: string; + type: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/tables/IBotBase.d.ts b/TypeScript/13AddTrader/types/models/eft/common/tables/IBotBase.d.ts new file mode 100644 index 0000000..677fd49 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/tables/IBotBase.d.ts @@ -0,0 +1,101 @@ +import { BackendCounter, Bonus } from "../IPmcData"; +import { Item } from "./IItem"; +export interface IBotBase { + _id: string; + aid: string; + savage: any; + Info: Info; + Customization: Customization; + Health: Health; + Inventory: Inventory; + Skills: Skills; + Stats: Stats; + Encyclopedia: any; + ConditionCounters: ConditionCounters; + BackendCounters: Record; + InsuredItems: any[]; + Hideout: Hideout; + Bonuses: Bonus[]; +} +export interface Info { + Nickname: string; + LowerNickname: string; + Side: string; + Voice: string; + Level: number; + Experience: number; + RegistrationDate: number; + GameVersion: string; + AccountType: number; + MemberCategory: number; + lockedMoveCommands: boolean; + SavageLockTime: number; + LastTimePlayedAsSavage: number; + Settings: Settings; + NicknameChangeDate: number; + NeedWipeOptions: any[]; + lastCompletedWipe: any; + BannedState: boolean; + BannedUntil: number; + IsStreamerModeAvailable: boolean; +} +export interface Settings { + Role: string; + BotDifficulty: string; + Experience: number; + StandingForKill: number; + AggressorBonus: number; +} +export interface Customization { + Head: string; + Body: string; + Feet: string; + Hands: string; +} +export interface Health { +} +export interface Inventory { + items: Item[]; + equipment: string; + stash: string; + sortingTable: string; + questRaidItems: string; + questStashItems: string; + fastPanel: FastPanel; +} +export interface FastPanel { +} +export interface Skills { + Common: any[]; + Mastering: any[]; + Points: number; +} +export interface Stats { + SessionCounters: SessionCounters; + OverallCounters: OverallCounters; +} +export interface SessionCounters { + Items: any[]; +} +export interface OverallCounters { + Items: any[]; +} +export interface ConditionCounters { + Counters: any[]; +} +export interface Hideout { + Production: Production; + Areas: Area[]; +} +export interface Production { +} +export interface Area { + type: number; + level: number; + active: boolean; + passiveBonusesEnabled: boolean; + completeTime: number; + constructing: boolean; + slots: any[]; + lastRecipe: any; +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/tables/IBotCore.d.ts b/TypeScript/13AddTrader/types/models/eft/common/tables/IBotCore.d.ts new file mode 100644 index 0000000..16a782d --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/tables/IBotCore.d.ts @@ -0,0 +1,133 @@ +export interface IBotCore { + SAVAGE_KILL_DIST: number; + SOUND_DOOR_BREACH_METERS: number; + SOUND_DOOR_OPEN_METERS: number; + STEP_NOISE_DELTA: number; + JUMP_NOISE_DELTA: number; + GUNSHOT_SPREAD: number; + GUNSHOT_SPREAD_SILENCE: number; + BASE_WALK_SPEREAD2: number; + MOVE_SPEED_COEF_MAX: number; + SPEED_SERV_SOUND_COEF_A: number; + SPEED_SERV_SOUND_COEF_B: number; + G: number; + STAY_COEF: number; + SIT_COEF: number; + LAY_COEF: number; + MAX_ITERATIONS: number; + START_DIST_TO_COV: number; + MAX_DIST_TO_COV: number; + STAY_HEIGHT: number; + CLOSE_POINTS: number; + COUNT_TURNS: number; + SIMPLE_POINT_LIFE_TIME_SEC: number; + DANGER_POINT_LIFE_TIME_SEC: number; + DANGER_POWER: number; + COVER_DIST_CLOSE: number; + GOOD_DIST_TO_POINT: number; + COVER_TOOFAR_FROM_BOSS: number; + COVER_TOOFAR_FROM_BOSS_SQRT: number; + MAX_Y_DIFF_TO_PROTECT: number; + FLARE_POWER: number; + MOVE_COEF: number; + PRONE_POSE: number; + LOWER_POSE: number; + MAX_POSE: number; + FLARE_TIME: number; + MAX_REQUESTS__PER_GROUP: number; + UPDATE_GOAL_TIMER_SEC: number; + DIST_NOT_TO_GROUP: number; + DIST_NOT_TO_GROUP_SQR: number; + LAST_SEEN_POS_LIFETIME: number; + DELTA_GRENADE_START_TIME: number; + DELTA_GRENADE_END_TIME: number; + DELTA_GRENADE_RUN_DIST: number; + DELTA_GRENADE_RUN_DIST_SQRT: number; + PATROL_MIN_LIGHT_DIST: number; + HOLD_MIN_LIGHT_DIST: number; + STANDART_BOT_PAUSE_DOOR: number; + ARMOR_CLASS_COEF: number; + SHOTGUN_POWER: number; + RIFLE_POWER: number; + PISTOL_POWER: number; + SMG_POWER: number; + SNIPE_POWER: number; + GESTUS_PERIOD_SEC: number; + GESTUS_AIMING_DELAY: number; + GESTUS_REQUEST_LIFETIME: number; + GESTUS_FIRST_STAGE_MAX_TIME: number; + GESTUS_SECOND_STAGE_MAX_TIME: number; + GESTUS_MAX_ANSWERS: number; + GESTUS_FUCK_TO_SHOOT: number; + GESTUS_DIST_ANSWERS: number; + GESTUS_DIST_ANSWERS_SQRT: number; + GESTUS_ANYWAY_CHANCE: number; + TALK_DELAY: number; + CAN_SHOOT_TO_HEAD: boolean; + CAN_TILT: boolean; + TILT_CHANCE: number; + MIN_BLOCK_DIST: number; + MIN_BLOCK_TIME: number; + COVER_SECONDS_AFTER_LOSE_VISION: number; + MIN_ARG_COEF: number; + MAX_ARG_COEF: number; + DEAD_AGR_DIST: number; + MAX_DANGER_CARE_DIST_SQRT: number; + MAX_DANGER_CARE_DIST: number; + MIN_MAX_PERSON_SEARCH: number; + PERCENT_PERSON_SEARCH: number; + LOOK_ANYSIDE_BY_WALL_SEC_OF_ENEMY: number; + CLOSE_TO_WALL_ROTATE_BY_WALL_SQRT: number; + SHOOT_TO_CHANGE_RND_PART_MIN: number; + SHOOT_TO_CHANGE_RND_PART_MAX: number; + SHOOT_TO_CHANGE_RND_PART_DELTA: number; + FORMUL_COEF_DELTA_DIST: number; + FORMUL_COEF_DELTA_SHOOT: number; + FORMUL_COEF_DELTA_FRIEND_COVER: number; + SUSPETION_POINT_DIST_CHECK: number; + MAX_BASE_REQUESTS_PER_PLAYER: number; + MAX_HOLD_REQUESTS_PER_PLAYER: number; + MAX_GO_TO_REQUESTS_PER_PLAYER: number; + MAX_COME_WITH_ME_REQUESTS_PER_PLAYER: number; + CORE_POINT_MAX_VALUE: number; + CORE_POINTS_MAX: number; + CORE_POINTS_MIN: number; + BORN_POISTS_FREE_ONLY_FAREST_BOT: boolean; + BORN_POINSTS_FREE_ONLY_FAREST_PLAYER: boolean; + SCAV_GROUPS_TOGETHER: boolean; + LAY_DOWN_ANG_SHOOT: number; + HOLD_REQUEST_TIME_SEC: number; + TRIGGERS_DOWN_TO_RUN_WHEN_MOVE: number; + MIN_DIST_TO_RUN_WHILE_ATTACK_MOVING: number; + MIN_DIST_TO_RUN_WHILE_ATTACK_MOVING_OTHER_ENEMIS: number; + MIN_DIST_TO_STOP_RUN: number; + JUMP_SPREAD_DIST: number; + LOOK_TIMES_TO_KILL: number; + COME_INSIDE_TIMES: number; + TOTAL_TIME_KILL: number; + TOTAL_TIME_KILL_AFTER_WARN: number; + MOVING_AIM_COEF: number; + VERTICAL_DIST_TO_IGNORE_SOUND: number; + DEFENCE_LEVEL_SHIFT: number; + MIN_DIST_CLOSE_DEF: number; + USE_ID_PRIOR_WHO_GO: boolean; + SMOKE_GRENADE_RADIUS_COEF: number; + GRENADE_PRECISION: number; + MAX_WARNS_BEFORE_KILL: number; + CARE_ENEMY_ONLY_TIME: number; + MIDDLE_POINT_COEF: number; + MAIN_TACTIC_ONLY_ATTACK: boolean; + LAST_DAMAGE_ACTIVE: number; + SHALL_DIE_IF_NOT_INITED: boolean; + CHECK_BOT_INIT_TIME_SEC: number; + WEAPON_ROOT_Y_OFFSET: number; + DELTA_SUPRESS_DISTANCE_SQRT: number; + DELTA_SUPRESS_DISTANCE: number; + WAVE_COEF_LOW: number; + WAVE_COEF_MID: number; + WAVE_COEF_HIGH: number; + WAVE_COEF_HORDE: number; + WAVE_ONLY_AS_ONLINE: boolean; + LOCAL_BOTS_COUNT: number; + AXE_MAN_KILLS_END: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/tables/IBotType.d.ts b/TypeScript/13AddTrader/types/models/eft/common/tables/IBotType.d.ts new file mode 100644 index 0000000..01be0be --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/tables/IBotType.d.ts @@ -0,0 +1,176 @@ +export interface IBotType { + appearance: Appearance; + chances: Chances; + difficulty: Difficulties; + experience: Experience; + firstName: string[]; + generation: Generation; + health: Health; + inventory: Inventory; + lastName: string[]; + skills: Skills; +} +export interface Appearance { + body: string[]; + feet: string[]; + hands: string[]; + head: string[]; + voice: string[]; +} +export interface Chances { + equipment: EquipmentChances; + mods: ModsChances; +} +export interface EquipmentChances { + ArmBand: number; + ArmorVest: number; + Backpack: number; + Earpiece: number; + Eyewear: number; + FaceCover: number; + FirstPrimaryWeapon: number; + Headwear: number; + Holster: number; + Pockets: number; + Scabbard: number; + SecondPrimaryWeapon: number; + SecuredContainer: number; + TacticalVest: number; +} +export interface ModsChances { + mod_charge: number; + mod_equipment: number; + mod_equipment_000: number; + mod_equipment_001: number; + mod_equipment_002: number; + mod_flashlight: number; + mod_foregrip: number; + mod_launcher: number; + mod_magazine: number; + mod_mount: number; + mod_mount_000: number; + mod_mount_001: number; + mod_muzzle: number; + mod_nvg: number; + mod_pistol_grip: number; + mod_reciever: number; + mod_scope: number; + mod_sight_front: number; + mod_sight_rear: number; + mod_stock: number; + mod_stock_000: number; + mod_stock_akms: number; + mod_tactical: number; + mod_tactical_000: number; + mod_tactical_001: number; + mod_tactical_002: number; + mod_tactical_003: number; +} +export interface Difficulties { + easy: Difficulty; + normal: Difficulty; + hard: Difficulty; + impossible: Difficulty; +} +export interface Difficulty { + Aiming: Record; + Boss: Record; + Change: Record; + Core: Record; + Cover: Record; + Grenade: Record; + Hearing: Record; + Lay: Record; + Look: Record; + Mind: Record; + Move: Record; + Patrol: Record; + Scattering: Record; + Shoot: Record; +} +export interface Experience { + aggressorBonus: number; + level: MinMax; + reward: MinMax; + standingForKill: number; +} +export interface Generation { + items: ItemMinMax; +} +export interface ItemMinMax { + grenades: MinMax; + healing: MinMax; + drugs: MinMax; + stims: MinMax; + looseLoot: MinMax; + magazines: MinMax; + specialItems: MinMax; +} +export interface Health { + BodyParts: BodyPart[]; + Energy: MinMax; + Hydration: MinMax; + Temperature: MinMax; +} +export interface BodyPart { + Chest: MinMax; + Head: MinMax; + LeftArm: MinMax; + LeftLeg: MinMax; + RightArm: MinMax; + RightLeg: MinMax; + Stomach: MinMax; +} +export interface MinMax { + max: number; + min: number; +} +export interface Inventory { + equipment: Equipment; + items: Items; + mods: Mods; +} +export interface Equipment { + ArmBand: Record; + ArmorVest: Record; + Backpack: Record; + Earpiece: Record; + Eyewear: Record; + FaceCover: Record; + FirstPrimaryWeapon: Record; + Headwear: Record; + Holster: Record; + Pockets: Record; + Scabbard: Record; + SecondPrimaryWeapon: Record; + SecuredContainer: Record; + TacticalVest: Record; +} +export interface Items { + Backpack: string[]; + Pockets: string[]; + SecuredContainer: string[]; + SpecialLoot: string[]; + TacticalVest: string[]; +} +export declare type Mods = Record>; +export interface Skills { + Common: Common[]; + Bonuses?: any; + Mastering: Mastering[]; + Points: number; +} +export interface Mastering { + Id: string; + Progress: number; + max?: number; + min?: number; +} +export interface Common { + Id: string; + Progress: number; + PointsEarnedDuringSession?: number; + LastAccess?: number; + max?: number; + min?: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/tables/ICustomizationItem.d.ts b/TypeScript/13AddTrader/types/models/eft/common/tables/ICustomizationItem.d.ts new file mode 100644 index 0000000..8bfeece --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/tables/ICustomizationItem.d.ts @@ -0,0 +1,33 @@ +export interface ICustomizationItem { + _id: string; + _name: string; + _parent: string; + _type: string; + _props: Props; + _proto: string; +} +export interface Props { + Name: string; + ShortName: string; + Description: string; + Side: string[]; + BodyPart: string; + AvailableAsDefault?: boolean; + Body: string; + Hands: string; + Feet: string; + Prefab: Prefab; + WatchPrefab: Prefab; + IntegratedArmorVest: boolean; + WatchPosition: Xyz; + WatchRotation: Xyz; +} +export interface Prefab { + path: string; + rcid: string; +} +export interface Xyz { + x: number; + y: number; + z: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/tables/IHandbookBase.d.ts b/TypeScript/13AddTrader/types/models/eft/common/tables/IHandbookBase.d.ts new file mode 100644 index 0000000..7d7db07 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/tables/IHandbookBase.d.ts @@ -0,0 +1,16 @@ +export interface IHandbookBase { + Categories: Category[]; + Items: HandbookItem[]; +} +export interface Category { + Id: string; + ParentId?: string; + Icon: string; + Color: string; + Order: string; +} +export interface HandbookItem { + Id: string; + ParentId: string; + Price: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/tables/IItem.d.ts b/TypeScript/13AddTrader/types/models/eft/common/tables/IItem.d.ts new file mode 100644 index 0000000..2dd2c03 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/tables/IItem.d.ts @@ -0,0 +1,108 @@ +export interface Item { + _id: string; + _tpl: string; + parentId?: string; + slotId?: string; + location?: Location | number; + upd?: Upd; +} +export interface Upd { + OriginalStackObjectsCount?: number; + Togglable?: Togglable; + Map?: Map; + Tag?: Tag; + sptPresetId?: string; + FaceShield?: FaceShield; + StackObjectsCount?: number; + UnlimitedCount?: boolean; + Repairable?: Repairable; + FireMode?: FireMode; + SpawnedInSession?: boolean; + Light?: Light; + Key?: Key; + Resource?: Resource; + Sight?: Sight; + MedKit?: MedKit; + FoodDrink?: FoodDrink; + Dogtag?: Dogtag; + BuyRestrictionMax?: number; + BuyRestrictionCurrent?: number; + Foldable?: Foldable; + SideEffect?: SideEffect; + RepairKit?: RepairKit; +} +export interface Togglable { + On: boolean; +} +export interface Map { + Markers: MapMarker[]; +} +export interface MapMarker { + X: number; + Y: number; +} +export interface Tag { + Color: number; + Name: string; +} +export interface FaceShield { + Hits: number; +} +export interface Repairable { + Durability: number; + MaxDurability: number; +} +export interface MedKit { + HpResource: number; +} +export interface Sight { + ScopesCurrentCalibPointIndexes: number[]; + ScopesSelectedModes: number[]; + SelectedScope: number; +} +export interface Foldable { + Folded: boolean; +} +export interface FireMode { + FireMode: string; +} +export interface FoodDrink { + HpPercent: number; +} +export interface Key { + NumberOfUsages: number; +} +export interface Resource { + Value: number; + UnitsConsumed: number; +} +export interface Light { + IsActive: boolean; + SelectedMode: number; +} +export interface Dogtag { + AccountId: string; + ProfileId: string; + Nickname: string; + Side: string; + Level: number; + Time: string; + Status: string; + KillerAccountId: string; + KillerProfileId: string; + KillerName: string; + WeaponName: string; +} +export interface Location { + x: number; + y: number; + r: string | number; + isSearched?: boolean; + rotation?: string; +} +export interface SideEffect { + Value: number; +} +export interface RepairKit { + Resource: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/tables/ILocationsBase.d.ts b/TypeScript/13AddTrader/types/models/eft/common/tables/ILocationsBase.d.ts new file mode 100644 index 0000000..2c96af3 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/tables/ILocationsBase.d.ts @@ -0,0 +1,10 @@ +export interface ILocationsBase { + locations: Locations; + paths: Path[]; +} +export interface Locations { +} +export interface Path { + Source: string; + Destination: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/tables/ILootBase.d.ts b/TypeScript/13AddTrader/types/models/eft/common/tables/ILootBase.d.ts new file mode 100644 index 0000000..e4baac5 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/tables/ILootBase.d.ts @@ -0,0 +1,64 @@ +import { Item } from "./IItem"; +export interface ILootBase { + staticAmmo: Record; + staticContainers: Record; + staticLoot: Record; +} +export interface IStaticAmmoDetails { + tpl: string; + relativeProbability: number; +} +export interface IStaticContainerDetails { + staticWeapons: IStaticWeaponProps[]; + staticContainers: IStaticContainerProps[]; + staticForced: IStaticForcedProps[]; +} +export interface IStaticWeaponProps { + Id: string; + IsStatic: boolean; + useGravity: boolean; + randomRotation: boolean; + Position: Xyz; + Rotation: Xyz; + IsGroupPosition: boolean; + GroupPositions: any[]; + Root: string; + Items: Item[]; +} +export interface IStaticContainerProps { + Id: string; + IsStatic: boolean; + useGravity: boolean; + randomRotation: boolean; + Position: Xyz; + Rotation: Xyz; + IsGroupPosition: boolean; + GroupPositions: any[]; + Root: any; + Items: StaticItem[]; +} +export interface Xyz { + x: number; + y: number; + z: number; +} +export interface StaticItem { + _id: any; + _tpl: string; +} +export interface IStaticForcedProps { + containerId: string; + itemTpl: string; +} +export interface IStaticLootDetails { + itemcountDistribution: ItemCountDistribution[]; + itemDistribution: ItemDistribution[]; +} +export interface ItemCountDistribution { + count: number; + relativeProbability: number; +} +export interface ItemDistribution { + tpl: string; + relativeProbability: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/tables/IQuest.d.ts b/TypeScript/13AddTrader/types/models/eft/common/tables/IQuest.d.ts new file mode 100644 index 0000000..e1fc888 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/tables/IQuest.d.ts @@ -0,0 +1,110 @@ +import { Item } from "./IItem"; +export interface IQuest { + QuestName: string; + _id: string; + canShowNotificationsInGame: boolean; + conditions: Conditions; + description: string; + failMessageText: string; + name: string; + note: string; + traderId: string; + location: string; + image: string; + type: string; + isKey: boolean; + restartable: boolean; + instantComplete: boolean; + secretQuest: boolean; + startedMessageText: string; + successMessageText: string; + templateId: string; + rewards: Rewards; + status: string; + KeyQuest: boolean; + changeQuestMessageText: string; +} +export interface Conditions { + Started: AvailableForConditions[]; + AvailableForFinish: AvailableForConditions[]; + AvailableForStart: AvailableForConditions[]; + Success: AvailableForConditions[]; + Fail: AvailableForConditions[]; +} +export interface AvailableForConditions { + _parent: string; + _props: AvailableForProps; + dynamicLocale: boolean; +} +export interface AvailableForProps { + id: string; + index: number; + parentId: string; + dynamicLocale: boolean; + value?: number; + compareMethod?: string; + visibilityConditions?: VisibilityCondition[]; + target?: string | string[]; + status?: number[]; + onlyFoundInRaid?: boolean; + oneSessionOnly?: boolean; + doNotResetIfCounterCompleted?: boolean; + dogtagLevel?: number; + maxDurability?: number; + minDurability?: number; + counter?: AvailableForCounter; + plantTime?: number; + zoneId?: string; + type?: boolean; +} +export interface AvailableForCounter { + id: string; + conditions: CounterCondition[]; +} +export interface CounterCondition { + _parent: string; + _props: CounterProps; +} +export interface CounterProps { + id: string; + target: string[] | string; + compareMethod?: string; + value?: string; + weapon?: string[]; + equipmentInclusive?: string[][]; + weaponModsInclusive?: string[][]; + status?: string[]; + bodyPart?: string[]; + daytime?: DaytimeCounter; +} +export interface DaytimeCounter { + from: number; + to: number; +} +export interface VisibilityCondition { + id: string; + value: number; + dynamicLocale: boolean; + oneSessionOnly: boolean; +} +export interface Rewards { + AvailableForStart: Reward[]; + AvailableForFinish: Reward[]; + Started: Reward[]; + Success: Reward[]; + Fail: Reward[]; + FailRestartable: Reward[]; + Expired: Reward[]; +} +export interface Reward { + value?: string; + id: string; + type: string; + index: number; + target?: string; + items?: Item[]; + loyaltyLevel?: number; + traderId?: string; + unknown?: boolean; + findInRaid?: boolean; +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/tables/IRepeatableQuests.d.ts b/TypeScript/13AddTrader/types/models/eft/common/tables/IRepeatableQuests.d.ts new file mode 100644 index 0000000..e23ec73 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/tables/IRepeatableQuests.d.ts @@ -0,0 +1,219 @@ +import { Item } from "./IItem"; +export interface IReward { + index: number; + type: string; + value: number; + target?: string; + items?: Item[]; +} +export interface IRepeatableQuestDatabase { + templates: ITemplates; + rewards: IRewardOptions; + data: IOptions; + samples: ISampleQuests[]; +} +export interface ITemplates { + Elimination: IRepeatableQuest; + Completion: IRepeatableQuest; + Exploration: IRepeatableQuest; +} +export interface IPmcDataRepeatableQuest { + id?: string; + name: string; + activeQuests: IRepeatableQuest[]; + inactiveQuests: IRepeatableQuest[]; + endTime: number; + changeRequirement: TChangeRequirementRecord; +} +export declare type TChangeRequirementRecord = Record; +export interface IChangeRequirement { + changeCost: IChangeCost[]; + changeStandingCost: number; +} +export interface IChangeCost { + templateId: string; + count: number; +} +export interface IRepeatableQuest { + _id: any; + traderId: string; + location: any; + image: string; + type: string; + isKey: boolean; + restartable: boolean; + instantComplete: boolean; + secretQuest: boolean; + canShowNotificationsInGame: boolean; + rewards: IRewards; + conditions: IConditions; + name: string; + note: string; + description: string; + successMessageText: string; + failMessageText: string; + startedMessageText: string; + changeQuestMessageText: string; + templateId: string; + changeCost: IChangeCost[]; + changeStandingCost: number; +} +export interface IRewards { + Started: IReward[]; + Success: IReward[]; + Fail: IReward[]; +} +export interface IConditions { + AvailableForStart: any[]; + AvailableForFinish: IAvailableFor[]; + Fail: any[]; +} +export interface IAvailableFor { + _props: IAvailableForProps; + _parent: string; + dynamicLocale: boolean; +} +export interface IAvailableForProps { + id: string; + parentId: string; + dynamicLocale: boolean; + index: number; + visibilityConditions: IVisibilityCondition[]; + value: number; +} +export interface IVisibilityCondition { + id: string; + oneSessionOnly: boolean; + value: number; + index: number; + dynamicLocale: boolean; +} +export interface IAvailableForPropsCounter extends IAvailableForProps { + type: string; + oneSessionOnly: boolean; + doNotResetIfCounterCompleted: boolean; + counter: ICounter; +} +export interface ICounter { + id: string; + conditions: ICondition[]; +} +export interface ICondition { + _props: IConditionProps; + _parent: string; +} +export interface IConditionProps { + id: string; + dynamicLocale: boolean; +} +export interface IElimination extends IRepeatableQuest { + conditions: IEliminationConditions; +} +export interface IEliminationConditions extends IConditions { + AvailableForFinish: IEliminationAvailableFor[]; +} +export interface IEliminationAvailableFor extends IAvailableFor { + _props: IEliminationAvailableForProps; +} +export interface IEliminationAvailableForProps extends IAvailableForPropsCounter { + counter: IEliminationCounter; +} +export interface IEliminationCounter extends ICounter { + conditions: IEliminationCondition[]; +} +export interface IEliminationCondition extends ICondition { + _props: ILocationConditionProps | IKillConditionProps; +} +export interface IExploration extends IRepeatableQuest { + conditions: IExplorationConditions; +} +export interface IExplorationConditions extends IConditions { + AvailableForFinish: IExplorationAvailableFor[]; +} +export interface IExplorationAvailableFor extends IAvailableFor { + _props: IExplorationAvailableForProps; +} +export interface IExplorationAvailableForProps extends IAvailableForPropsCounter { + counter: IExplorationCounter; +} +export interface IExplorationCounter extends ICounter { + conditions: IExplorationCondition[]; +} +export interface IExplorationCondition extends ICondition { + _props: ILocationConditionProps | IExitStatusConditionProps | IExitNameConditionProps; +} +export interface ICompletion extends IRepeatableQuest { + conditions: ICompletionConditions; +} +export interface ICompletionConditions extends IConditions { + AvailableForFinish: ICompletionAvailableFor[]; +} +export interface ICompletionAvailableFor extends IAvailableFor { + _props: ICompletionAvailableForProps; +} +export interface ICompletionAvailableForProps extends IAvailableForProps { + target: string[]; + minDurability: number; + maxDurability: number; + dogtagLevel: number; + onlyFoundInRaid: boolean; +} +export interface ILocationConditionProps extends IConditionProps { + target: string[]; +} +export interface IKillConditionProps extends IConditionProps { + target: string; + value: number; + savageRole?: string[]; + bodyPart?: string[]; + distance?: IDistanceCheck; +} +export interface IDistanceCheck { + compareMethod: string; + value: number; +} +export interface IExitStatusConditionProps extends IConditionProps { + status: string[]; +} +export interface IExitNameConditionProps extends IConditionProps { + exitName: string; +} +export interface IRewardOptions { + itemsBlacklist: string[]; +} +export interface IOptions { + Completion: ICompletionFilter; +} +export interface ICompletionFilter { + itemsBlacklist: ItemsBlacklist[]; + itemsWhitelist: ItemsWhitelist[]; +} +export interface ItemsBlacklist { + minPlayerLevel: number; + itemIds: string[]; +} +export interface ItemsWhitelist { + minPlayerLevel: number; + itemIds: string[]; +} +export interface ISampleQuests { + _id: string; + traderId: string; + location: string; + image: string; + type: string; + isKey: boolean; + restartable: boolean; + instantComplete: boolean; + secretQuest: boolean; + canShowNotificationsInGame: boolean; + rewards: IRewards; + conditions: IConditions; + name: string; + note: string; + description: string; + successMessageText: string; + failMessageText: string; + startedMessageText: string; + templateId: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/common/tables/ITemplateItem.d.ts b/TypeScript/13AddTrader/types/models/eft/common/tables/ITemplateItem.d.ts new file mode 100644 index 0000000..c2ba762 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/models/eft/common/tables/ITrader.d.ts b/TypeScript/13AddTrader/types/models/eft/common/tables/ITrader.d.ts new file mode 100644 index 0000000..f0fe2b5 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/common/tables/ITrader.d.ts @@ -0,0 +1,90 @@ +import { Item } from "./IItem"; +export interface ITrader { + assort: ITraderAssort; + base: ITraderBase; + dialogue?: Record; + questassort: Record>; + suits?: ISuit[]; +} +export interface ITraderBase { + refreshAssort: boolean; + _id: string; + avatar: string; + balance_dol: number; + balance_eur: number; + balance_rub: number; + buyer_up: boolean; + currency: string; + customization_seller: boolean; + discount: number; + discount_end: number; + gridHeight: number; + insurance: Insurance; + location: string; + loyaltyLevels: LoyaltyLevel[]; + medic: boolean; + name: string; + nextResupply: number; + nickname: string; + repair: Repair; + sell_category: string[]; + surname: string; + unlockedByDefault: boolean; +} +export interface Insurance { + availability: boolean; + excluded_category: string[]; + max_return_hour: number; + max_storage_time: number; + min_payment: number; + min_return_hour: number; +} +export interface LoyaltyLevel { + buy_price_coef: number; + exchange_price_coef: number; + heal_price_coef: number; + insurance_price_coef: number; + minLevel: number; + minSalesSum: number; + minStanding: number; + repair_price_coef: number; +} +export interface Repair { + availability: boolean; + currency: string; + currency_coefficient: number; + excluded_category: string[]; + excluded_id_list: any[]; + quality: string; +} +export interface ITraderAssort { + nextResupply?: number; + items: Item[]; + barter_scheme: Record; + loyal_level_items: Record; +} +export interface IBarterScheme { + count: number; + _tpl: string; + onlyFunctional?: boolean; +} +export interface ISuit { + _id: string; + tid: string; + suiteId: string; + isActive: boolean; + requirements: Requirements; +} +export interface Requirements { + loyaltyLevel: number; + profileLevel: number; + standing: number; + skillRequirements: string[]; + questRequirements: string[]; + itemRequirements: ItemRequirement[]; +} +export interface ItemRequirement { + count: number; + _tpl: string; + onlyFunctional: boolean; +} diff --git a/TypeScript/13AddTrader/types/models/eft/customization/IBuyClothingRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/customization/IBuyClothingRequestData.d.ts new file mode 100644 index 0000000..d19b70d --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/customization/IBuyClothingRequestData.d.ts @@ -0,0 +1,10 @@ +export interface IBuyClothingRequestData { + Action: "CustomizationBuy"; + offer: string; + items: ClothingItem[]; +} +export interface ClothingItem { + del: boolean; + id: string; + count: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/customization/IWearClothingRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/customization/IWearClothingRequestData.d.ts new file mode 100644 index 0000000..122d9cf --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/customization/IWearClothingRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IWearClothingRequestData { + Action: "CustomizationWear"; + suites: string[]; +} diff --git a/TypeScript/13AddTrader/types/models/eft/dialog/IFriendRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/dialog/IFriendRequestData.d.ts new file mode 100644 index 0000000..9c326ac --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/dialog/IFriendRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IFriendRequestData { + to: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/dialog/IGetAllAttachmentsRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/dialog/IGetAllAttachmentsRequestData.d.ts new file mode 100644 index 0000000..53d8289 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/dialog/IGetAllAttachmentsRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetAllAttachmentsRequestData { + dialogId: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/dialog/IGetAllAttachmentsResponse.d.ts b/TypeScript/13AddTrader/types/models/eft/dialog/IGetAllAttachmentsResponse.d.ts new file mode 100644 index 0000000..076d414 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/dialog/IGetAllAttachmentsResponse.d.ts @@ -0,0 +1,6 @@ +import { Message } from "../profile/IAkiProfile"; +export interface IGetAllAttachmentsResponse { + messages: Message[]; + profiles: any[]; + hasMessagesWithRewards: boolean; +} diff --git a/TypeScript/13AddTrader/types/models/eft/dialog/IGetChatServerListRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/dialog/IGetChatServerListRequestData.d.ts new file mode 100644 index 0000000..8f1beac --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/dialog/IGetChatServerListRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetChatServerListRequestData { + VersionId: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/dialog/IGetFriendListDataResponse.d.ts b/TypeScript/13AddTrader/types/models/eft/dialog/IGetFriendListDataResponse.d.ts new file mode 100644 index 0000000..1d0c0e8 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/dialog/IGetFriendListDataResponse.d.ts @@ -0,0 +1,16 @@ +import { MemberCategory } from "../../enums/MemberCategory"; +export interface IGetFriendListDataResponse { + Friends: Friend[]; + Ignore: any[]; + InIgnoreList: any[]; +} +export interface Friend { + _id: string; + Info: Info; +} +export interface Info { + Nickname: string; + Side: string; + Level: number; + MemberCategory: MemberCategory; +} diff --git a/TypeScript/13AddTrader/types/models/eft/dialog/IGetMailDialogInfoRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/dialog/IGetMailDialogInfoRequestData.d.ts new file mode 100644 index 0000000..eed84b1 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/dialog/IGetMailDialogInfoRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetMailDialogInfoRequestData { + dialogId: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/dialog/IGetMailDialogListRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/dialog/IGetMailDialogListRequestData.d.ts new file mode 100644 index 0000000..f8fbf5d --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/dialog/IGetMailDialogListRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IGetMailDialogListRequestData { + limit: number; + offset: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/dialog/IGetMailDialogViewRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/dialog/IGetMailDialogViewRequestData.d.ts new file mode 100644 index 0000000..43d416e --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/dialog/IGetMailDialogViewRequestData.d.ts @@ -0,0 +1,7 @@ +import { MessageType } from "../../enums/MessageType"; +export interface IGetMailDialogViewRequestData { + type: MessageType; + dialogId: string; + limit: number; + time: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/dialog/IGetMailDialogViewResponseData.d.ts b/TypeScript/13AddTrader/types/models/eft/dialog/IGetMailDialogViewResponseData.d.ts new file mode 100644 index 0000000..4f8b946 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/dialog/IGetMailDialogViewResponseData.d.ts @@ -0,0 +1,7 @@ +import { IPmcData } from "../common/IPmcData"; +import { Message } from "../profile/IAkiProfile"; +export interface IGetMailDialogViewResponseData { + messages: Message[]; + profiles: IPmcData[]; + hasMessagesWithRewards: boolean; +} diff --git a/TypeScript/13AddTrader/types/models/eft/dialog/IPinDialogRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/dialog/IPinDialogRequestData.d.ts new file mode 100644 index 0000000..57b8a00 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/dialog/IPinDialogRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IPinDialogRequestData { + dialogId: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/dialog/IRemoveDialogRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/dialog/IRemoveDialogRequestData.d.ts new file mode 100644 index 0000000..874b828 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/dialog/IRemoveDialogRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IRemoveDialogRequestData { + dialogId: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/dialog/ISendMessageRequest.d.ts b/TypeScript/13AddTrader/types/models/eft/dialog/ISendMessageRequest.d.ts new file mode 100644 index 0000000..dd79deb --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/dialog/ISendMessageRequest.d.ts @@ -0,0 +1,7 @@ +import { MessageType } from "../../enums/MessageType"; +export interface ISendMessageRequest { + dialogId: string; + type: MessageType; + text: string; + replyTo: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/dialog/ISetDialogReadRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/dialog/ISetDialogReadRequestData.d.ts new file mode 100644 index 0000000..2076232 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/dialog/ISetDialogReadRequestData.d.ts @@ -0,0 +1,3 @@ +export interface ISetDialogReadRequestData { + dialogs: string[]; +} diff --git a/TypeScript/13AddTrader/types/models/eft/game/IGameConfigResponse.d.ts b/TypeScript/13AddTrader/types/models/eft/game/IGameConfigResponse.d.ts new file mode 100644 index 0000000..eb37a39 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/game/IGameConfigResponse.d.ts @@ -0,0 +1,19 @@ +export interface IGameConfigResponse { + aid: string; + lang: string; + languages: Record; + ndaFree: boolean; + taxonomy: number; + activeProfileId: string; + backend: Backend; + utc_time: number; + totalInGame: number; + reportAvailable: boolean; + twitchEventMember: boolean; +} +export interface Backend { + Trading: string; + Messaging: string; + Main: string; + RagFair: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/game/IGameEmptyCrcRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/game/IGameEmptyCrcRequestData.d.ts new file mode 100644 index 0000000..a3ecad9 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/game/IGameEmptyCrcRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGameEmptyCrcRequestData { + crc: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/game/IVersionValidateRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/game/IVersionValidateRequestData.d.ts new file mode 100644 index 0000000..0aa0fed --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/game/IVersionValidateRequestData.d.ts @@ -0,0 +1,11 @@ +export interface IVersionValidateRequestData { + version: Version; + develop: boolean; +} +export interface Version { + major: string; + minor: string; + game: string; + backend: string; + taxonomy: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/health/IHealthTreatmentRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/health/IHealthTreatmentRequestData.d.ts new file mode 100644 index 0000000..7fb80a8 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/health/IHealthTreatmentRequestData.d.ts @@ -0,0 +1,29 @@ +export interface IHealthTreatmentRequestData { + Action: "RestoreHealth"; + trader: string; + items: Item[]; + difference: Difference; + timestamp: number; +} +export interface Item { + id: string; + count: number; +} +export interface Difference { + BodyParts: BodyParts; + Energy: number; + Hydration: number; +} +export interface BodyParts { + Head: BodyPart; + Chest: BodyPart; + Stomach: BodyPart; + LeftArm: BodyPart; + RightArm: BodyPart; + LeftLeg: BodyPart; + RightLeg: BodyPart; +} +export interface BodyPart { + Health: number; + Effects: string[]; +} diff --git a/TypeScript/13AddTrader/types/models/eft/health/IOffraidEatRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/health/IOffraidEatRequestData.d.ts new file mode 100644 index 0000000..8e2b6c3 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/health/IOffraidEatRequestData.d.ts @@ -0,0 +1,7 @@ +import { IBaseInteractionRequestData } from "../common/request/IBaseInteractionRequestData"; +export interface IOffraidEatRequestData extends IBaseInteractionRequestData { + Action: "Eat"; + item: string; + count: number; + time: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/health/IOffraidHealRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/health/IOffraidHealRequestData.d.ts new file mode 100644 index 0000000..c242300 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/health/IOffraidHealRequestData.d.ts @@ -0,0 +1,18 @@ +import { IBaseInteractionRequestData } from "../common/request/IBaseInteractionRequestData"; +export interface IOffraidHealRequestData extends IBaseInteractionRequestData { + Action: "Heal"; + item: string; + part: BodyPart; + count: number; + time: number; +} +export declare enum BodyPart { + Head = 0, + Chest = 1, + Stomach = 2, + LeftArm = 3, + RightArm = 4, + LeftLeg = 5, + RightLeg = 6, + Common = 7 +} diff --git a/TypeScript/13AddTrader/types/models/eft/health/ISyncHealthRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/health/ISyncHealthRequestData.d.ts new file mode 100644 index 0000000..20e32f6 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/health/ISyncHealthRequestData.d.ts @@ -0,0 +1,21 @@ +export interface ISyncHealthRequestData { + Health: Health; + IsAlive: boolean; + Hydration?: number; + Energy?: number; + Temperature?: number; +} +export interface Health { + Head?: BodyPartHealth; + Chest?: BodyPartHealth; + Stomach?: BodyPartHealth; + LeftArm?: BodyPartHealth; + RightArm?: BodyPartHealth; + LeftLeg?: BodyPartHealth; + RightLeg?: BodyPartHealth; +} +export interface BodyPartHealth { + Maximum: number; + Current: number; + Effects: Record; +} diff --git a/TypeScript/13AddTrader/types/models/eft/hideout/HideoutUpgradeCompleteRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/hideout/HideoutUpgradeCompleteRequestData.d.ts new file mode 100644 index 0000000..8583e8d --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/hideout/HideoutUpgradeCompleteRequestData.d.ts @@ -0,0 +1,5 @@ +export interface HideoutUpgradeCompleteRequestData { + Action: string; + areaType: number; + timestamp: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutArea.d.ts b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutArea.d.ts new file mode 100644 index 0000000..d9fd2bf --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutArea.d.ts @@ -0,0 +1,40 @@ +export interface IHideoutArea { + _id: string; + type: number; + enabled: boolean; + needsFuel: boolean; + takeFromSlotLocked: boolean; + craftGivesExp: boolean; + stages: Record; +} +export interface Stage { + requirements: Requirement[]; + bonuses: StageBonus[]; + slots: number; + constructionTime: number; + description: string; +} +export interface Requirement { + areaType?: number; + requiredLevel?: number; + type: string; + templateId?: string; + count?: number; + isFunctional?: boolean; + traderId?: string; + loyaltyLevel?: number; + skillName?: string; + skillLevel?: number; +} +export interface StageBonus { + value: number; + passive: boolean; + production: boolean; + visible: boolean; + skillType?: string; + type: string; + filter?: string[]; + icon?: string; + id?: string; + templateId?: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutContinousProductionStartRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutContinousProductionStartRequestData.d.ts new file mode 100644 index 0000000..dba83eb --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutContinousProductionStartRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IHideoutContinousProductionStartRequestData { + Action: "HideoutContinuousProductionStart"; + recipeId: string; + timestamp: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutProduction.d.ts b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutProduction.d.ts new file mode 100644 index 0000000..ce878be --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutProduction.d.ts @@ -0,0 +1,20 @@ +export interface IHideoutProduction { + _id: string; + areaType: number; + requirements: Requirement[]; + productionTime: number; + boosters: any; + endProduct: string; + continuous: boolean; + count: number; + productionLimitCount: number; +} +export interface Requirement { + templateId?: string; + count?: number; + isFunctional?: boolean; + type: string; + areaType?: number; + requiredLevel?: number; + resource?: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutPutItemInRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutPutItemInRequestData.d.ts new file mode 100644 index 0000000..8326c55 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutPutItemInRequestData.d.ts @@ -0,0 +1,10 @@ +export interface IHideoutPutItemInRequestData { + Action: "HideoutPutItemsInAreaSlots"; + areaType: number; + items: Record; + timestamp: number; +} +export interface ItemDetails { + count: number; + id: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutScavCase.d.ts b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutScavCase.d.ts new file mode 100644 index 0000000..25abcf3 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutScavCase.d.ts @@ -0,0 +1,21 @@ +export interface IHideoutScavCase { + _id: string; + ProductionTime: number; + Requirements: Requirement[]; + EndProducts: EndProducts; +} +export interface Requirement { + templateId: string; + count: number; + isFunctional: boolean; + type: string; +} +export interface EndProducts { + Common: MinMax; + Rare: MinMax; + Superrare: MinMax; +} +export interface MinMax { + min: string; + max: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutScavCaseStartRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutScavCaseStartRequestData.d.ts new file mode 100644 index 0000000..72fda86 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutScavCaseStartRequestData.d.ts @@ -0,0 +1,15 @@ +export interface IHideoutScavCaseStartRequestData { + Action: "HideoutScavCaseProductionStart"; + recipeId: string; + items: HideoutItem[]; + tools: Tool[]; + timestamp: number; +} +export interface HideoutItem { + id: string; + count: number; +} +export interface Tool { + id: string; + count: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutSettingsBase.d.ts b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutSettingsBase.d.ts new file mode 100644 index 0000000..8e45939 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutSettingsBase.d.ts @@ -0,0 +1,6 @@ +export interface IHideoutSettingsBase { + generatorSpeedWithoutFuel: number; + generatorFuelFlowRate: number; + airFilterUnitFlowRate: number; + gpuBoostRate: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutSingleProductionStartRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutSingleProductionStartRequestData.d.ts new file mode 100644 index 0000000..1ed542a --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutSingleProductionStartRequestData.d.ts @@ -0,0 +1,10 @@ +export interface IHideoutSingleProductionStartRequestData { + Action: "HideoutSingleProductionStart"; + recipeId: string; + items: Item[]; + timestamp: number; +} +export interface Item { + id: string; + count: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutTakeItemOutRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutTakeItemOutRequestData.d.ts new file mode 100644 index 0000000..83a740a --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutTakeItemOutRequestData.d.ts @@ -0,0 +1,6 @@ +export interface IHideoutTakeItemOutRequestData { + Action: "HideoutTakeItemsFromAreaSlots"; + areaType: number; + slots: number[]; + timestamp: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutTakeProductionRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutTakeProductionRequestData.d.ts new file mode 100644 index 0000000..a6847ef --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutTakeProductionRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IHideoutTakeProductionRequestData { + Action: "HideoutTakeProduction"; + recipeId: string; + timestamp: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutToggleAreaRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutToggleAreaRequestData.d.ts new file mode 100644 index 0000000..cdea513 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutToggleAreaRequestData.d.ts @@ -0,0 +1,6 @@ +export interface IHideoutToggleAreaRequestData { + Action: "HideoutToggleArea"; + areaType: number; + enabled: boolean; + timestamp: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutUpgradeCompleteRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutUpgradeCompleteRequestData.d.ts new file mode 100644 index 0000000..545311e --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutUpgradeCompleteRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IHideoutUpgradeCompleteRequestData { + Action: "HideoutUpgradeComplete"; + areaType: number; + timestamp: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutUpgradeRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutUpgradeRequestData.d.ts new file mode 100644 index 0000000..dfbfdca --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/hideout/IHideoutUpgradeRequestData.d.ts @@ -0,0 +1,10 @@ +export interface IHideoutUpgradeRequestData { + Action: "HideoutUpgrade"; + areaType: number; + items: HideoutItem[]; + timestamp: number; +} +export interface HideoutItem { + count: number; + id: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/httpResponse/IGetBodyResponseData.d.ts b/TypeScript/13AddTrader/types/models/eft/httpResponse/IGetBodyResponseData.d.ts new file mode 100644 index 0000000..b5dc5c1 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/httpResponse/IGetBodyResponseData.d.ts @@ -0,0 +1,5 @@ +export interface IGetBodyResponseData { + err: number; + errmsg: any; + (data: Type): Type; +} diff --git a/TypeScript/13AddTrader/types/models/eft/httpResponse/INullResponseData.d.ts b/TypeScript/13AddTrader/types/models/eft/httpResponse/INullResponseData.d.ts new file mode 100644 index 0000000..a3ae838 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/httpResponse/INullResponseData.d.ts @@ -0,0 +1,5 @@ +export interface INullResponseData { + err: number; + errmsg: any; + data: null; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inRaid/IRegisterPlayerRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inRaid/IRegisterPlayerRequestData.d.ts new file mode 100644 index 0000000..e2d9cf1 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inRaid/IRegisterPlayerRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IRegisterPlayerRequestData { + crc: number; + locationId: string; + variantId: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inRaid/ISaveProgressRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inRaid/ISaveProgressRequestData.d.ts new file mode 100644 index 0000000..6930261 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inRaid/ISaveProgressRequestData.d.ts @@ -0,0 +1,8 @@ +import { IPmcData } from "../common/IPmcData"; +import { ISyncHealthRequestData } from "../health/ISyncHealthRequestData"; +export interface ISaveProgressRequestData { + exit: string; + profile: IPmcData; + isPlayerScav: boolean; + health: ISyncHealthRequestData; +} diff --git a/TypeScript/13AddTrader/types/models/eft/insurance/IGetInsuranceCostRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/insurance/IGetInsuranceCostRequestData.d.ts new file mode 100644 index 0000000..0e32e96 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/insurance/IGetInsuranceCostRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IGetInsuranceCostRequestData { + traders: string[]; + items: string[]; +} diff --git a/TypeScript/13AddTrader/types/models/eft/insurance/IInsureRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/insurance/IInsureRequestData.d.ts new file mode 100644 index 0000000..f657bb7 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/insurance/IInsureRequestData.d.ts @@ -0,0 +1,6 @@ +import { IBaseInteractionRequestData } from "../common/request/IBaseInteractionRequestData"; +export interface IInsureRequestData extends IBaseInteractionRequestData { + Action: "Insure"; + tid: string; + items: string[]; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inventory/IAddItemRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inventory/IAddItemRequestData.d.ts new file mode 100644 index 0000000..53db97a --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inventory/IAddItemRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IAddItemRequestData { + tid: string; + items: any[]; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryAddRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryAddRequestData.d.ts new file mode 100644 index 0000000..462e0de --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryAddRequestData.d.ts @@ -0,0 +1,6 @@ +import { Container, IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryAddRequestData extends IInventoryBaseActionRequestData { + Action: "Add"; + item: string; + container: Container; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryBaseActionRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryBaseActionRequestData.d.ts new file mode 100644 index 0000000..b45e459 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryBaseActionRequestData.d.ts @@ -0,0 +1,27 @@ +import { IBaseInteractionRequestData } from "../common/request/IBaseInteractionRequestData"; +export interface IInventoryBaseActionRequestData extends IBaseInteractionRequestData { +} +export interface To { + id: string; + container: string; + location?: ToLocation | number; +} +export interface ToLocation { + x: number; + y: number; + r: string; + rotation?: string; + isSearched: boolean; +} +export interface Container { + id: string; + container: string; + location: Location | number; +} +export interface Location { + x: number; + y: number; + r: string; + rotation?: string; + isSearched: boolean; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryBindRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryBindRequestData.d.ts new file mode 100644 index 0000000..ff35066 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryBindRequestData.d.ts @@ -0,0 +1,6 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryBindRequestData extends IInventoryBaseActionRequestData { + Action: "Bind"; + item: string; + index: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryCreateMarkerRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryCreateMarkerRequestData.d.ts new file mode 100644 index 0000000..1e1ecef --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryCreateMarkerRequestData.d.ts @@ -0,0 +1,12 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryCreateMarkerRequestData extends IInventoryBaseActionRequestData { + Action: "CreateMapMarker"; + item: string; + mapMarker: MapMarker; +} +export interface MapMarker { + Type: string; + X: number; + Y: number; + Note: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryDeleteMarkerRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryDeleteMarkerRequestData.d.ts new file mode 100644 index 0000000..0657e1b --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryDeleteMarkerRequestData.d.ts @@ -0,0 +1,7 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryDeleteMarkerRequestData extends IInventoryBaseActionRequestData { + Action: "DeleteMapMarker"; + item: string; + X: number; + Y: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryEditMarkerRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryEditMarkerRequestData.d.ts new file mode 100644 index 0000000..e2857e1 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryEditMarkerRequestData.d.ts @@ -0,0 +1,14 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryEditMarkerRequestData extends IInventoryBaseActionRequestData { + Action: "EditMapMarker"; + item: string; + X: number; + Y: number; + mapMarker: MapMarker; +} +export interface MapMarker { + Type: string; + X: number; + Y: number; + Note: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryExamineRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryExamineRequestData.d.ts new file mode 100644 index 0000000..614711f --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryExamineRequestData.d.ts @@ -0,0 +1,10 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryExamineRequestData extends IInventoryBaseActionRequestData { + Action: "Examine"; + item: string; + fromOwner: IFromOwner; +} +export interface IFromOwner { + id: string; + type: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryFoldRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryFoldRequestData.d.ts new file mode 100644 index 0000000..a5fb2a1 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryFoldRequestData.d.ts @@ -0,0 +1,6 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryFoldRequestData extends IInventoryBaseActionRequestData { + Action: "Fold"; + item: string; + value: boolean; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryMergeRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryMergeRequestData.d.ts new file mode 100644 index 0000000..3fcfa35 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryMergeRequestData.d.ts @@ -0,0 +1,6 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryMergeRequestData extends IInventoryBaseActionRequestData { + Action: "Merge"; + item: string; + with: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryMoveRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryMoveRequestData.d.ts new file mode 100644 index 0000000..b767908 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryMoveRequestData.d.ts @@ -0,0 +1,6 @@ +import { IInventoryBaseActionRequestData, To } from "./IInventoryBaseActionRequestData"; +export interface IInventoryMoveRequestData extends IInventoryBaseActionRequestData { + Action: "Move"; + item: string; + to: To; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryReadEncyclopediaRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryReadEncyclopediaRequestData.d.ts new file mode 100644 index 0000000..5487b20 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryReadEncyclopediaRequestData.d.ts @@ -0,0 +1,5 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryReadEncyclopediaRequestData extends IInventoryBaseActionRequestData { + Action: "ReadEncyclopedia"; + ids: string[]; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryRemoveRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryRemoveRequestData.d.ts new file mode 100644 index 0000000..07d1a52 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryRemoveRequestData.d.ts @@ -0,0 +1,5 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryRemoveRequestData extends IInventoryBaseActionRequestData { + Action: "Remove"; + item: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inventory/IInventorySortRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inventory/IInventorySortRequestData.d.ts new file mode 100644 index 0000000..a0b7928 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inventory/IInventorySortRequestData.d.ts @@ -0,0 +1,20 @@ +import { Upd } from "../common/tables/IItem"; +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventorySortRequestData extends IInventoryBaseActionRequestData { + Action: "ApplyInventoryChanges"; + changedItems: ChangedItem[]; +} +export interface ChangedItem { + _id: string; + _tpl: string; + parentId: string; + slotId: string; + location: Location; + upd: Upd; +} +export interface Location { + x: number; + y: number; + r: string; + isSearched: boolean; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inventory/IInventorySplitRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inventory/IInventorySplitRequestData.d.ts new file mode 100644 index 0000000..730ae71 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inventory/IInventorySplitRequestData.d.ts @@ -0,0 +1,7 @@ +import { Container, IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventorySplitRequestData extends IInventoryBaseActionRequestData { + Action: "Split"; + item: string; + container: Container; + count: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inventory/IInventorySwapRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inventory/IInventorySwapRequestData.d.ts new file mode 100644 index 0000000..1b0464d --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inventory/IInventorySwapRequestData.d.ts @@ -0,0 +1,11 @@ +import { OwnerInfo } from "../common/request/IBaseInteractionRequestData"; +import { IInventoryBaseActionRequestData, To } from "./IInventoryBaseActionRequestData"; +export interface IInventorySwapRequestData extends IInventoryBaseActionRequestData { + Action: "Swap"; + item: string; + to: To; + item2: string; + to2: To; + fromOwner2: OwnerInfo; + toOwner2: OwnerInfo; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryTagRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryTagRequestData.d.ts new file mode 100644 index 0000000..f021661 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryTagRequestData.d.ts @@ -0,0 +1,7 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryTagRequestData extends IInventoryBaseActionRequestData { + Action: "Tag"; + item: string; + TagName: string; + TagColor: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryToggleRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryToggleRequestData.d.ts new file mode 100644 index 0000000..0955440 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryToggleRequestData.d.ts @@ -0,0 +1,6 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryToggleRequestData extends IInventoryBaseActionRequestData { + Action: "Toggle"; + item: string; + value: boolean; +} diff --git a/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryTransferRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryTransferRequestData.d.ts new file mode 100644 index 0000000..cf4391b --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/inventory/IInventoryTransferRequestData.d.ts @@ -0,0 +1,7 @@ +import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData"; +export interface IInventoryTransferRequestData extends IInventoryBaseActionRequestData { + Action: "Transfer"; + item: string; + with: string; + count: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/itemEvent/IEmptyItemEventRouterResponse.d.ts b/TypeScript/13AddTrader/types/models/eft/itemEvent/IEmptyItemEventRouterResponse.d.ts new file mode 100644 index 0000000..689fe75 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/itemEvent/IEmptyItemEventRouterResponse.d.ts @@ -0,0 +1,4 @@ +import { IItemEventRouterBase } from "./IItemEventRouterBase"; +export interface IEmptyItemEventRouterResponse extends IItemEventRouterBase { + profileChanges: ""; +} diff --git a/TypeScript/13AddTrader/types/models/eft/itemEvent/IItemEventRouterBase.d.ts b/TypeScript/13AddTrader/types/models/eft/itemEvent/IItemEventRouterBase.d.ts new file mode 100644 index 0000000..31e62fe --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/itemEvent/IItemEventRouterBase.d.ts @@ -0,0 +1,67 @@ +import { Skills } from "../common/IPmcData"; +import { Item, Upd } from "../common/tables/IItem"; +import { IQuest } from "../common/tables/IQuest"; +import { IPmcDataRepeatableQuest } from "../common/tables/IRepeatableQuests"; +import { IRagfairOffer } from "../ragfair/IRagfairOffer"; +export interface IItemEventRouterBase { + warnings: Warning[]; + profileChanges: TProfileChanges | ""; +} +export declare type TProfileChanges = Record; +export interface Warning { + index: number; + err: string; + errmsg: string; +} +export interface ProfileChange { + _id: string; + experience: number; + quests: IQuest[]; + ragFairOffers: IRagfairOffer[]; + builds: BuildChange[]; + items: ItemChanges; + production: Record; + skills: Skills; + traderRelations: Record; + repeatableQuests?: IPmcDataRepeatableQuest[]; +} +export interface BuildChange { + id: string; + name: string; + root: string; + items: Item[]; +} +export interface ItemChanges { + new: Product[]; + change: Product[]; + del: Product[]; +} +export interface Production { + Progress: number; + StartTimestamp: number; + ProductionTime: number; + inProgress: boolean; + RecipeId: string; + Products: Product[]; +} +export interface Product { + _id: string; + _tpl?: string; + parentId?: string; + slotId?: string; + location?: ItemChangeLocation; + upd?: Upd; +} +export interface ItemChangeLocation { + x: number; + y: number; + r: number; + isSearched?: boolean; +} +export interface TraderRelations { + salesSum?: number; + standing?: number; + loyalty?: number; + unlocked?: boolean; + disabled?: boolean; +} diff --git a/TypeScript/13AddTrader/types/models/eft/itemEvent/IItemEventRouterRequest.d.ts b/TypeScript/13AddTrader/types/models/eft/itemEvent/IItemEventRouterRequest.d.ts new file mode 100644 index 0000000..515b49a --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/itemEvent/IItemEventRouterRequest.d.ts @@ -0,0 +1,21 @@ +export interface IItemEventRouterRequest { + data: Daum[]; + tm: number; + reload: number; +} +export interface Daum { + Action: string; + item: string; + to: To; +} +export interface To { + id: string; + container: string; + location?: Location; +} +export interface Location { + x: number; + y: number; + r: string; + isSearched: boolean; +} diff --git a/TypeScript/13AddTrader/types/models/eft/itemEvent/IItemEventRouterResponse.d.ts b/TypeScript/13AddTrader/types/models/eft/itemEvent/IItemEventRouterResponse.d.ts new file mode 100644 index 0000000..72a9b5b --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/itemEvent/IItemEventRouterResponse.d.ts @@ -0,0 +1,3 @@ +import { IItemEventRouterBase } from "./IItemEventRouterBase"; +export interface IItemEventRouterResponse extends IItemEventRouterBase { +} diff --git a/TypeScript/13AddTrader/types/models/eft/launcher/IChangeRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/launcher/IChangeRequestData.d.ts new file mode 100644 index 0000000..f0a7838 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/launcher/IChangeRequestData.d.ts @@ -0,0 +1,4 @@ +import { ILoginRequestData } from "./ILoginRequestData"; +export interface IChangeRequestData extends ILoginRequestData { + change: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/launcher/IGetMiniProfileRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/launcher/IGetMiniProfileRequestData.d.ts new file mode 100644 index 0000000..a14c7c9 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/launcher/IGetMiniProfileRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IGetMiniProfileRequestData { + username: string; + password: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/launcher/ILoginRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/launcher/ILoginRequestData.d.ts new file mode 100644 index 0000000..e965813 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/launcher/ILoginRequestData.d.ts @@ -0,0 +1,4 @@ +export interface ILoginRequestData { + username: string; + password: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/launcher/IMiniProfile.d.ts b/TypeScript/13AddTrader/types/models/eft/launcher/IMiniProfile.d.ts new file mode 100644 index 0000000..c12661a --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/launcher/IMiniProfile.d.ts @@ -0,0 +1,14 @@ +export interface IMiniProfile { + username: string; + nickname: string; + side: string; + currlvl: number; + currexp: number; + prevexp: number; + nextlvl: number; + maxlvl: number; + akiData: AkiData; +} +export interface AkiData { + version: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/launcher/IRegisterData.d.ts b/TypeScript/13AddTrader/types/models/eft/launcher/IRegisterData.d.ts new file mode 100644 index 0000000..61a8bbe --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/launcher/IRegisterData.d.ts @@ -0,0 +1,4 @@ +import { ILoginRequestData } from "./ILoginRequestData"; +export interface IRegisterData extends ILoginRequestData { + edition: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/launcher/IRemoveProfileData.d.ts b/TypeScript/13AddTrader/types/models/eft/launcher/IRemoveProfileData.d.ts new file mode 100644 index 0000000..d31c9ac --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/launcher/IRemoveProfileData.d.ts @@ -0,0 +1,2 @@ +import { ILoginRequestData } from "./ILoginRequestData"; +export declare type IRemoveProfileData = ILoginRequestData; diff --git a/TypeScript/13AddTrader/types/models/eft/location/IGetLocationRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/location/IGetLocationRequestData.d.ts new file mode 100644 index 0000000..04e84d9 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/location/IGetLocationRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IGetLocationRequestData { + crc: number; + locationId: string; + variantId: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/match/IEndOfflineRaidRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/match/IEndOfflineRaidRequestData.d.ts new file mode 100644 index 0000000..811e9a2 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/match/IEndOfflineRaidRequestData.d.ts @@ -0,0 +1,6 @@ +export interface IEndOfflineRaidRequestData { + crc: number; + exitStatus: string; + exitName: any; + raidSeconds: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/match/IGetProfileRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/match/IGetProfileRequestData.d.ts new file mode 100644 index 0000000..86b5bbd --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/match/IGetProfileRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetProfileRequestData { + profileId: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/match/IStartOffineRaidRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/match/IStartOffineRaidRequestData.d.ts new file mode 100644 index 0000000..84bccc8 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/match/IStartOffineRaidRequestData.d.ts @@ -0,0 +1,27 @@ +export interface IStartOfflineRaidRequestData { + locationName: string; + entryPoint: string; + startTime: number; + dateTime: string; + gameSettings: GameSettings; +} +export interface GameSettings { + timeAndWeatherSettings: TimeAndWeatherSettings; + botsSettings: BotsSettings; + wavesSettings: WavesSettings; +} +export interface TimeAndWeatherSettings { + isRandomTime: boolean; + isRandomWeather: boolean; +} +export interface BotsSettings { + isEnabled: boolean; + isScavWars: boolean; + botAmount: string; +} +export interface WavesSettings { + botDifficulty: string; + isBosses: boolean; + isTaggedAndCursed: boolean; + wavesBotAmount: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/notes/INoteActionData.d.ts b/TypeScript/13AddTrader/types/models/eft/notes/INoteActionData.d.ts new file mode 100644 index 0000000..610657f --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/notes/INoteActionData.d.ts @@ -0,0 +1,10 @@ +import { IBaseInteractionRequestData } from "../common/request/IBaseInteractionRequestData"; +export interface INoteActionData extends IBaseInteractionRequestData { + Action: string; + index: number; + note: INote; +} +export interface INote { + Time: number; + Text: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/notifier/INotifier.d.ts b/TypeScript/13AddTrader/types/models/eft/notifier/INotifier.d.ts new file mode 100644 index 0000000..8c48260 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/notifier/INotifier.d.ts @@ -0,0 +1,14 @@ +export interface INotifierChannel { + "server": string; + "channel_id": string; + "url": string; + "notifierServer": string; + "ws": string; +} +import { Message } from "../profile/IAkiProfile"; +export interface INotification { + type: "RagfairOfferSold" | "new_message" | "ping"; + eventId: string; + dialogId?: string; + message?: Message; +} diff --git a/TypeScript/13AddTrader/types/models/eft/notifier/ISelectProfileRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/notifier/ISelectProfileRequestData.d.ts new file mode 100644 index 0000000..2bc3d1e --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/notifier/ISelectProfileRequestData.d.ts @@ -0,0 +1,3 @@ +export interface ISelectProfileRequestData { + uid: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/player/IPlayerIncrementSkillLevelRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/player/IPlayerIncrementSkillLevelRequestData.d.ts new file mode 100644 index 0000000..dcd14a2 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/player/IPlayerIncrementSkillLevelRequestData.d.ts @@ -0,0 +1,21 @@ +import { Skills } from "../common/IPmcData"; +export interface IPlayerIncrementSkillLevelRequestData { + _id: string; + experience: number; + quests: any[]; + ragFairOffers: any[]; + builds: any[]; + items: Items; + production: Production; + skills: Skills; + traderRelations: TraderRelations; +} +export interface Items { + new: any[]; + change: any[]; + del: any[]; +} +export interface Production { +} +export interface TraderRelations { +} diff --git a/TypeScript/13AddTrader/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts new file mode 100644 index 0000000..99c61f1 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts @@ -0,0 +1,25 @@ +export interface IPresetBuildActionRequestData { + Action: string; + id: string; + name: string; + root: string; + items: Item[]; +} +export interface Item { + _id: string; + _tpl: string; + upd?: Upd; + parentId?: string; + slotId?: string; +} +export interface Upd { + Repairable: Repairable; + FireMode: FireMode; +} +export interface Repairable { + MaxDurability: number; + Durability: number; +} +export interface FireMode { + FireMode: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/profile/IAkiProfile.d.ts b/TypeScript/13AddTrader/types/models/eft/profile/IAkiProfile.d.ts new file mode 100644 index 0000000..80dd02d --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/models/eft/profile/IProfileChangeNicknameRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/profile/IProfileChangeNicknameRequestData.d.ts new file mode 100644 index 0000000..4a61196 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/profile/IProfileChangeNicknameRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IProfileChangeNicknameRequestData { + nickname: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/profile/IProfileChangeVoiceRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/profile/IProfileChangeVoiceRequestData.d.ts new file mode 100644 index 0000000..91058ce --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/profile/IProfileChangeVoiceRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IProfileChangeVoiceRequestData { + voice: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/profile/IProfileCreateRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/profile/IProfileCreateRequestData.d.ts new file mode 100644 index 0000000..93cc656 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/profile/IProfileCreateRequestData.d.ts @@ -0,0 +1,6 @@ +export interface IProfileCreateRequestData { + side: string; + nickname: string; + headId: string; + voiceId: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/profile/ISearchFriendRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/profile/ISearchFriendRequestData.d.ts new file mode 100644 index 0000000..e63e386 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/profile/ISearchFriendRequestData.d.ts @@ -0,0 +1,3 @@ +export interface ISearchFriendRequestData { + nickname: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/profile/ISearchFriendResponse.d.ts b/TypeScript/13AddTrader/types/models/eft/profile/ISearchFriendResponse.d.ts new file mode 100644 index 0000000..96d88b2 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/profile/ISearchFriendResponse.d.ts @@ -0,0 +1,9 @@ +export interface ISearchFriendResponse { + _id: string; + Info: Info; +} +export interface Info { + Nickname: string; + Side: string; + Level: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/profile/IValidateNicknameRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/profile/IValidateNicknameRequestData.d.ts new file mode 100644 index 0000000..9cca7e7 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/profile/IValidateNicknameRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IValidateNicknameRequestData { + nickname: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/quests/IAcceptQuestRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/quests/IAcceptQuestRequestData.d.ts new file mode 100644 index 0000000..0e4821a --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/quests/IAcceptQuestRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IAcceptQuestRequestData { + Action: "QuestAccept"; + qid: string; + type: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/quests/ICompleteQuestRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/quests/ICompleteQuestRequestData.d.ts new file mode 100644 index 0000000..cc67404 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/quests/ICompleteQuestRequestData.d.ts @@ -0,0 +1,5 @@ +export interface ICompleteQuestRequestData { + Action: string; + qid: string; + removeExcessItems: boolean; +} diff --git a/TypeScript/13AddTrader/types/models/eft/quests/IHandoverQuestRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/quests/IHandoverQuestRequestData.d.ts new file mode 100644 index 0000000..63f10a8 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/quests/IHandoverQuestRequestData.d.ts @@ -0,0 +1,10 @@ +export interface IHandoverQuestRequestData { + Action: "QuestHandover"; + qid: string; + conditionId: string; + items: Item[]; +} +export interface Item { + id: string; + count: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/quests/IListQuestsRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/quests/IListQuestsRequestData.d.ts new file mode 100644 index 0000000..91f0b8c --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/quests/IListQuestsRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IListQuestsRequestData { + completed: boolean; +} diff --git a/TypeScript/13AddTrader/types/models/eft/quests/IRepeatableQuestChangeRequest.d.ts b/TypeScript/13AddTrader/types/models/eft/quests/IRepeatableQuestChangeRequest.d.ts new file mode 100644 index 0000000..015f58e --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/quests/IRepeatableQuestChangeRequest.d.ts @@ -0,0 +1,4 @@ +export interface IRepeatableQuestChangeRequest { + Action: "RepeatableQuestChange"; + qid: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/ragfair/IAddOfferRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/ragfair/IAddOfferRequestData.d.ts new file mode 100644 index 0000000..465ee02 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/ragfair/IAddOfferRequestData.d.ts @@ -0,0 +1,13 @@ +export interface IAddOfferRequestData { + Action: string; + sellInOnePiece: boolean; + items: string[]; + requirements: Requirement[]; +} +export interface Requirement { + _tpl: string; + count: number; + level: number; + side: number; + onlyFunctional: boolean; +} diff --git a/TypeScript/13AddTrader/types/models/eft/ragfair/IExtendOfferRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/ragfair/IExtendOfferRequestData.d.ts new file mode 100644 index 0000000..2a4a876 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/ragfair/IExtendOfferRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IExtendOfferRequestData { + offerId: string; + renewalTime: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/ragfair/IGetItemPriceResult.d.ts b/TypeScript/13AddTrader/types/models/eft/ragfair/IGetItemPriceResult.d.ts new file mode 100644 index 0000000..676322a --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/ragfair/IGetItemPriceResult.d.ts @@ -0,0 +1,5 @@ +export interface IGetItemPriceResult { + avg: number; + min: number; + max: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/ragfair/IGetMarketPriceRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/ragfair/IGetMarketPriceRequestData.d.ts new file mode 100644 index 0000000..00f8f17 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/ragfair/IGetMarketPriceRequestData.d.ts @@ -0,0 +1,3 @@ +export interface IGetMarketPriceRequestData { + templateId: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/ragfair/IGetOffersResult.d.ts b/TypeScript/13AddTrader/types/models/eft/ragfair/IGetOffersResult.d.ts new file mode 100644 index 0000000..1c11422 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/ragfair/IGetOffersResult.d.ts @@ -0,0 +1,7 @@ +import { IRagfairOffer } from "./IRagfairOffer"; +export interface IGetOffersResult { + categories: Record; + offers: IRagfairOffer[]; + offersCount: number; + selectedCategory: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/ragfair/IRagfairOffer.d.ts b/TypeScript/13AddTrader/types/models/eft/ragfair/IRagfairOffer.d.ts new file mode 100644 index 0000000..63f655e --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/ragfair/IRagfairOffer.d.ts @@ -0,0 +1,42 @@ +import { MemberCategory } from "../../enums/MemberCategory"; +import { Item } from "../common/tables/IItem"; +export interface IRagfairOffer { + sellResult?: SellResult[]; + _id: string; + items: Item[]; + requirements: OfferRequirement[]; + root: string; + intId: number; + itemsCost: number; + requirementsCost: number; + startTime: number; + endTime: number; + sellInOnePiece: boolean; + name?: string; + shortName?: string; + loyaltyLevel: number; + locked: boolean; + unlimitedCount: boolean; + summaryCost: number; + user: IRagfairOfferUser; + notAvailable: boolean; + CurrentItemCount: number; + priority: boolean; +} +export interface OfferRequirement { + _tpl: string; + count: number; + onlyFunctional: boolean; +} +export interface IRagfairOfferUser { + id: string; + nickname: string; + rating: number; + memberType: MemberCategory; + avatar: string; + isRatingGrowing: boolean; +} +export interface SellResult { + sellTime: number; + amount: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/ragfair/IRemoveOfferRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/ragfair/IRemoveOfferRequestData.d.ts new file mode 100644 index 0000000..d926615 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/ragfair/IRemoveOfferRequestData.d.ts @@ -0,0 +1,4 @@ +export interface IRemoveOfferRequestData { + Action: string; + offerId: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/ragfair/ISearchRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/ragfair/ISearchRequestData.d.ts new file mode 100644 index 0000000..08e7fd3 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/ragfair/ISearchRequestData.d.ts @@ -0,0 +1,32 @@ +export interface ISearchRequestData { + page: number; + limit: number; + sortType: number; + sortDirection: number; + currency: number; + priceFrom: number; + priceTo: number; + quantityFrom: number; + quantityTo: number; + conditionFrom: number; + conditionTo: number; + oneHourExpiration: boolean; + removeBartering: boolean; + offerOwnerType: OfferOwnerType; + onlyFunctional: boolean; + updateOfferCount: boolean; + handbookId: string; + linkedSearchId: string; + neededSearchId: string; + buildItems: BuildItems; + buildCount: number; + tm: number; + reload: number; +} +export declare enum OfferOwnerType { + ANYOWNERTYPE = 0, + TRADEROWNERTYPE = 1, + PLAYEROWNERTYPE = 2 +} +export interface BuildItems { +} diff --git a/TypeScript/13AddTrader/types/models/eft/repair/IBaseRepairActionDataRequest.d.ts b/TypeScript/13AddTrader/types/models/eft/repair/IBaseRepairActionDataRequest.d.ts new file mode 100644 index 0000000..e645fb3 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/repair/IBaseRepairActionDataRequest.d.ts @@ -0,0 +1,3 @@ +export interface IBaseRepairActionDataRequest { + Action: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/repair/IRepairActionDataRequest.d.ts b/TypeScript/13AddTrader/types/models/eft/repair/IRepairActionDataRequest.d.ts new file mode 100644 index 0000000..263d400 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/repair/IRepairActionDataRequest.d.ts @@ -0,0 +1,10 @@ +import { IBaseRepairActionDataRequest } from "./IBaseRepairActionDataRequest"; +export interface IRepairActionDataRequest extends IBaseRepairActionDataRequest { + Action: "Repair"; + repairKitsInfo: RepairKitsInfo[]; + target: string; +} +export interface RepairKitsInfo { + _id: string; + count: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/repair/ITraderRepairActionDataRequest.d.ts b/TypeScript/13AddTrader/types/models/eft/repair/ITraderRepairActionDataRequest.d.ts new file mode 100644 index 0000000..e3d469d --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/repair/ITraderRepairActionDataRequest.d.ts @@ -0,0 +1,10 @@ +import { IBaseRepairActionDataRequest } from "./IBaseRepairActionDataRequest"; +export interface ITraderRepairActionDataRequest extends IBaseRepairActionDataRequest { + Action: "TraderRepair"; + tid: string; + repairItems: RepairItem[]; +} +export interface RepairItem { + _id: string; + count: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/trade/IProcessBaseTradeRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/trade/IProcessBaseTradeRequestData.d.ts new file mode 100644 index 0000000..a9ef757 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/trade/IProcessBaseTradeRequestData.d.ts @@ -0,0 +1,5 @@ +export interface IProcessBaseTradeRequestData { + Action: string; + type: string; + tid: string; +} diff --git a/TypeScript/13AddTrader/types/models/eft/trade/IProcessBuyTradeRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/trade/IProcessBuyTradeRequestData.d.ts new file mode 100644 index 0000000..a9e4c17 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/trade/IProcessBuyTradeRequestData.d.ts @@ -0,0 +1,14 @@ +import { IProcessBaseTradeRequestData } from "./IProcessBaseTradeRequestData"; +export interface IProcessBuyTradeRequestData extends IProcessBaseTradeRequestData { + Action: "buy_from_trader" | "TradingConfirm" | "RestoreHealth" | ""; + type: string; + tid: string; + item_id: string; + count: number; + scheme_id: number; + scheme_items: SchemeItem[]; +} +export interface SchemeItem { + id: string; + count: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/trade/IProcessRagfairTradeRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/trade/IProcessRagfairTradeRequestData.d.ts new file mode 100644 index 0000000..889dfd1 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/trade/IProcessRagfairTradeRequestData.d.ts @@ -0,0 +1,13 @@ +export interface IProcessRagfairTradeRequestData { + Action: string; + offers: Offer[]; +} +export interface Offer { + id: string; + count: number; + items: Item[]; +} +export interface Item { + id: string; + count: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/trade/IProcessSellTradeRequestData.d.ts b/TypeScript/13AddTrader/types/models/eft/trade/IProcessSellTradeRequestData.d.ts new file mode 100644 index 0000000..f1d555f --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/trade/IProcessSellTradeRequestData.d.ts @@ -0,0 +1,12 @@ +import { IProcessBaseTradeRequestData } from "./IProcessBaseTradeRequestData"; +export interface IProcessSellTradeRequestData extends IProcessBaseTradeRequestData { + Action: "sell_to_trader"; + type: string; + tid: string; + items: Item[]; +} +export interface Item { + id: string; + count: number; + scheme_id: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/weather/IWeatherData.d.ts b/TypeScript/13AddTrader/types/models/eft/weather/IWeatherData.d.ts new file mode 100644 index 0000000..ecc96ce --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/weather/IWeatherData.d.ts @@ -0,0 +1,20 @@ +export interface IWeatherData { + acceleration: number; + time: string; + date: string; + weather: IWeather; +} +export interface IWeather { + pressure: number; + temp: number; + fog: string; + rain_intensity: number; + rain: any; + wind_gustiness: number; + wind_direction: any; + wind_speed: number; + cloud: number; + time: string; + date: string; + timestamp: number; +} diff --git a/TypeScript/13AddTrader/types/models/eft/wishlist/IWishlistActionData.d.ts b/TypeScript/13AddTrader/types/models/eft/wishlist/IWishlistActionData.d.ts new file mode 100644 index 0000000..9217864 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/eft/wishlist/IWishlistActionData.d.ts @@ -0,0 +1,4 @@ +export interface IWishlistActionData { + Action: string; + templateId: string; +} diff --git a/TypeScript/13AddTrader/types/models/enums/BaseClasses.d.ts b/TypeScript/13AddTrader/types/models/enums/BaseClasses.d.ts new file mode 100644 index 0000000..e733bca --- /dev/null +++ b/TypeScript/13AddTrader/types/models/enums/BaseClasses.d.ts @@ -0,0 +1,84 @@ +export declare enum BaseClasses { + WEAPON = "5422acb9af1c889c16000029", + ARMOR = "5448e54d4bdc2dcc718b4568", + VEST = "5448e5284bdc2dcb718b4567", + BACKPACK = "5448e53e4bdc2d60728b4567", + VISORS = "5448e5724bdc2ddf718b4568", + FOOD = "5448e8d04bdc2ddf718b4569", + DRINK = "5448e8d64bdc2dce718b4568", + BARTER_ITEM = "5448eb774bdc2d0a728b4567", + INFO = "5448ecbe4bdc2d60728b4568", + MEDKIT = "5448f39d4bdc2d0a728b4568", + DRUGS = "5448f3a14bdc2d27728b4569", + STIMULATOR = "5448f3a64bdc2d60728b456a", + MEDICAL = "5448f3ac4bdc2dce718b4569", + MEDICAL_SUPPLIES = "57864c8c245977548867e7f1", + MOD = "5448fe124bdc2da5018b4567", + FUNCTIONAL_MOD = "550aa4154bdc2dd8348b456b", + FUEL = "5d650c3e815116009f6201d2", + GEAR_MOD = "55802f3e4bdc2de7118b4584", + STOCK = "55818a594bdc2db9688b456a", + FOREGRIP = "55818af64bdc2d5b648b4570", + MASTER_MOD = "55802f4a4bdc2ddb688b4569", + MOUNT = "55818b224bdc2dde698b456f", + MUZZLE = "5448fe394bdc2d0d028b456c", + SIGHTS = "5448fe7a4bdc2d6f028b456b", + MEDS = "543be5664bdc2dd4348b4569", + MONEY = "543be5dd4bdc2deb348b4569", + KEY = "543be5e94bdc2df1348b4568", + KEY_MECHANICAL = "5c99f98d86f7745c314214b3", + KEYCARD = "5c164d2286f774194c5e69fa", + EQUIPMENT = "543be5f84bdc2dd4348b456a", + THROW_WEAPON = "543be6564bdc2df4348b4568", + FOOD_DRINK = "543be6674bdc2df1348b4569", + PISTOL = "5447b5cf4bdc2d65278b4567", + SMG = "5447b5e04bdc2d62278b4567", + ASSAULT_RIFLE = "5447b5f14bdc2d61278b4567", + ASSAULT_CARBINE = "5447b5fc4bdc2d87278b4567", + SHOTGUN = "5447b6094bdc2dc3278b4567", + MARKSMAN_RIFLE = "5447b6194bdc2d67278b4567", + SNIPER_RIFLE = "5447b6254bdc2dc3278b4568", + MACHINE_GUN = "5447bed64bdc2d97278b4568", + GRENADE_LAUNCHER = "5447bedf4bdc2d87278b4568", + SPECIAL_WEAPON = "5447bee84bdc2dc3278b4569", + SPEC_ITEM = "5447e0e74bdc2d3c308b4567", + KNIFE = "5447e1d04bdc2dff2f8b4567", + AMMO = "5485a8684bdc2da71d8b4567", + AMMO_BOX = "543be5cb4bdc2deb348b4568", + LOOT_CONTAINER = "566965d44bdc2d814c8b4571", + MOD_CONTAINER = "5448bf274bdc2dfc2f8b456a", + SEARCHABLE_ITEM = "566168634bdc2d144c8b456c", + STASH = "566abbb64bdc2d144c8b457d", + SORTING_TABLE = "6050cac987d3f925bf016837", + LOCKABLE_CONTAINER = "5671435f4bdc2d96058b4569", + SIMPLE_CONTAINER = "5795f317245977243854e041", + INVENTORY = "55d720f24bdc2d88028b456d", + STATIONARY_CONTAINER = "567583764bdc2d98058b456e", + POCKETS = "557596e64bdc2dc2118b4571", + ARMBAND = "5b3f15d486f77432d0509248", + DOG_TAG_USEC = "59f32c3b86f77472a31742f0", + DOG_TAG_BEAR = "59f32bb586f774757e1e8442", + JEWELRY = "57864a3d24597754843f8721", + ELECTRONICS = "57864a66245977548f04a81f", + BUILDING_MATERIAL = "57864ada245977548638de91", + TOOL = "57864bb7245977548b3b66c2", + HOUSEHOLD_GOODS = "57864c322459775490116fbf", + LUBRICANT = "57864e4c24597754843f8723", + BATTERY = "57864ee62459775490116fc1", + ASSAULT_SCOPE = "55818add4bdc2d5b648b456f", + REFLEX_SIGHT = "55818ad54bdc2ddc698b4569", + TACTICAL_COMBO = "55818b164bdc2ddc698b456c", + MAGAZINE = "5448bc234bdc2d3c308b4569", + LIGHT_LASER = "55818b0e4bdc2dde698b456e", + FLASH_HIDER = "550aa4bf4bdc2dd6348b456b", + COLLIMATOR = "55818ad54bdc2ddc698b4569", + COMPACT_COLLIMATOR = "55818acf4bdc2dde698b456b", + COMPENSATOR = "550aa4af4bdc2dd4348b456e", + OPTIC_SCOPE = "55818ae44bdc2dde698b456c", + SPECIAL_SCOPE = "55818aeb4bdc2ddc698b456a", + OTHER = "590c745b86f7743cc433c5f2", + SILENCER = "550aa4cd4bdc2dd8348b456c", + PORTABLE_RANGE_FINDER = "61605ddea09d851a0a0c1bbc", + ITEM = "54009119af1c881c07000029", + CYLINDER_MAGAZINE = "610720f290b75a49ff2e5e25" +} diff --git a/TypeScript/13AddTrader/types/models/enums/ConfigTypes.d.ts b/TypeScript/13AddTrader/types/models/enums/ConfigTypes.d.ts new file mode 100644 index 0000000..6bd31e8 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/models/enums/ELocationName.d.ts b/TypeScript/13AddTrader/types/models/enums/ELocationName.d.ts new file mode 100644 index 0000000..b56cc08 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/enums/ELocationName.d.ts @@ -0,0 +1,11 @@ +export declare enum ELocationName { + FACTORY_DAY = "factory4_day", + BIGMAP = "bigmap", + WOODS = "Woods", + SHORELINE = "Shoreline", + INTERCHANGE = "Interchange", + LIGHTHOUSE = "Lighthouse", + LABORATORY = "laboratory", + RESERVE = "RezervBase", + ANY = "any" +} diff --git a/TypeScript/13AddTrader/types/models/enums/EquipmentSlots.d.ts b/TypeScript/13AddTrader/types/models/enums/EquipmentSlots.d.ts new file mode 100644 index 0000000..35c18ff --- /dev/null +++ b/TypeScript/13AddTrader/types/models/enums/EquipmentSlots.d.ts @@ -0,0 +1,16 @@ +export declare enum EquipmentSlots { + HEADWEAR = "Headwear", + EARPIECE = "Earpiece", + FACE_COVER = "FaceCover", + ARMOR_VEST = "ArmorVest", + EYEWEAR = "Eyewear", + ARM_BAND = "ArmBand", + TACTICAL_VEST = "TacticalVest", + POCKETS = "Pockets", + BACKPACK = "Backpack", + SECURED_CONTAINER = "SecuredContainer", + FIRST_PRIMARY_WEAPON = "FirstPrimaryWeapon", + SECOND_PRIMARY_WEAPON = "SecondPrimaryWeapon", + HOLSTER = "Holster", + SCABBARD = "Scabbard" +} diff --git a/TypeScript/13AddTrader/types/models/enums/HideoutAreas.d.ts b/TypeScript/13AddTrader/types/models/enums/HideoutAreas.d.ts new file mode 100644 index 0000000..b44a20a --- /dev/null +++ b/TypeScript/13AddTrader/types/models/enums/HideoutAreas.d.ts @@ -0,0 +1,25 @@ +export declare enum HideoutAreas { + NOTSET = -1, + VENTS = 0, + SECURITY = 1, + LAVATORY = 2, + STASH = 3, + GENERATOR = 4, + HEATING = 5, + WATER_COLLECTOR = 6, + MEDSTATION = 7, + NUTRITION_UNIT = 8, + REST_SPACE = 9, + WORKBENCH = 10, + INTEL_CENTER = 11, + SHOOTING_RANGE = 12, + LIBRARY = 13, + SCAV_CASE = 14, + ILLUMINATION = 15, + PLACE_OF_FAME = 16, + AIR_FILTERING = 17, + SOLAR_POWER = 18, + BOOZE_GENERATOR = 19, + BITCOIN_FARM = 20, + CHRISTMAS_TREE = 21 +} diff --git a/TypeScript/13AddTrader/types/models/enums/MemberCategory.d.ts b/TypeScript/13AddTrader/types/models/enums/MemberCategory.d.ts new file mode 100644 index 0000000..3bd9a21 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/enums/MemberCategory.d.ts @@ -0,0 +1,13 @@ +export declare enum MemberCategory { + Default = 0, + Developer = 1, + UniqueId = 2, + Trader = 4, + Group = 8, + System = 16, + ChatModerator = 32, + ChatModeratorWithPermanentBan = 64, + UnitTest = 128, + Sherpa = 256, + Emissary = 512 +} diff --git a/TypeScript/13AddTrader/types/models/enums/MessageType.d.ts b/TypeScript/13AddTrader/types/models/enums/MessageType.d.ts new file mode 100644 index 0000000..1b0c649 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/enums/MessageType.d.ts @@ -0,0 +1,16 @@ +export declare enum MessageType { + USER_MESSAGE = 1, + NPC_TRADER = 2, + AUCTION_MESSAGE = 3, + FLEAMARKET_MESSAGE = 4, + ADMIN_MESSAGE = 5, + GROUP_CHAT_MESSAGE = 6, + SYSTEM_MESSAGE = 7, + INSURANCE_RETURN = 8, + GLOBAL_CHAT = 9, + QUEST_START = 10, + QUEST_FAIL = 11, + QUEST_SUCCESS = 12, + MESSAGE_WITH_ITEMS = 13, + INITIAL_SUPPORT = 14 +} diff --git a/TypeScript/13AddTrader/types/models/enums/Money.d.ts b/TypeScript/13AddTrader/types/models/enums/Money.d.ts new file mode 100644 index 0000000..0d39613 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/enums/Money.d.ts @@ -0,0 +1,5 @@ +export declare enum Money { + ROUBLES = "5449016a4bdc2d6f028b456f", + EUROS = "569668774bdc2da2298b4568", + DOLLARS = "5696686a4bdc2da3298b456a" +} diff --git a/TypeScript/13AddTrader/types/models/enums/Traders.d.ts b/TypeScript/13AddTrader/types/models/enums/Traders.d.ts new file mode 100644 index 0000000..163cd71 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/enums/Traders.d.ts @@ -0,0 +1,10 @@ +export declare enum Traders { + PRAPOR = "54cb50c76803fa8b248b4571", + THERAPIST = "54cb57776803fa99248b456e", + FENCE = "579dc571d53a0658a154fbec", + SKIER = "58330581ace78e27b8b10cee", + PEACEKEEPER = "5935c25fb3acc3127c3d8cd9", + MECHANIC = "5a7c2eca46aef81a7ca2145d", + RAGMAN = "5ac3b934156ae10c4430e83c", + JAEGER = "5c0647fdd443bc2504c2d371" +} diff --git a/TypeScript/13AddTrader/types/models/external/mod.d.ts b/TypeScript/13AddTrader/types/models/external/mod.d.ts new file mode 100644 index 0000000..ecef460 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/external/mod.d.ts @@ -0,0 +1,5 @@ +import { DependencyContainer } from "./tsyringe"; +export interface IMod { + load: (container: DependencyContainer) => void; + delayedLoad: (container: DependencyContainer) => void; +} diff --git a/TypeScript/13AddTrader/types/models/external/tsyringe.d.ts b/TypeScript/13AddTrader/types/models/external/tsyringe.d.ts new file mode 100644 index 0000000..56a7e58 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/external/tsyringe.d.ts @@ -0,0 +1,2 @@ +import type { DependencyContainer } from "tsyringe"; +export type { DependencyContainer }; diff --git a/TypeScript/13AddTrader/types/models/spt/bindings/Route.d.ts b/TypeScript/13AddTrader/types/models/spt/bindings/Route.d.ts new file mode 100644 index 0000000..1b29d7d --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/bindings/Route.d.ts @@ -0,0 +1,3 @@ +export interface IRoute { + aki: any; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IBotCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IBotCallbacks.d.ts new file mode 100644 index 0000000..2c42813 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IBotCallbacks.d.ts @@ -0,0 +1,10 @@ +import { IGenerateBotsRequestData } from "../../eft/bot/IGenerateBotsRequestData"; +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IBotBase } from "../../eft/common/tables/IBotBase"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +export interface IBotCallbacks { + getBotLimit(url: string, info: IEmptyRequestData, sessionID: string): string; + getBotDifficulty(url: string, info: IEmptyRequestData, sessionID: string): string; + generateBots(url: string, info: IGenerateBotsRequestData, sessionID: string): IGetBodyResponseData; + getBotCap(): string; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IBundleCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IBundleCallbacks.d.ts new file mode 100644 index 0000000..7e37c6e --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IBundleCallbacks.d.ts @@ -0,0 +1,5 @@ +export interface IBundleCallbacks { + sendBundle(sessionID: string, req: any, resp: any, body: any): any; + getBundles(url: string, info: any, sessionID: string): string; + getBundle(url: string, info: any, sessionID: string): string; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/ICustomizationCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/ICustomizationCallbacks.d.ts new file mode 100644 index 0000000..d10027f --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/ICustomizationCallbacks.d.ts @@ -0,0 +1,12 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IBuyClothingRequestData } from "../../eft/customization/IBuyClothingRequestData"; +import { IWearClothingRequestData } from "../../eft/customization/IWearClothingRequestData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { ISuit } from "../../eft/common/tables/ITrader"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +export interface ICustomizationCallbacks { + getSuits(url: string, info: any, sessionID: string): IGetBodyResponseData; + getTraderSuits(url: string, info: any, sessionID: string): IGetBodyResponseData; + wearClothing(pmcData: IPmcData, body: IWearClothingRequestData, sessionID: string): IItemEventRouterResponse; + buyClothing(pmcData: IPmcData, body: IBuyClothingRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IDataCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IDataCallbacks.d.ts new file mode 100644 index 0000000..a098560 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IDataCallbacks.d.ts @@ -0,0 +1,26 @@ +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IGlobals } from "../../eft/common/IGlobals"; +import { IQuest } from "../../eft/common/tables/IQuest"; +import { IHideoutArea } from "../../eft/hideout/IHideoutArea"; +import { IHideoutProduction } from "../../eft/hideout/IHideoutProduction"; +import { IHideoutScavCase } from "../../eft/hideout/IHideoutScavCase"; +import { IHideoutSettingsBase } from "../../eft/hideout/IHideoutSettingsBase"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { ILanguageBase } from "../server/ILocaleBase"; +import { ISettingsBase } from "../server/ISettingsBase"; +export interface IDataCallbacks { + getSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getGlobals(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getTemplateItems(url: string, info: IEmptyRequestData, sessionID: string): string; + getTemplateHandbook(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getTemplateSuits(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getTemplateCharacter(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getTemplateQuests(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getHideoutSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getHideoutAreas(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + gethideoutProduction(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getHideoutScavcase(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getLocalesLanguages(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getLocalesMenu(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getLocalesGlobal(url: string, info: IEmptyRequestData, sessionID: string): string; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IDialogueCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IDialogueCallbacks.d.ts new file mode 100644 index 0000000..fe2115a --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IDialogueCallbacks.d.ts @@ -0,0 +1,34 @@ +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { INullResponseData } from "../../eft/httpResponse/INullResponseData"; +import { IGetMailDialogViewRequestData } from "../../eft/dialog/IGetMailDialogViewRequestData"; +import { IGetMailDialogInfoRequestData } from "../../eft/dialog/IGetMailDialogInfoRequestData"; +import { IRemoveDialogRequestData } from "../../eft/dialog/IRemoveDialogRequestData"; +import { IGetMailDialogListRequestData } from "../../eft/dialog/IGetMailDialogListRequestData"; +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IFriendRequestData } from "../../eft/dialog/IFriendRequestData"; +import { IPinDialogRequestData } from "../../eft/dialog/IPinDialogRequestData"; +import { ISetDialogReadRequestData } from "../../eft/dialog/ISetDialogReadRequestData"; +import { IGetAllAttachmentsRequestData } from "../../eft/dialog/IGetAllAttachmentsRequestData"; +import { IGetChatServerListRequestData } from "../../eft/dialog/IGetChatServerListRequestData"; +import { IGetFriendListDataResponse } from "../../eft/dialog/IGetFriendListDataResponse"; +import { ISendMessageRequest } from "../../eft/dialog/ISendMessageRequest"; +import { IGetMailDialogViewResponseData } from "../../eft/dialog/IGetMailDialogViewResponseData"; +import { IGetAllAttachmentsResponse } from "../../eft/dialog/IGetAllAttachmentsResponse"; +import { DialogueInfo } from "../../eft/profile/IAkiProfile"; +export interface IDialogueCallbacks { + getFriendList(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getChatServerList(url: string, info: IGetChatServerListRequestData, sessionID: string): IGetBodyResponseData; + getMailDialogList(url: string, info: IGetMailDialogListRequestData, sessionID: string): IGetBodyResponseData; + getMailDialogView(url: string, info: IGetMailDialogViewRequestData, sessionID: string): IGetBodyResponseData; + getMailDialogInfo(url: string, info: IGetMailDialogInfoRequestData, sessionID: string): IGetBodyResponseData; + removeDialog(url: string, info: IRemoveDialogRequestData, sessionID: string): IGetBodyResponseData; + pinDialog(url: string, info: IPinDialogRequestData, sessionID: string): IGetBodyResponseData; + unpinDialog(url: string, info: IPinDialogRequestData, sessionID: string): IGetBodyResponseData; + setRead(url: string, info: ISetDialogReadRequestData, sessionID: string): IGetBodyResponseData; + getAllAttachments(url: string, info: IGetAllAttachmentsRequestData, sessionID: string): IGetBodyResponseData; + listOutbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + listInbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + friendRequest(url: string, request: IFriendRequestData, sessionID: string): INullResponseData; + sendMessage(url: string, request: ISendMessageRequest, sessionID: string): IGetBodyResponseData; + update(): boolean; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IGameCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IGameCallbacks.d.ts new file mode 100644 index 0000000..38ebc5f --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IGameCallbacks.d.ts @@ -0,0 +1,16 @@ +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IGameEmptyCrcRequestData } from "../../eft/game/IGameEmptyCrcRequestData"; +import { IVersionValidateRequestData } from "../../eft/game/IVersionValidateRequestData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { INullResponseData } from "../../eft/httpResponse/INullResponseData"; +import { IGameConfigResponse } from "../../eft/game/IGameConfigResponse"; +export interface IGameCallbacks { + versionValidate(url: string, info: IVersionValidateRequestData, sessionID: string): INullResponseData; + gameStart(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + gameLogout(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getGameConfig(url: string, info: IGameEmptyCrcRequestData, sessionID: string): IGetBodyResponseData; + getServer(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + validateGameVersion(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + gameKeepalive(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getVersion(url: string, info: IEmptyRequestData, sessionID: string): string; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IHandbookCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IHandbookCallbacks.d.ts new file mode 100644 index 0000000..5857a3e --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IHandbookCallbacks.d.ts @@ -0,0 +1,3 @@ +export interface IHandbookCallbacks { + load(): void; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IHealthCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IHealthCallbacks.d.ts new file mode 100644 index 0000000..d238c7a --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IHealthCallbacks.d.ts @@ -0,0 +1,13 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IAkiProfile } from "../../eft/profile/IAkiProfile"; +import { ISyncHealthRequestData } from "../../eft/health/ISyncHealthRequestData"; +import { IOffraidEatRequestData } from "../../eft/health/IOffraidEatRequestData"; +import { IOffraidHealRequestData } from "../../eft/health/IOffraidHealRequestData"; +import { IHealthTreatmentRequestData } from "../../eft/health/IHealthTreatmentRequestData"; +export interface IHealthCallbacks { + onLoad(sessionID: string): IAkiProfile; + syncHealth(url: string, info: ISyncHealthRequestData, sessionID: string): any; + offraidEat(pmcData: IPmcData, body: IOffraidEatRequestData, sessionID: string): any; + offraidHeal(pmcData: IPmcData, body: IOffraidHealRequestData, sessionID: string): any; + healthTreatment(pmcData: IPmcData, info: IHealthTreatmentRequestData, sessionID: string): any; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IHideoutCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IHideoutCallbacks.d.ts new file mode 100644 index 0000000..e9badb6 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IHideoutCallbacks.d.ts @@ -0,0 +1,23 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IHideoutUpgradeRequestData } from "../../eft/hideout/IHideoutUpgradeRequestData"; +import { IHideoutUpgradeCompleteRequestData } from "../../eft/hideout/IHideoutUpgradeCompleteRequestData"; +import { IHideoutScavCaseStartRequestData } from "../../eft/hideout/IHideoutScavCaseStartRequestData"; +import { IHideoutPutItemInRequestData } from "../../eft/hideout/IHideoutPutItemInRequestData"; +import { IHideoutTakeItemOutRequestData } from "../../eft/hideout/IHideoutTakeItemOutRequestData"; +import { IHideoutToggleAreaRequestData } from "../../eft/hideout/IHideoutToggleAreaRequestData"; +import { IHideoutSingleProductionStartRequestData } from "../../eft/hideout/IHideoutSingleProductionStartRequestData"; +import { IHideoutContinousProductionStartRequestData } from "../../eft/hideout/IHideoutContinousProductionStartRequestData"; +import { IHideoutTakeProductionRequestData } from "../../eft/hideout/IHideoutTakeProductionRequestData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +export interface IHideoutCallbacks { + upgrade(pmcData: IPmcData, body: IHideoutUpgradeRequestData, sessionID: string): IItemEventRouterResponse; + upgradeComplete(pmcData: IPmcData, body: IHideoutUpgradeCompleteRequestData, sessionID: string): IItemEventRouterResponse; + putItemsInAreaSlots(pmcData: IPmcData, body: IHideoutPutItemInRequestData, sessionID: string): IItemEventRouterResponse; + takeItemsFromAreaSlots(pmcData: IPmcData, body: IHideoutTakeItemOutRequestData, sessionID: string): IItemEventRouterResponse; + toggleArea(pmcData: IPmcData, body: IHideoutToggleAreaRequestData, sessionID: string): IItemEventRouterResponse; + singleProductionStart(pmcData: IPmcData, body: IHideoutSingleProductionStartRequestData, sessionID: string): IItemEventRouterResponse; + scavCaseProductionStart(pmcData: IPmcData, body: IHideoutScavCaseStartRequestData, sessionID: string): IItemEventRouterResponse; + continuousProductionStart(pmcData: IPmcData, body: IHideoutContinousProductionStartRequestData, sessionID: string): IItemEventRouterResponse; + takeProduction(pmcData: IPmcData, body: IHideoutTakeProductionRequestData, sessionID: string): IItemEventRouterResponse; + update(timeSinceLastRun: number): boolean; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IHttpCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IHttpCallbacks.d.ts new file mode 100644 index 0000000..3ecd945 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IHttpCallbacks.d.ts @@ -0,0 +1,5 @@ +export interface IHttpCallbacks { + load(): void; + sendImage(sessionID: string, req: any, resp: any, body: any): void; + getImage(): string; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IInraidCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IInraidCallbacks.d.ts new file mode 100644 index 0000000..e959b98 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IInraidCallbacks.d.ts @@ -0,0 +1,14 @@ +import { INullResponseData } from "../../eft/httpResponse/INullResponseData"; +import { IAkiProfile } from "../../eft/profile/IAkiProfile"; +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IRegisterPlayerRequestData } from "../../eft/inRaid/IRegisterPlayerRequestData"; +import { ISaveProgressRequestData } from "../../eft/inRaid/ISaveProgressRequestData"; +export interface IInraidCallbacks { + onLoad(sessionID: string): IAkiProfile; + registerPlayer(url: string, info: IRegisterPlayerRequestData, sessionID: string): INullResponseData; + saveProgress(url: string, info: ISaveProgressRequestData, sessionID: string): INullResponseData; + getRaidEndState(): string; + getRaidMenuSettings(url: string, info: IEmptyRequestData, sessionID: string): string; + getWeaponDurability(url: string, info: any, sessionID: string): string; + getAirdropConfig(url: string, info: any, sessionID: string): string; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IInsuranceCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IInsuranceCallbacks.d.ts new file mode 100644 index 0000000..082112d --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IInsuranceCallbacks.d.ts @@ -0,0 +1,10 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IAkiProfile } from "../../eft/profile/IAkiProfile"; +import { IGetInsuranceCostRequestData } from "../../eft/insurance/IGetInsuranceCostRequestData"; +import { IInsureRequestData } from "../../eft/insurance/IInsureRequestData"; +export interface IInsuranceCallbacks { + onLoad(sessionID: string): IAkiProfile; + getInsuranceCost(url: string, info: IGetInsuranceCostRequestData, sessionID: string): any; + insure(pmcData: IPmcData, body: IInsureRequestData, sessionID: string): any; + update(secondsSinceLastRun: number): boolean; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IInventoryCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IInventoryCallbacks.d.ts new file mode 100644 index 0000000..e53f7d0 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IInventoryCallbacks.d.ts @@ -0,0 +1,36 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IInventoryFoldRequestData } from "../../eft/inventory/IInventoryFoldRequestData"; +import { IInventorySplitRequestData } from "../../eft/inventory/IInventorySplitRequestData"; +import { IInventoryMoveRequestData } from "../../eft/inventory/IInventoryMoveRequestData"; +import { IInventoryMergeRequestData } from "../../eft/inventory/IInventoryMergeRequestData"; +import { IInventoryRemoveRequestData } from "../../eft/inventory/IInventoryRemoveRequestData"; +import { IInventoryTransferRequestData } from "../../eft/inventory/IInventoryTransferRequestData"; +import { IInventorySwapRequestData } from "../../eft/inventory/IInventorySwapRequestData"; +import { IInventoryToggleRequestData } from "../../eft/inventory/IInventoryToggleRequestData"; +import { IInventoryTagRequestData } from "../../eft/inventory/IInventoryTagRequestData"; +import { IInventoryBindRequestData } from "../../eft/inventory/IInventoryBindRequestData"; +import { IInventoryExamineRequestData } from "../../eft/inventory/IInventoryExamineRequestData"; +import { IInventoryReadEncyclopediaRequestData } from "../../eft/inventory/IInventoryReadEncyclopediaRequestData"; +import { IInventorySortRequestData } from "../../eft/inventory/IInventorySortRequestData"; +import { IInventoryCreateMarkerRequestData } from "../../eft/inventory/IInventoryCreateMarkerRequestData"; +import { IInventoryDeleteMarkerRequestData } from "../../eft/inventory/IInventoryDeleteMarkerRequestData"; +import { IInventoryEditMarkerRequestData } from "../../eft/inventory/IInventoryEditMarkerRequestData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +export interface IInventoryCallbacks { + moveItem(pmcData: IPmcData, body: IInventoryMoveRequestData, sessionID: string): IItemEventRouterResponse; + removeItem(pmcData: IPmcData, body: IInventoryRemoveRequestData, sessionID: string): IItemEventRouterResponse; + splitItem(pmcData: IPmcData, body: IInventorySplitRequestData, sessionID: string): IItemEventRouterResponse; + mergeItem(pmcData: IPmcData, body: IInventoryMergeRequestData, sessionID: string): IItemEventRouterResponse; + transferItem(pmcData: IPmcData, body: IInventoryTransferRequestData, sessionID: string): IItemEventRouterResponse; + swapItem(pmcData: IPmcData, body: IInventorySwapRequestData, sessionID: string): IItemEventRouterResponse; + foldItem(pmcData: IPmcData, body: IInventoryFoldRequestData, sessionID: string): IItemEventRouterResponse; + toggleItem(pmcData: IPmcData, body: IInventoryToggleRequestData, sessionID: string): IItemEventRouterResponse; + tagItem(pmcData: IPmcData, body: IInventoryTagRequestData, sessionID: string): IItemEventRouterResponse; + bindItem(pmcData: IPmcData, body: IInventoryBindRequestData, sessionID: string): IItemEventRouterResponse; + examineItem(pmcData: IPmcData, body: IInventoryExamineRequestData, sessionID: string): IItemEventRouterResponse; + readEncyclopedia(pmcData: IPmcData, body: IInventoryReadEncyclopediaRequestData, sessionID: string): IItemEventRouterResponse; + sortInventory(pmcData: IPmcData, body: IInventorySortRequestData, sessionID: string): IItemEventRouterResponse; + createMapMarker(pmcData: IPmcData, body: IInventoryCreateMarkerRequestData, sessionID: string): IItemEventRouterResponse; + deleteMapMarker(pmcData: IPmcData, body: IInventoryDeleteMarkerRequestData, sessionID: string): IItemEventRouterResponse; + editMapMarker(pmcData: IPmcData, body: IInventoryEditMarkerRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IItemEventCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IItemEventCallbacks.d.ts new file mode 100644 index 0000000..59db771 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IItemEventCallbacks.d.ts @@ -0,0 +1,6 @@ +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { IItemEventRouterRequest } from "../../eft/itemEvent/IItemEventRouterRequest"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +export interface IItemEventCallbacks { + handleEvents(url: string, info: IItemEventRouterRequest, sessionID: string): IGetBodyResponseData; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/ILauncherCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/ILauncherCallbacks.d.ts new file mode 100644 index 0000000..52dfec6 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/ILauncherCallbacks.d.ts @@ -0,0 +1,20 @@ +import { IRegisterData } from "../../eft/launcher/IRegisterData"; +import { IRemoveProfileData } from "../../eft/launcher/IRemoveProfileData"; +import { ILoginRequestData } from "../../eft/launcher/ILoginRequestData"; +import { IChangeRequestData } from "../../eft/launcher/IChangeRequestData"; +import { IGetMiniProfileRequestData } from "../../eft/launcher/IGetMiniProfileRequestData.js"; +export interface ILauncherCallbacks { + connect(): string; + login(url: string, info: ILoginRequestData, sessionID: string): string; + register(url: string, info: IRegisterData, sessionID: string): "FAILED" | "OK"; + get(url: string, info: ILoginRequestData, sessionID: string): string; + changeUsername(url: string, info: IChangeRequestData, sessionID: string): "FAILED" | "OK"; + changePassword(url: string, info: IChangeRequestData, sessionID: string): "FAILED" | "OK"; + wipe(url: string, info: IRegisterData, sessionID: string): "FAILED" | "OK"; + getMiniProfile(url: string, info: IGetMiniProfileRequestData, sessionID: string): string; + getAllMiniProfiles(url: string, info: any, sessionID: string): string; + getServerVersion(): string; + ping(url: string, info: any, sessionID: string): string; + removeProfile(url: string, info: IRemoveProfileData, sessionID: string): string; + getCompatibleTarkovVersion(): string; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/ILocationCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/ILocationCallbacks.d.ts new file mode 100644 index 0000000..71656a4 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/ILocationCallbacks.d.ts @@ -0,0 +1,8 @@ +import { IGetLocationRequestData } from "../../eft/location/IGetLocationRequestData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { ILocationsGenerateAllResponse } from "../../eft/common/ILocationsSourceDestinationBase"; +import { ILocationBase } from "../../eft/common/ILocationBase"; +export interface ILocationCallbacks { + getLocationData(url: string, info: any, sessionID: string): IGetBodyResponseData; + getLocation(url: string, info: IGetLocationRequestData, sessionID: string): IGetBodyResponseData; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IMatchCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IMatchCallbacks.d.ts new file mode 100644 index 0000000..fcbf173 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IMatchCallbacks.d.ts @@ -0,0 +1,25 @@ +import { IStartOfflineRaidRequestData } from "../../eft/match/IStartOffineRaidRequestData"; +import { IEndOfflineRaidRequestData } from "../../eft/match/IEndOfflineRaidRequestData"; +import { INullResponseData } from "../../eft/httpResponse/INullResponseData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { IPmcData } from "../../eft/common/IPmcData"; +export interface IMatchCallbacks { + updatePing(url: string, info: any, sessionID: string): INullResponseData; + exitMatch(url: string, info: any, sessionID: string): INullResponseData; + exitToMenu(url: string, info: any, sessionID: string): INullResponseData; + startGroupSearch(url: string, info: any, sessionID: string): INullResponseData; + stopGroupSearch(url: string, info: any, sessionID: string): INullResponseData; + sendGroupInvite(url: string, info: any, sessionID: string): INullResponseData; + acceptGroupInvite(url: string, info: any, sessionID: string): INullResponseData; + cancelGroupInvite(url: string, info: any, sessionID: string): INullResponseData; + putMetrics(url: string, info: any, sessionID: string): INullResponseData; + getProfile(url: string, info: any, sessionID: string): IGetBodyResponseData; + serverAvailable(url: string, info: any, sessionID: string): IGetBodyResponseData | IGetBodyResponseData; + joinMatch(url: string, info: any, sessionID: string): IGetBodyResponseData; + getMetrics(url: string, info: any, sessionID: string): IGetBodyResponseData; + getGroupStatus(url: string, info: any, sessionID: string): IGetBodyResponseData; + createGroup(url: string, info: any, sessionID: string): IGetBodyResponseData; + deleteGroup(url: string, info: any, sessionID: string): INullResponseData; + startOfflineRaid(url: string, info: IStartOfflineRaidRequestData, sessionID: string): INullResponseData; + endOfflineRaid(url: string, info: IEndOfflineRaidRequestData, sessionID: string): INullResponseData; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IModCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IModCallbacks.d.ts new file mode 100644 index 0000000..1a4cd7b --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IModCallbacks.d.ts @@ -0,0 +1,6 @@ +export interface IModCallbacks { + load(): void; + sendBundle(sessionID: string, req: any, resp: any, body: any): void; + getBundles(url: string, info: any, sessionID: string): string; + getBundle(url: string, info: any, sessionID: string): string; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/INoteCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/INoteCallbacks.d.ts new file mode 100644 index 0000000..8453a4f --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/INoteCallbacks.d.ts @@ -0,0 +1,8 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { INoteActionData } from "../../eft/notes/INoteActionData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +export interface INoteCallbacks { + addNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse; + editNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse; + deleteNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/INotifierCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/INotifierCallbacks.d.ts new file mode 100644 index 0000000..a211310 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/INotifierCallbacks.d.ts @@ -0,0 +1,17 @@ +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { INotifierChannel } from "../../eft/notifier/INotifier"; +import { ISelectProfileRequestData } from "../../eft/notifier/ISelectProfileRequestData"; +export interface INotifierCallbacks { + /** + * If we don't have anything to send, it's ok to not send anything back + * because notification requests can be long-polling. In fact, we SHOULD wait + * until we actually have something to send because otherwise we'd spam the client + * and the client would abort the connection due to spam. + */ + sendNotification(sessionID: string, req: any, resp: any, data: any): void; + getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData; + createNotifierChannel(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + selectProfile(url: string, info: ISelectProfileRequestData, sessionID: string): IGetBodyResponseData; + notify(url: string, info: any, sessionID: string): string; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IPresetBuildCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IPresetBuildCallbacks.d.ts new file mode 100644 index 0000000..97c6487 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IPresetBuildCallbacks.d.ts @@ -0,0 +1,10 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IPresetBuildActionRequestData } from "../../eft/presetBuild/IPresetBuildActionRequestData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { WeaponBuild } from "../../eft/profile/IAkiProfile"; +export interface IPresetBuildCallbacks { + getHandbookUserlist(url: string, info: any, sessionID: string): IGetBodyResponseData; + saveBuild(pmcData: IPmcData, body: IPresetBuildActionRequestData, sessionID: string): IItemEventRouterResponse; + removeBuild(pmcData: IPmcData, body: IPresetBuildActionRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IPresetCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IPresetCallbacks.d.ts new file mode 100644 index 0000000..4169857 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IPresetCallbacks.d.ts @@ -0,0 +1,3 @@ +export interface IPresetCallbacks { + load(): void; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IProfileCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IProfileCallbacks.d.ts new file mode 100644 index 0000000..9d4d2df --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IProfileCallbacks.d.ts @@ -0,0 +1,21 @@ +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { INullResponseData } from "../../eft/httpResponse/INullResponseData"; +import { IProfileChangeNicknameRequestData } from "../../eft/profile/IProfileChangeNicknameRequestData"; +import { IProfileChangeVoiceRequestData } from "../../eft/profile/IProfileChangeVoiceRequestData"; +import { IProfileCreateRequestData } from "../../eft/profile/IProfileCreateRequestData"; +import { IValidateNicknameRequestData } from "../../eft/profile/IValidateNicknameRequestData"; +import { ISearchFriendRequestData } from "../../eft/profile/ISearchFriendRequestData"; +import { ISearchFriendResponse } from "../../eft/profile/ISearchFriendResponse"; +export interface IProfileCallbacks { + onLoad(sessionID: string): any; + createProfile(url: string, info: IProfileCreateRequestData, sessionID: string): IGetBodyResponseData; + getProfileData(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + regenerateScav(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + changeVoice(url: string, info: IProfileChangeVoiceRequestData, sessionID: string): INullResponseData; + changeNickname(url: string, info: IProfileChangeNicknameRequestData, sessionID: string): IGetBodyResponseData; + validateNickname(url: string, info: IValidateNicknameRequestData, sessionID: string): IGetBodyResponseData; + getReservedNickname(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getProfileStatus(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + searchFriend(url: string, info: ISearchFriendRequestData, sessionID: string): IGetBodyResponseData; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IQuestCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IQuestCallbacks.d.ts new file mode 100644 index 0000000..1c4d0c3 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IQuestCallbacks.d.ts @@ -0,0 +1,19 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IAcceptQuestRequestData } from "../../eft/quests/IAcceptQuestRequestData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { IListQuestsRequestData } from "../../eft/quests/IListQuestsRequestData"; +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { ICompleteQuestRequestData } from "../../eft/quests/ICompleteQuestRequestData"; +import { IHandoverQuestRequestData } from "../../eft/quests/IHandoverQuestRequestData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +import { IQuest } from "../../eft/common/tables/IQuest"; +import { IPmcDataRepeatableQuest } from "../../eft/common/tables/IRepeatableQuests"; +import { IRepeatableQuestChangeRequest } from "../../eft/quests/IRepeatableQuestChangeRequest"; +export interface IQuestCallbacks { + changeRepeatableQuest(pmcData: IPmcData, body: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse; + acceptQuest(pmcData: IPmcData, body: IAcceptQuestRequestData, sessionID: string): IItemEventRouterResponse; + completeQuest(pmcData: IPmcData, body: ICompleteQuestRequestData, sessionID: string): IItemEventRouterResponse; + handoverQuest(pmcData: IPmcData, body: IHandoverQuestRequestData, sessionID: string): IItemEventRouterResponse; + listQuests(url: string, info: IListQuestsRequestData, sessionID: string): IGetBodyResponseData; + activityPeriods(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IRagfairCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IRagfairCallbacks.d.ts new file mode 100644 index 0000000..9282bd4 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IRagfairCallbacks.d.ts @@ -0,0 +1,21 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { ISearchRequestData } from "../../eft/ragfair/ISearchRequestData"; +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IGetMarketPriceRequestData } from "../../eft/ragfair/IGetMarketPriceRequestData"; +import { IAddOfferRequestData } from "../../eft/ragfair/IAddOfferRequestData"; +import { IRemoveOfferRequestData } from "../../eft/ragfair/IRemoveOfferRequestData"; +import { IExtendOfferRequestData } from "../../eft/ragfair/IExtendOfferRequestData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +import { IGetItemPriceResult } from "../../eft/ragfair/IGetItemPriceResult"; +export interface IRagfairCallbacks { + load(): void; + search(url: string, info: ISearchRequestData, sessionID: string): IGetBodyResponseData; + getMarketPrice(url: string, info: IGetMarketPriceRequestData, sessionID: string): IGetBodyResponseData; + getItemPrices(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + addOffer(pmcData: IPmcData, info: IAddOfferRequestData, sessionID: string): IItemEventRouterResponse; + removeOffer(pmcData: IPmcData, info: IRemoveOfferRequestData, sessionID: string): IItemEventRouterResponse; + extendOffer(pmcData: IPmcData, info: IExtendOfferRequestData, sessionID: string): IItemEventRouterResponse; + update(timeSinceLastRun: number): boolean; + updatePlayer(timeSinceLastRun: number): boolean; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IRepairCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IRepairCallbacks.d.ts new file mode 100644 index 0000000..e8183c9 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IRepairCallbacks.d.ts @@ -0,0 +1,8 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +import { IRepairActionDataRequest } from "../../eft/repair/IRepairActionDataRequest"; +import { ITraderRepairActionDataRequest } from "../../eft/repair/ITraderRepairActionDataRequest"; +export interface IRepairCallbacks { + traderRepair(pmcData: IPmcData, body: ITraderRepairActionDataRequest, sessionID: string): IItemEventRouterResponse; + repair(pmcData: IPmcData, body: IRepairActionDataRequest, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/ISaveCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/ISaveCallbacks.d.ts new file mode 100644 index 0000000..1ad3b82 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/ISaveCallbacks.d.ts @@ -0,0 +1,4 @@ +export interface ISaveCallbacks { + load(): void; + update(secondsSinceLastRun: number): boolean; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/ITradeCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/ITradeCallbacks.d.ts new file mode 100644 index 0000000..2f41d54 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/ITradeCallbacks.d.ts @@ -0,0 +1,8 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IProcessRagfairTradeRequestData } from "../../eft/trade/IProcessRagfairTradeRequestData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +import { IProcessBaseTradeRequestData } from "../../eft/trade/IProcessBaseTradeRequestData"; +export interface ITradeCallbacks { + processTrade(pmcData: IPmcData, body: IProcessBaseTradeRequestData, sessionID: string): IItemEventRouterResponse; + processRagfairTrade(pmcData: IPmcData, body: IProcessRagfairTradeRequestData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/ITraderCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/ITraderCallbacks.d.ts new file mode 100644 index 0000000..e0d7d06 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/ITraderCallbacks.d.ts @@ -0,0 +1,11 @@ +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +import { IBarterScheme, ITraderAssort, ITraderBase } from "../../eft/common/tables/ITrader"; +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +export interface ITraderCallbacks { + load(): void; + getTraderSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getProfilePurchases(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData>; + getTrader(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getAssort(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + update(): boolean; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IWeatherCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IWeatherCallbacks.d.ts new file mode 100644 index 0000000..9ac72ae --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IWeatherCallbacks.d.ts @@ -0,0 +1,5 @@ +import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; +import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; +export interface IWeatherCallbacks { + getWeather(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; +} diff --git a/TypeScript/13AddTrader/types/models/spt/callbacks/IWishlistCallbacks.d.ts b/TypeScript/13AddTrader/types/models/spt/callbacks/IWishlistCallbacks.d.ts new file mode 100644 index 0000000..e5d519c --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/callbacks/IWishlistCallbacks.d.ts @@ -0,0 +1,7 @@ +import { IPmcData } from "../../eft/common/IPmcData"; +import { IWishlistActionData } from "../../eft/wishlist/IWishlistActionData"; +import { IItemEventRouterResponse } from "../../eft/itemEvent/IItemEventRouterResponse"; +export interface IWishlistCallbacks { + addToWishlist(pmcData: IPmcData, body: IWishlistActionData, sessionID: string): IItemEventRouterResponse; + removeFromWishlist(pmcData: IPmcData, body: IWishlistActionData, sessionID: string): IItemEventRouterResponse; +} diff --git a/TypeScript/13AddTrader/types/models/spt/config/IAirdropConfig.d.ts b/TypeScript/13AddTrader/types/models/spt/config/IAirdropConfig.d.ts new file mode 100644 index 0000000..f4aee89 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/config/IAirdropConfig.d.ts @@ -0,0 +1,20 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IAirdropConfig extends IBaseConfig { + kind: "aki-airdrop"; + airdropChancePercent: AirdropChancePercent; + airdropMinOpenHeight: number; + airdropMaxOpenHeight: number; + planeMinFlyHeight: number; + planeMaxFlyHeight: number; + planeVolume: number; + airdropMinStartTimeSeconds: number; + airdropMaxStartTimeSeconds: number; +} +export interface AirdropChancePercent { + bigmap: number; + woods: number; + lighthouse: number; + shoreline: number; + interchange: number; + reserve: number; +} diff --git a/TypeScript/13AddTrader/types/models/spt/config/IBaseConfig.d.ts b/TypeScript/13AddTrader/types/models/spt/config/IBaseConfig.d.ts new file mode 100644 index 0000000..8b6ba88 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/config/IBaseConfig.d.ts @@ -0,0 +1,3 @@ +export interface IBaseConfig { + kind: string; +} diff --git a/TypeScript/13AddTrader/types/models/spt/config/IBotConfig.d.ts b/TypeScript/13AddTrader/types/models/spt/config/IBotConfig.d.ts new file mode 100644 index 0000000..f8ea940 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/models/spt/config/ICoreConfig.d.ts b/TypeScript/13AddTrader/types/models/spt/config/ICoreConfig.d.ts new file mode 100644 index 0000000..cfcaf61 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/config/ICoreConfig.d.ts @@ -0,0 +1,7 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface ICoreConfig extends IBaseConfig { + kind: "aki-core"; + akiVersion: string; + projectName: string; + compatibleTarkovVersion: string; +} diff --git a/TypeScript/13AddTrader/types/models/spt/config/IHealthConfig.d.ts b/TypeScript/13AddTrader/types/models/spt/config/IHealthConfig.d.ts new file mode 100644 index 0000000..fdbf656 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/config/IHealthConfig.d.ts @@ -0,0 +1,14 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IHealthConfig extends IBaseConfig { + kind: "aki-health"; + healthMultipliers: HealthMultipliers; + save: Save; +} +export interface HealthMultipliers { + death: number; + blacked: number; +} +export interface Save { + health: boolean; + effects: boolean; +} diff --git a/TypeScript/13AddTrader/types/models/spt/config/IHideoutConfig.d.ts b/TypeScript/13AddTrader/types/models/spt/config/IHideoutConfig.d.ts new file mode 100644 index 0000000..4658fa6 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/config/IHideoutConfig.d.ts @@ -0,0 +1,27 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IHideoutConfig extends IBaseConfig { + kind: "aki-hideout"; + runIntervalSeconds: number; + scavCase: ScavCase; + fuelDrainRateMultipler: number; +} +export interface ScavCase { + rewardParentBlacklist: string[]; + rewardItemBlacklist: any[]; + ammoRewards: AmmoRewards; + moneyRewards: MoneyRewards; +} +export interface AmmoRewards { + giveMultipleOfTen: boolean; + minAmount: number; +} +export interface MoneyRewards { + enabled: boolean; + rub: MinMax; + usd: MinMax; + eur: MinMax; +} +export interface MinMax { + min: number; + max: number; +} diff --git a/TypeScript/13AddTrader/types/models/spt/config/IHttpConfig.d.ts b/TypeScript/13AddTrader/types/models/spt/config/IHttpConfig.d.ts new file mode 100644 index 0000000..c41d035 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/config/IHttpConfig.d.ts @@ -0,0 +1,6 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IHttpConfig extends IBaseConfig { + kind: "aki-http"; + ip: string; + port: number; +} diff --git a/TypeScript/13AddTrader/types/models/spt/config/IInRaidConfig.d.ts b/TypeScript/13AddTrader/types/models/spt/config/IInRaidConfig.d.ts new file mode 100644 index 0000000..baaf083 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/config/IInRaidConfig.d.ts @@ -0,0 +1,21 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IInRaidConfig extends IBaseConfig { + kind: "aki-inraid"; + MIAOnRaidEnd: boolean; + raidMenuSettings: RaidMenuSettings; + save: Save; + carExtracts: string[]; + carExtractBaseStandingGain: number; + scavExtractGain: number; +} +export interface RaidMenuSettings { + aiAmount: string; + aiDifficulty: string; + bossEnabled: boolean; + scavWars: boolean; + taggedAndCursed: boolean; +} +export interface Save { + loot: boolean; + durability: boolean; +} diff --git a/TypeScript/13AddTrader/types/models/spt/config/IInsuranceConfig.d.ts b/TypeScript/13AddTrader/types/models/spt/config/IInsuranceConfig.d.ts new file mode 100644 index 0000000..6e9c744 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/config/IInsuranceConfig.d.ts @@ -0,0 +1,7 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IInsuranceConfig extends IBaseConfig { + kind: "aki-insurance"; + insuranceMultiplier: Record; + returnChancePercent: Record; + runIntervalSeconds: number; +} diff --git a/TypeScript/13AddTrader/types/models/spt/config/IInventoryConfig.d.ts b/TypeScript/13AddTrader/types/models/spt/config/IInventoryConfig.d.ts new file mode 100644 index 0000000..ffffa41 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/config/IInventoryConfig.d.ts @@ -0,0 +1,5 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IInventoryConfig extends IBaseConfig { + kind: "aki-inventory"; + newItemsMarkedFound: boolean; +} diff --git a/TypeScript/13AddTrader/types/models/spt/config/ILocationConfig.d.ts b/TypeScript/13AddTrader/types/models/spt/config/ILocationConfig.d.ts new file mode 100644 index 0000000..0551d57 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/config/ILocationConfig.d.ts @@ -0,0 +1,24 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface ILocationConfig extends IBaseConfig { + kind: "aki-location"; + looseLootMultiplier: LootMultiplier; + staticLootMultiplier: LootMultiplier; +} +export interface LootMultiplier { + bigmap: number; + develop: number; + factory4_day: number; + factory4_night: number; + interchange: number; + laboratory: number; + rezervbase: number; + shoreline: number; + woods: number; + hideout: number; + lighthouse: number; + privatearea: number; + suburbs: number; + tarkovstreets: number; + terminal: number; + town: number; +} diff --git a/TypeScript/13AddTrader/types/models/spt/config/IMatchConfig.d.ts b/TypeScript/13AddTrader/types/models/spt/config/IMatchConfig.d.ts new file mode 100644 index 0000000..92c4d77 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/config/IMatchConfig.d.ts @@ -0,0 +1,5 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IMatchConfig extends IBaseConfig { + kind: "aki-match"; + enabled: boolean; +} diff --git a/TypeScript/13AddTrader/types/models/spt/config/IQuestConfig.d.ts b/TypeScript/13AddTrader/types/models/spt/config/IQuestConfig.d.ts new file mode 100644 index 0000000..be4a97b --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/config/IQuestConfig.d.ts @@ -0,0 +1,77 @@ +import { ELocationName } from "../../enums/ELocationName"; +import { IBaseConfig } from "./IBaseConfig"; +export interface IQuestConfig extends IBaseConfig { + kind: "aki-quest"; + redeemTime: number; + repeatableQuests: IRepeatableQuestConfig[]; +} +export interface IRepeatableQuestConfig { + name: string; + types: string[]; + resetTime: number; + numQuests: number; + minPlayerLevel: number; + rewardScaling: IRewardScaling; + locations: Record; + traderWhitelist: ITraderWhitelist[]; + questConfig: IQuestConfig; +} +export interface IRewardScaling { + levels: number[]; + experience: number[]; + roubles: number[]; + items: number[]; + reputation: number[]; + rewardSpread: number; +} +export interface ITraderWhitelist { + traderId: string; + questTypes: string[]; +} +export interface IQuestConfig { + Exploration: IExploration; + Completion: ICompletion; + Elimination: IElimination; +} +export interface IExploration { + maxExtracts: number; + specificExits: ISpecificExits; +} +export interface ISpecificExits { + probability: number; + passageRequirementWhitelist: string[]; +} +export interface ICompletion { + minRequestedAmount: number; + maxRequestedAmount: number; + minRequestedBulletAmount: number; + maxRequestedBulletAmount: number; + useWhitelist: boolean; + useBlacklist: boolean; +} +export interface IElimination { + targets: ITarget[]; + bodyPartProb: number; + bodyParts: IBodyPart[]; + specificLocationProb: number; + distLocationBlacklist: string[]; + distProb: number; + maxDist: number; + minDist: number; + maxKills: number; + minKills: number; +} +export interface IProbabilityObject { + key: string; + relativeProbability: number; + data?: any; +} +export interface ITarget extends IProbabilityObject { + data: IBossInfo; +} +export interface IBossInfo { + isBoss: boolean; +} +export interface IBodyPart extends IProbabilityObject { + data: string[]; +} diff --git a/TypeScript/13AddTrader/types/models/spt/config/IRagfairConfig.d.ts b/TypeScript/13AddTrader/types/models/spt/config/IRagfairConfig.d.ts new file mode 100644 index 0000000..2d151ca --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/config/IRagfairConfig.d.ts @@ -0,0 +1,59 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IRagfairConfig extends IBaseConfig { + kind: "aki-ragfair"; + runIntervalSeconds: number; + sell: Sell; + traders: Record; + dynamic: Dynamic; +} +export interface Sell { + fees: boolean; + chance: Chance; + time: Time; + reputation: Reputation; +} +export interface Chance { + base: number; + overprices: number; + underpriced: number; +} +export interface Time { + base: number; + min: number; + max: number; +} +export interface Reputation { + gain: number; + loss: number; +} +export interface Dynamic { + expiredOfferThreshold: number; + offerItemCount: MinMax; + price: MinMax; + endTimeSeconds: MinMax; + condition: Condition; + stackablePercent: MinMax; + nonStackableCount: MinMax; + rating: MinMax; + currencies: Record; + showAsSingleStack: string[]; + blacklist: Blacklist; +} +export interface MinMax { + min: number; + max: number; +} +export interface Condition { + conditionChance: number; + min: number; + max: number; +} +export interface Blacklist { + /** + * show/hide trader items that are blacklisted by bsg + */ + traderItems: boolean; + custom: string[]; + enableBsgList: boolean; + enableQuestList: boolean; +} diff --git a/TypeScript/13AddTrader/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/13AddTrader/types/models/spt/config/IRepairConfig.d.ts new file mode 100644 index 0000000..4966eb5 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/config/IRepairConfig.d.ts @@ -0,0 +1,5 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IRepairConfig extends IBaseConfig { + kind: "aki-repair"; + priceMultiplier: number; +} diff --git a/TypeScript/13AddTrader/types/models/spt/config/ITraderConfig.d.ts b/TypeScript/13AddTrader/types/models/spt/config/ITraderConfig.d.ts new file mode 100644 index 0000000..dab73e3 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/config/ITraderConfig.d.ts @@ -0,0 +1,15 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface ITraderConfig extends IBaseConfig { + kind: "aki-trader"; + updateTime: UpdateTime[]; + updateTimeDefault: number; + fenceAssortSize: number; + fenceMaxPresetsCount: number; + fencePresetPriceMult: number; + minDurabilityForSale: number; + fenceItemIgnoreList: string[]; +} +export interface UpdateTime { + traderId: string; + seconds: number; +} diff --git a/TypeScript/13AddTrader/types/models/spt/config/IWeatherConfig.d.ts b/TypeScript/13AddTrader/types/models/spt/config/IWeatherConfig.d.ts new file mode 100644 index 0000000..c52cab3 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/config/IWeatherConfig.d.ts @@ -0,0 +1,21 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface IWeatherConfig extends IBaseConfig { + kind: "aki-weather"; + acceleration: number; + weather: Weather; +} +export interface Weather { + clouds: MinMax; + windSpeed: MinMax; + windDirection: MinMax; + windGustiness: MinMax; + rain: MinMax; + rainIntensity: MinMax; + fog: MinMax; + temp: MinMax; + pressure: MinMax; +} +export interface MinMax { + min: number; + max: number; +} diff --git a/TypeScript/13AddTrader/types/models/spt/controllers/IBotController.d.ts b/TypeScript/13AddTrader/types/models/spt/controllers/IBotController.d.ts new file mode 100644 index 0000000..010e208 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/controllers/IBotController.d.ts @@ -0,0 +1,13 @@ +import { IGenerateBotsRequestData } from "../../eft/bot/IGenerateBotsRequestData"; +import { IBotBase } from "../../eft/common/tables/IBotBase"; +import { IBotCore } from "../../eft/common/tables/IBotCore"; +import { Difficulty } from "../../eft/common/tables/IBotType"; +export interface IBotController { + getBotLimit(type: string): number; + getBotDifficulty(type: string, difficulty: string): IBotCore | Difficulty; + isBotPmc(botRole: string): boolean; + isBotBoss(botRole: string): boolean; + isBotFollower(botRole: string): boolean; + generate(info: IGenerateBotsRequestData, playerScav: boolean): IBotBase[]; + getBotCap(): number; +} diff --git a/TypeScript/13AddTrader/types/models/spt/generators/IBotGenerator.d.ts b/TypeScript/13AddTrader/types/models/spt/generators/IBotGenerator.d.ts new file mode 100644 index 0000000..f3e8586 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/generators/IBotGenerator.d.ts @@ -0,0 +1,10 @@ +import { Inventory as PmcInventory } from "../../eft/common/IPmcData"; +import { Inventory, Chances, Generation } from "../../eft/common/tables/IBotType"; +export interface IBotGenerator { + generateInventory(templateInventory: Inventory, equipmentChances: Chances, generation: Generation, botRole: string, isPmc: boolean): PmcInventory; +} +export interface IExhaustableArray { + getRandomValue(): T; + getFirstValue(): T; + hasValues(): boolean; +} diff --git a/TypeScript/13AddTrader/types/models/spt/generators/ILocationGenerator.d.ts b/TypeScript/13AddTrader/types/models/spt/generators/ILocationGenerator.d.ts new file mode 100644 index 0000000..530ceca --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/generators/ILocationGenerator.d.ts @@ -0,0 +1,6 @@ +import { IStaticContainerProps, IStaticLootDetails, IStaticAmmoDetails, IStaticForcedProps } from "../../eft/common/tables/ILootBase"; +import { ILooseLoot, SpawnpointTemplate } from "../../eft/common/ILooseLoot"; +export interface ILocationGenerator { + generateContainerLoot(containerIn: IStaticContainerProps, staticForced: IStaticForcedProps[], staticLootDist: Record, staticAmmoDist: Record, locationName: string): IStaticContainerProps; + generateDynamicLoot(dynamicLootDist: ILooseLoot, staticAmmoDist: Record, locationName: string): SpawnpointTemplate[]; +} diff --git a/TypeScript/13AddTrader/types/models/spt/generators/IPMCLootGenerator.d.ts b/TypeScript/13AddTrader/types/models/spt/generators/IPMCLootGenerator.d.ts new file mode 100644 index 0000000..a9db89b --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/generators/IPMCLootGenerator.d.ts @@ -0,0 +1,4 @@ +export interface IPMCLootGenerator { + generatePMCPocketLootPool(): string[]; + generatePMCBackpackLootPool(): string[]; +} diff --git a/TypeScript/13AddTrader/types/models/spt/generators/IRagfairAssortGenerator.d.ts b/TypeScript/13AddTrader/types/models/spt/generators/IRagfairAssortGenerator.d.ts new file mode 100644 index 0000000..6670540 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/generators/IRagfairAssortGenerator.d.ts @@ -0,0 +1,4 @@ +import { Item } from "../../eft/common/tables/IItem"; +export interface IRagfairAssortGenerator { + getAssortItems(): Item[]; +} diff --git a/TypeScript/13AddTrader/types/models/spt/generators/IRagfairOfferGenerator.d.ts b/TypeScript/13AddTrader/types/models/spt/generators/IRagfairOfferGenerator.d.ts new file mode 100644 index 0000000..30b4be5 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/generators/IRagfairOfferGenerator.d.ts @@ -0,0 +1,6 @@ +import { IBarterScheme } from "../../eft/common/tables/ITrader"; +import { IRagfairOffer } from "../../eft/ragfair/IRagfairOffer"; +import { Item } from "../../eft/common/tables/IItem"; +export interface IRagfairOfferGenerator { + createOffer(userID: string, time: number, items: Item[], barterScheme: IBarterScheme[], loyalLevel: number, price: number, sellInOnePiece: boolean): IRagfairOffer; +} diff --git a/TypeScript/13AddTrader/types/models/spt/mod/IMod.d.ts b/TypeScript/13AddTrader/types/models/spt/mod/IMod.d.ts new file mode 100644 index 0000000..e6eec79 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/mod/IMod.d.ts @@ -0,0 +1,10 @@ +export declare namespace ModLoader { + interface IMod { + name: string; + version: string; + main?: string; + author?: string; + license: string; + dependencies?: Record; + } +} diff --git a/TypeScript/13AddTrader/types/models/spt/mod/IModLoader.d.ts b/TypeScript/13AddTrader/types/models/spt/mod/IModLoader.d.ts new file mode 100644 index 0000000..5398c9b --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/models/spt/mod/IPackageJsonData.d.ts b/TypeScript/13AddTrader/types/models/spt/mod/IPackageJsonData.d.ts new file mode 100644 index 0000000..09472cd --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/models/spt/ragfair/IRagfairServerPrices.d.ts b/TypeScript/13AddTrader/types/models/spt/ragfair/IRagfairServerPrices.d.ts new file mode 100644 index 0000000..c7d246a --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/ragfair/IRagfairServerPrices.d.ts @@ -0,0 +1,4 @@ +export interface IRagfairServerPrices { + static: Record; + dynamic: Record; +} diff --git a/TypeScript/13AddTrader/types/models/spt/server/IDatabaseTables.d.ts b/TypeScript/13AddTrader/types/models/spt/server/IDatabaseTables.d.ts new file mode 100644 index 0000000..dbb71be --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/models/spt/server/IHttpServer.d.ts b/TypeScript/13AddTrader/types/models/spt/server/IHttpServer.d.ts new file mode 100644 index 0000000..c828399 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/server/IHttpServer.d.ts @@ -0,0 +1,12 @@ +/// +/// +import http, { ServerResponse } from "http"; +import { INotification } from "../../eft/notifier/INotifier"; +export interface IHttpServer { + load(): void; + getCookies(req: http.IncomingMessage): any; + sendFile(resp: ServerResponse, file: any): void; + isConnectionWebSocket(sessionID: string): boolean; + sendResponse(sessionID: string, req: any, resp: any, body: Buffer): void; + sendMessage(sessionID: string, output: INotification): void; +} diff --git a/TypeScript/13AddTrader/types/models/spt/server/ILocaleBase.d.ts b/TypeScript/13AddTrader/types/models/spt/server/ILocaleBase.d.ts new file mode 100644 index 0000000..a20084d --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/models/spt/server/ILocations.d.ts b/TypeScript/13AddTrader/types/models/spt/server/ILocations.d.ts new file mode 100644 index 0000000..18f0262 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/server/ILocations.d.ts @@ -0,0 +1,26 @@ +import { ILocationBase } from "../../eft/common/ILocationBase"; +import { ILooseLoot } from "../../eft/common/ILooseLoot"; +import { ILocationsBase } from "../../eft/common/tables/ILocationsBase"; +export interface ILocations { + bigmap?: ILocationData; + develop?: ILocationData; + factory4_day?: ILocationData; + factory4_night?: ILocationData; + hideout?: ILocationData; + interchange?: ILocationData; + laboratory?: ILocationData; + lighthouse?: ILocationData; + privatearea?: ILocationData; + rezervbase?: ILocationData; + shoreline?: ILocationData; + suburbs?: ILocationData; + tarkovstreets?: ILocationData; + terminal?: ILocationData; + town?: ILocationData; + woods?: ILocationData; + base?: ILocationsBase; +} +export interface ILocationData { + base: ILocationBase; + looseLoot?: ILooseLoot; +} diff --git a/TypeScript/13AddTrader/types/models/spt/server/IServerBase.d.ts b/TypeScript/13AddTrader/types/models/spt/server/IServerBase.d.ts new file mode 100644 index 0000000..d033db3 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/server/IServerBase.d.ts @@ -0,0 +1,4 @@ +export interface IServerBase { + ip: string; + port: number; +} diff --git a/TypeScript/13AddTrader/types/models/spt/server/ISettingsBase.d.ts b/TypeScript/13AddTrader/types/models/spt/server/ISettingsBase.d.ts new file mode 100644 index 0000000..c067cda --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/server/ISettingsBase.d.ts @@ -0,0 +1,43 @@ +export interface ISettingsBase { + config: Config; +} +export interface Config { + AFKTimeoutSeconds: number; + AdditionalRandomDelaySeconds: number; + ClientSendRateLimit: number; + CriticalRetriesCount: number; + DefaultRetriesCount: number; + FirstCycleDelaySeconds: number; + FramerateLimit: FramerateLimit; + GroupStatusInterval: number; + KeepAliveInterval: number; + Mark502and504AsNonImportant: boolean; + MemoryManagementSettings: MemoryManagementSettings; + NVidiaHighlights: boolean; + NextCycleDelaySeconds: number; + PingServerResultSendInterval: number; + PingServersInterval: number; + ReleaseProfiler: ReleaseProfiler; + SecondCycleDelaySeconds: number; + TurnOffLogging: boolean; + WeaponOverlapDistanceCulling: number; + WebDiagnosticsEnabled: boolean; +} +export interface FramerateLimit { + MaxFramerateGameLimit: number; + MaxFramerateLobbyLimit: number; + MinFramerateLimit: number; +} +export interface MemoryManagementSettings { + AggressiveGC: boolean; + GigabytesRequiredToDisableGCDuringRaid: number; + HeapPreAllocationEnabled: boolean; + HeapPreAllocationMB: number; + OverrideRamCleanerSettings: boolean; + RamCleanerEnabled: boolean; +} +export interface ReleaseProfiler { + Enabled: boolean; + MaxRecords: number; + RecordTriggerValue: number; +} diff --git a/TypeScript/13AddTrader/types/models/spt/utils/IAsyncQueue.d.ts b/TypeScript/13AddTrader/types/models/spt/utils/IAsyncQueue.d.ts new file mode 100644 index 0000000..2be801a --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/utils/IAsyncQueue.d.ts @@ -0,0 +1,4 @@ +import { ICommand } from "./ICommand"; +export interface IAsyncQueue { + waitFor(command: ICommand): Promise; +} diff --git a/TypeScript/13AddTrader/types/models/spt/utils/ICommand.d.ts b/TypeScript/13AddTrader/types/models/spt/utils/ICommand.d.ts new file mode 100644 index 0000000..696bb83 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/utils/ICommand.d.ts @@ -0,0 +1,4 @@ +export interface ICommand { + uuid: string; + cmd: () => Promise; +} diff --git a/TypeScript/13AddTrader/types/models/spt/utils/ILogger.d.ts b/TypeScript/13AddTrader/types/models/spt/utils/ILogger.d.ts new file mode 100644 index 0000000..c983701 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/models/spt/utils/IUuidGenerator.d.ts b/TypeScript/13AddTrader/types/models/spt/utils/IUuidGenerator.d.ts new file mode 100644 index 0000000..3870469 --- /dev/null +++ b/TypeScript/13AddTrader/types/models/spt/utils/IUuidGenerator.d.ts @@ -0,0 +1,3 @@ +export interface IUUidGenerator { + generate(): string; +} diff --git a/TypeScript/13AddTrader/types/routers/HttpRouter.d.ts b/TypeScript/13AddTrader/types/routers/HttpRouter.d.ts new file mode 100644 index 0000000..44edc0b --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/ImageRouter.d.ts b/TypeScript/13AddTrader/types/routers/ImageRouter.d.ts new file mode 100644 index 0000000..97e580d --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/ItemEventRouter.d.ts b/TypeScript/13AddTrader/types/routers/ItemEventRouter.d.ts new file mode 100644 index 0000000..bb20152 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/dynamic/BotDynamicRouter.d.ts b/TypeScript/13AddTrader/types/routers/dynamic/BotDynamicRouter.d.ts new file mode 100644 index 0000000..dd2f68a --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/dynamic/BundleDynamicRouter.d.ts b/TypeScript/13AddTrader/types/routers/dynamic/BundleDynamicRouter.d.ts new file mode 100644 index 0000000..be27008 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/dynamic/CustomizationDynamicRouter.d.ts b/TypeScript/13AddTrader/types/routers/dynamic/CustomizationDynamicRouter.d.ts new file mode 100644 index 0000000..03a5967 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/dynamic/DataDynamicRouter.d.ts b/TypeScript/13AddTrader/types/routers/dynamic/DataDynamicRouter.d.ts new file mode 100644 index 0000000..c30501a --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/dynamic/HttpDynamicRouter.d.ts b/TypeScript/13AddTrader/types/routers/dynamic/HttpDynamicRouter.d.ts new file mode 100644 index 0000000..b2933e9 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/dynamic/InraidDynamicRouter.d.ts b/TypeScript/13AddTrader/types/routers/dynamic/InraidDynamicRouter.d.ts new file mode 100644 index 0000000..ea4a9ae --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/dynamic/LocationDynamicRouter.d.ts b/TypeScript/13AddTrader/types/routers/dynamic/LocationDynamicRouter.d.ts new file mode 100644 index 0000000..30741db --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/dynamic/NotifierDynamicRouter.d.ts b/TypeScript/13AddTrader/types/routers/dynamic/NotifierDynamicRouter.d.ts new file mode 100644 index 0000000..4786817 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/dynamic/TraderDynamicRouter.d.ts b/TypeScript/13AddTrader/types/routers/dynamic/TraderDynamicRouter.d.ts new file mode 100644 index 0000000..a100b4c --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/item_events/CustomizationItemEventRouter.d.ts b/TypeScript/13AddTrader/types/routers/item_events/CustomizationItemEventRouter.d.ts new file mode 100644 index 0000000..3025e2c --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/item_events/HealthItemEventRouter.d.ts b/TypeScript/13AddTrader/types/routers/item_events/HealthItemEventRouter.d.ts new file mode 100644 index 0000000..bad9af2 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/item_events/HideoutItemEventRouter.d.ts b/TypeScript/13AddTrader/types/routers/item_events/HideoutItemEventRouter.d.ts new file mode 100644 index 0000000..2cec18b --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/item_events/InsuranceItemEventRouter.d.ts b/TypeScript/13AddTrader/types/routers/item_events/InsuranceItemEventRouter.d.ts new file mode 100644 index 0000000..8efc2c2 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/item_events/InventoryItemEventRouter.d.ts b/TypeScript/13AddTrader/types/routers/item_events/InventoryItemEventRouter.d.ts new file mode 100644 index 0000000..1d93e7b --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/item_events/NoteItemEventRouter.d.ts b/TypeScript/13AddTrader/types/routers/item_events/NoteItemEventRouter.d.ts new file mode 100644 index 0000000..12af594 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/item_events/PresetBuildItemEventRouter.d.ts b/TypeScript/13AddTrader/types/routers/item_events/PresetBuildItemEventRouter.d.ts new file mode 100644 index 0000000..7298c52 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/item_events/QuestItemEventRouter.d.ts b/TypeScript/13AddTrader/types/routers/item_events/QuestItemEventRouter.d.ts new file mode 100644 index 0000000..9944ae9 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/item_events/RagfairItemEventRouter.d.ts b/TypeScript/13AddTrader/types/routers/item_events/RagfairItemEventRouter.d.ts new file mode 100644 index 0000000..88e52ba --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/item_events/RepairItemEventRouter.d.ts b/TypeScript/13AddTrader/types/routers/item_events/RepairItemEventRouter.d.ts new file mode 100644 index 0000000..b292ded --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/item_events/TradeItemEventRouter.d.ts b/TypeScript/13AddTrader/types/routers/item_events/TradeItemEventRouter.d.ts new file mode 100644 index 0000000..1bca2b8 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/item_events/WishlistItemEventRouter.d.ts b/TypeScript/13AddTrader/types/routers/item_events/WishlistItemEventRouter.d.ts new file mode 100644 index 0000000..38831f6 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/save_load/HealthSaveLoadRouter.d.ts b/TypeScript/13AddTrader/types/routers/save_load/HealthSaveLoadRouter.d.ts new file mode 100644 index 0000000..114f5b2 --- /dev/null +++ b/TypeScript/13AddTrader/types/routers/save_load/HealthSaveLoadRouter.d.ts @@ -0,0 +1,7 @@ +import { IAkiProfile } from "../../models/eft/profile/IAkiProfile"; +import { HandledRoute, SaveLoadRouter } from "../../di/Router"; +export declare class HealthSaveLoadRouter extends SaveLoadRouter { + constructor(); + getHandledRoutes(): HandledRoute[]; + handleLoad(profile: IAkiProfile): IAkiProfile; +} diff --git a/TypeScript/13AddTrader/types/routers/save_load/InraidSaveLoadRouter.d.ts b/TypeScript/13AddTrader/types/routers/save_load/InraidSaveLoadRouter.d.ts new file mode 100644 index 0000000..4c00b40 --- /dev/null +++ b/TypeScript/13AddTrader/types/routers/save_load/InraidSaveLoadRouter.d.ts @@ -0,0 +1,7 @@ +import { IAkiProfile } from "../../models/eft/profile/IAkiProfile"; +import { HandledRoute, SaveLoadRouter } from "../../di/Router"; +export declare class InraidSaveLoadRouter extends SaveLoadRouter { + constructor(); + getHandledRoutes(): HandledRoute[]; + handleLoad(profile: IAkiProfile): IAkiProfile; +} diff --git a/TypeScript/13AddTrader/types/routers/save_load/InsuranceSaveLoadRouter.d.ts b/TypeScript/13AddTrader/types/routers/save_load/InsuranceSaveLoadRouter.d.ts new file mode 100644 index 0000000..30ce98e --- /dev/null +++ b/TypeScript/13AddTrader/types/routers/save_load/InsuranceSaveLoadRouter.d.ts @@ -0,0 +1,7 @@ +import { IAkiProfile } from "../../models/eft/profile/IAkiProfile"; +import { HandledRoute, SaveLoadRouter } from "../../di/Router"; +export declare class InsuranceSaveLoadRouter extends SaveLoadRouter { + constructor(); + getHandledRoutes(): HandledRoute[]; + handleLoad(profile: IAkiProfile): IAkiProfile; +} diff --git a/TypeScript/13AddTrader/types/routers/save_load/ProfileSaveLoadRouter.d.ts b/TypeScript/13AddTrader/types/routers/save_load/ProfileSaveLoadRouter.d.ts new file mode 100644 index 0000000..16c7619 --- /dev/null +++ b/TypeScript/13AddTrader/types/routers/save_load/ProfileSaveLoadRouter.d.ts @@ -0,0 +1,7 @@ +import { IAkiProfile } from "../../models/eft/profile/IAkiProfile"; +import { HandledRoute, SaveLoadRouter } from "../../di/Router"; +export declare class ProfileSaveLoadRouter extends SaveLoadRouter { + constructor(); + getHandledRoutes(): HandledRoute[]; + handleLoad(profile: IAkiProfile): IAkiProfile; +} diff --git a/TypeScript/13AddTrader/types/routers/serializers/BundleSerializer.d.ts b/TypeScript/13AddTrader/types/routers/serializers/BundleSerializer.d.ts new file mode 100644 index 0000000..7952e9c --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/serializers/ImageSerializer.d.ts b/TypeScript/13AddTrader/types/routers/serializers/ImageSerializer.d.ts new file mode 100644 index 0000000..29340d0 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/serializers/NotifySerializer.d.ts b/TypeScript/13AddTrader/types/routers/serializers/NotifySerializer.d.ts new file mode 100644 index 0000000..8be8ac2 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/BotStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/BotStaticRouter.d.ts new file mode 100644 index 0000000..d8b0bf4 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/BundleStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/BundleStaticRouter.d.ts new file mode 100644 index 0000000..3905b82 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/CustomizationStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/CustomizationStaticRouter.d.ts new file mode 100644 index 0000000..46c71b8 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/DataStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/DataStaticRouter.d.ts new file mode 100644 index 0000000..a493d3a --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/DialogStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/DialogStaticRouter.d.ts new file mode 100644 index 0000000..a59fb14 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/GameStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/GameStaticRouter.d.ts new file mode 100644 index 0000000..988b673 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/HealthStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/HealthStaticRouter.d.ts new file mode 100644 index 0000000..e644861 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/InraidStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/InraidStaticRouter.d.ts new file mode 100644 index 0000000..66ed860 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/InsuranceStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/InsuranceStaticRouter.d.ts new file mode 100644 index 0000000..8da26b3 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/ItemEventStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/ItemEventStaticRouter.d.ts new file mode 100644 index 0000000..08ba6bb --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/LauncherStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/LauncherStaticRouter.d.ts new file mode 100644 index 0000000..9d07f78 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/LocationStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/LocationStaticRouter.d.ts new file mode 100644 index 0000000..9c5c52e --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/MatchStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/MatchStaticRouter.d.ts new file mode 100644 index 0000000..d746381 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/NotifierStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/NotifierStaticRouter.d.ts new file mode 100644 index 0000000..1c8566d --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/PresetStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/PresetStaticRouter.d.ts new file mode 100644 index 0000000..2272f82 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/ProfileStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/ProfileStaticRouter.d.ts new file mode 100644 index 0000000..fd787f1 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/QuestStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/QuestStaticRouter.d.ts new file mode 100644 index 0000000..fda3c23 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/RagfairStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/RagfairStaticRouter.d.ts new file mode 100644 index 0000000..618374f --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/TraderStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/TraderStaticRouter.d.ts new file mode 100644 index 0000000..18f0629 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/routers/static/WeatherStaticRouter.d.ts b/TypeScript/13AddTrader/types/routers/static/WeatherStaticRouter.d.ts new file mode 100644 index 0000000..61b904d --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/servers/ConfigServer.d.ts b/TypeScript/13AddTrader/types/servers/ConfigServer.d.ts new file mode 100644 index 0000000..83af38d --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/servers/DatabaseServer.d.ts b/TypeScript/13AddTrader/types/servers/DatabaseServer.d.ts new file mode 100644 index 0000000..521bcf9 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/servers/HttpServer.d.ts b/TypeScript/13AddTrader/types/servers/HttpServer.d.ts new file mode 100644 index 0000000..274a299 --- /dev/null +++ b/TypeScript/13AddTrader/types/servers/HttpServer.d.ts @@ -0,0 +1,48 @@ +/// +/// +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/TypeScript/13AddTrader/types/servers/RagfairServer.d.ts b/TypeScript/13AddTrader/types/servers/RagfairServer.d.ts new file mode 100644 index 0000000..cf56d64 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/servers/SaveServer.d.ts b/TypeScript/13AddTrader/types/servers/SaveServer.d.ts new file mode 100644 index 0000000..fdf92e4 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/services/FenceService.d.ts b/TypeScript/13AddTrader/types/services/FenceService.d.ts new file mode 100644 index 0000000..27d14ef --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/services/HashCacheService.d.ts b/TypeScript/13AddTrader/types/services/HashCacheService.d.ts new file mode 100644 index 0000000..c9b0170 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/services/InsuranceService.d.ts b/TypeScript/13AddTrader/types/services/InsuranceService.d.ts new file mode 100644 index 0000000..160faba --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/services/MatchLocationService.d.ts b/TypeScript/13AddTrader/types/services/MatchLocationService.d.ts new file mode 100644 index 0000000..f7b7d3b --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/services/ModCompilerService.d.ts b/TypeScript/13AddTrader/types/services/ModCompilerService.d.ts new file mode 100644 index 0000000..cf7cc21 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/services/NotificationService.d.ts b/TypeScript/13AddTrader/types/services/NotificationService.d.ts new file mode 100644 index 0000000..9c6c143 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/services/PaymentService.d.ts b/TypeScript/13AddTrader/types/services/PaymentService.d.ts new file mode 100644 index 0000000..0a6c4d6 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/services/PlayerService.d.ts b/TypeScript/13AddTrader/types/services/PlayerService.d.ts new file mode 100644 index 0000000..99e5986 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/services/RagfairCategoriesService.d.ts b/TypeScript/13AddTrader/types/services/RagfairCategoriesService.d.ts new file mode 100644 index 0000000..fb9efa2 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/services/RagfairLinkedItemService.d.ts b/TypeScript/13AddTrader/types/services/RagfairLinkedItemService.d.ts new file mode 100644 index 0000000..3dbcf6f --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/services/RagfairOfferService.d.ts b/TypeScript/13AddTrader/types/services/RagfairOfferService.d.ts new file mode 100644 index 0000000..9b1bf8d --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/services/RagfairPriceService.d.ts b/TypeScript/13AddTrader/types/services/RagfairPriceService.d.ts new file mode 100644 index 0000000..7cdf854 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/services/RagfairRequiredItemsService.d.ts b/TypeScript/13AddTrader/types/services/RagfairRequiredItemsService.d.ts new file mode 100644 index 0000000..e4582d0 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/services/TraderAssortService.d.ts b/TypeScript/13AddTrader/types/services/TraderAssortService.d.ts new file mode 100644 index 0000000..ccb9e45 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/services/mod/dynamicRouter/DynamicRouterMod.d.ts b/TypeScript/13AddTrader/types/services/mod/dynamicRouter/DynamicRouterMod.d.ts new file mode 100644 index 0000000..abfe237 --- /dev/null +++ b/TypeScript/13AddTrader/types/services/mod/dynamicRouter/DynamicRouterMod.d.ts @@ -0,0 +1,6 @@ +import { DynamicRouter, RouteAction } from "../../../di/Router"; +export declare class DynamicRouterMod extends DynamicRouter { + private topLevelRoute; + constructor(routes: RouteAction[], topLevelRoute: string); + getTopLevelRoute(): string; +} diff --git a/TypeScript/13AddTrader/types/services/mod/dynamicRouter/DynamicRouterModService.d.ts b/TypeScript/13AddTrader/types/services/mod/dynamicRouter/DynamicRouterModService.d.ts new file mode 100644 index 0000000..6742fc6 --- /dev/null +++ b/TypeScript/13AddTrader/types/services/mod/dynamicRouter/DynamicRouterModService.d.ts @@ -0,0 +1,7 @@ +import { DependencyContainer } from "tsyringe"; +import { RouteAction } from "../../../di/Router"; +export declare class DynamicRouterModService { + private container; + constructor(container: DependencyContainer); + registerDynamicRouter(name: string, routes: RouteAction[], topLevelRoute: string): void; +} diff --git a/TypeScript/13AddTrader/types/services/mod/image/imageRouteService.d.ts b/TypeScript/13AddTrader/types/services/mod/image/imageRouteService.d.ts new file mode 100644 index 0000000..854083c --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/services/mod/onLoad/OnLoadMod.d.ts b/TypeScript/13AddTrader/types/services/mod/onLoad/OnLoadMod.d.ts new file mode 100644 index 0000000..53fb062 --- /dev/null +++ b/TypeScript/13AddTrader/types/services/mod/onLoad/OnLoadMod.d.ts @@ -0,0 +1,8 @@ +import { OnLoad } from "../../../di/OnLoad"; +export declare class OnLoadMod extends OnLoad { + private onLoadOverride; + private getRouteOverride; + constructor(onLoadOverride: () => void, getRouteOverride: () => string); + onLoad(): void; + getRoute(): string; +} diff --git a/TypeScript/13AddTrader/types/services/mod/onLoad/OnLoadModService.d.ts b/TypeScript/13AddTrader/types/services/mod/onLoad/OnLoadModService.d.ts new file mode 100644 index 0000000..89bad14 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/services/mod/onUpdate/OnUpdateMod.d.ts b/TypeScript/13AddTrader/types/services/mod/onUpdate/OnUpdateMod.d.ts new file mode 100644 index 0000000..ee89043 --- /dev/null +++ b/TypeScript/13AddTrader/types/services/mod/onUpdate/OnUpdateMod.d.ts @@ -0,0 +1,8 @@ +import { OnUpdate } from "../../../di/OnUpdate"; +export declare class OnUpdateMod extends OnUpdate { + private onUpdateOverride; + private getRouteOverride; + constructor(onUpdateOverride: (timeSinceLastRun: number) => boolean, getRouteOverride: () => string); + onUpdate(timeSinceLastRun: number): boolean; + getRoute(): string; +} diff --git a/TypeScript/13AddTrader/types/services/mod/onUpdate/OnUpdateModService.d.ts b/TypeScript/13AddTrader/types/services/mod/onUpdate/OnUpdateModService.d.ts new file mode 100644 index 0000000..32419f4 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/services/mod/staticRouter/StaticRouterMod.d.ts b/TypeScript/13AddTrader/types/services/mod/staticRouter/StaticRouterMod.d.ts new file mode 100644 index 0000000..1e62747 --- /dev/null +++ b/TypeScript/13AddTrader/types/services/mod/staticRouter/StaticRouterMod.d.ts @@ -0,0 +1,6 @@ +import { RouteAction, StaticRouter } from "../../../di/Router"; +export declare class StaticRouterMod extends StaticRouter { + private topLevelRoute; + constructor(routes: RouteAction[], topLevelRoute: string); + getTopLevelRoute(): string; +} diff --git a/TypeScript/13AddTrader/types/services/mod/staticRouter/StaticRouterModService.d.ts b/TypeScript/13AddTrader/types/services/mod/staticRouter/StaticRouterModService.d.ts new file mode 100644 index 0000000..d4c42aa --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/utils/App.d.ts b/TypeScript/13AddTrader/types/utils/App.d.ts new file mode 100644 index 0000000..a11f576 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/utils/AyncQueue.d.ts b/TypeScript/13AddTrader/types/utils/AyncQueue.d.ts new file mode 100644 index 0000000..a99aa37 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/utils/DatabaseImporter.d.ts b/TypeScript/13AddTrader/types/utils/DatabaseImporter.d.ts new file mode 100644 index 0000000..97dda30 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/utils/HashUtil.d.ts b/TypeScript/13AddTrader/types/utils/HashUtil.d.ts new file mode 100644 index 0000000..cf92b47 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/utils/HttpResponseUtil.d.ts b/TypeScript/13AddTrader/types/utils/HttpResponseUtil.d.ts new file mode 100644 index 0000000..85c28bd --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/utils/JsonUtil.d.ts b/TypeScript/13AddTrader/types/utils/JsonUtil.d.ts new file mode 100644 index 0000000..20b7448 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/utils/Logger.d.ts b/TypeScript/13AddTrader/types/utils/Logger.d.ts new file mode 100644 index 0000000..9d5b32a --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/utils/MathUtil.d.ts b/TypeScript/13AddTrader/types/utils/MathUtil.d.ts new file mode 100644 index 0000000..ea5fd69 --- /dev/null +++ b/TypeScript/13AddTrader/types/utils/MathUtil.d.ts @@ -0,0 +1,53 @@ +export declare class MathUtil { + /** + * Helper to create the sum of all array elements + * @param {array} values The array with numbers of which to calculate the sum + * @return {number} sum(values) + */ + arraySum(values: number[]): number; + /** + * Helper to create the cumulative sum of all array elements + * arrayCumsum([1, 2, 3, 4]) = [1, 3, 6, 10] + * @param {array} values The array with numbers of which to calculate the cumulative sum + * @return {array} cumsum(values) + */ + arrayCumsum(values: number[]): number[]; + /** + * Helper to create the product of each element times factor + * @param {array} values The array of numbers which shall be multiplied by the factor + * @return {array} array times factor + */ + arrayProd(values: number[], factor: number): number[]; + /** + * Helper to add a constant to all array elements + * @param {array} values The array of numbers to which the summand should be added + * @return {array} array plus summand + */ + arrayAdd(values: number[], summand: number): number[]; + /** + * Map a value from an input range to an output range linearly + * + * Example: + * a_min = 0; a_max=1; + * b_min = 1; b_max=3; + * MathUtil.mapToRange(0.5, a_min, a_max, b_min, b_max) // returns 2 + * + * @param {number} x The value from input range to be mapped to output range + * @param {number} minIn min of input range + * @param {number} maxIn max of input range + * @param {number} minOut min of output range + * @param {number} maxOut max of outout range + * @return {number} the result of the mapping + */ + mapToRange(x: number, minIn: number, maxIn: number, minOut: number, maxOut: number): number; + /** + * Linear interpolation + * e.g. used to do a continuous integration for quest rewards which are defined for specific support centers of pmcLevel + * + * @param {string} xp the point of x at which to interpolate + * @param {array} x support points in x (of same length as y) + * @param {array} y support points in y (of same length as x) + * @return {number} y(xp) + */ + interp1(xp: number, x: number[], y: number[]): number; +} diff --git a/TypeScript/13AddTrader/types/utils/ObjectId.d.ts b/TypeScript/13AddTrader/types/utils/ObjectId.d.ts new file mode 100644 index 0000000..b100572 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/utils/RandomUtil.d.ts b/TypeScript/13AddTrader/types/utils/RandomUtil.d.ts new file mode 100644 index 0000000..3a3ecb6 --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/utils/TimeUtil.d.ts b/TypeScript/13AddTrader/types/utils/TimeUtil.d.ts new file mode 100644 index 0000000..9733be9 --- /dev/null +++ b/TypeScript/13AddTrader/types/utils/TimeUtil.d.ts @@ -0,0 +1,8 @@ +export declare class TimeUtil { + static readonly oneHourAsSeconds = 3600; + formatTime(date: Date): string; + formatDate(date: Date): string; + getDate(): string; + getTime(): string; + getTimestamp(): number; +} diff --git a/TypeScript/13AddTrader/types/utils/UUidGenerator.d.ts b/TypeScript/13AddTrader/types/utils/UUidGenerator.d.ts new file mode 100644 index 0000000..000b719 --- /dev/null +++ b/TypeScript/13AddTrader/types/utils/UUidGenerator.d.ts @@ -0,0 +1,4 @@ +import { IUUidGenerator } from "../models/spt/utils/IUuidGenerator"; +export declare class UUidGenerator implements IUUidGenerator { + generate: () => string; +} diff --git a/TypeScript/13AddTrader/types/utils/VFS.d.ts b/TypeScript/13AddTrader/types/utils/VFS.d.ts new file mode 100644 index 0000000..7e66fac --- /dev/null +++ b/TypeScript/13AddTrader/types/utils/VFS.d.ts @@ -0,0 +1,55 @@ +/// +/// +import "reflect-metadata"; +import fs from "fs"; +import { IAsyncQueue } from "../models/spt/utils/IAsyncQueue"; +import { IUUidGenerator } from "../models/spt/utils/IUuidGenerator"; +export declare class VFS { + 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/TypeScript/13AddTrader/types/utils/Watermark.d.ts b/TypeScript/13AddTrader/types/utils/Watermark.d.ts new file mode 100644 index 0000000..3a8cb3a --- /dev/null +++ b/TypeScript/13AddTrader/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/TypeScript/13AddTrader/types/utils/decorators/Singleton.d.ts b/TypeScript/13AddTrader/types/utils/decorators/Singleton.d.ts new file mode 100644 index 0000000..7e89026 --- /dev/null +++ b/TypeScript/13AddTrader/types/utils/decorators/Singleton.d.ts @@ -0,0 +1,4 @@ +import type constructor from "./constructor"; +import { InjectionToken } from "tsyringe"; +declare function singleton(token?: InjectionToken): (target: constructor) => void; +export default singleton; diff --git a/TypeScript/13AddTrader/types/utils/decorators/constructor.d.ts b/TypeScript/13AddTrader/types/utils/decorators/constructor.d.ts new file mode 100644 index 0000000..416f354 --- /dev/null +++ b/TypeScript/13AddTrader/types/utils/decorators/constructor.d.ts @@ -0,0 +1,4 @@ +declare type constructor = { + new (...args: any[]): T; +}; +export default constructor; From 0cd6b78504ed96c25891891b3af3cb1ddd2fc379 Mon Sep 17 00:00:00 2001 From: Mangiang Date: Sat, 4 Jun 2022 23:44:00 -0400 Subject: [PATCH 3/3] fix: add typing for locales --- TypeScript/13AddTrader/src/mod.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/TypeScript/13AddTrader/src/mod.ts b/TypeScript/13AddTrader/src/mod.ts index 8abcbea..508fc93 100644 --- a/TypeScript/13AddTrader/src/mod.ts +++ b/TypeScript/13AddTrader/src/mod.ts @@ -12,6 +12,7 @@ import { ITraderAssort, ITraderBase } from "@spt-aki/models/eft/common/tables/IT import { ITraderConfig, UpdateTime } from "@spt-aki/models/spt/config/ITraderConfig"; import { JsonUtil } from "@spt-aki/utils/JsonUtil"; import { Item } from "@spt-aki/models/eft/common/tables/IItem"; +import { ILocaleGlobalBase } from "@spt-aki/models/spt/server/ILocaleBase"; // The new trader config import * as baseJson from "../db/base.json"; @@ -53,7 +54,7 @@ class SampleTrader implements IMod { }; // For each language, add locale for the new trader - const locales = Object.values(tables.locales.global); + const locales = Object.values(tables.locales.global) as ILocaleGlobalBase[]; for (const locale of locales) { locale.trading[baseJson._id] = { FullName: baseJson.name,

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