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 0000000..3e28418 Binary files /dev/null and b/JavaScript/Revingly-FoodDrink-Redux/res/FoodDrink.jpg differ 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 0000000..effb80f Binary files /dev/null and b/TypeScript/11AddTrader/res/cat.png differ diff --git a/TypeScript/11AddTrader/src/mod.ts b/TypeScript/11AddTrader/src/mod.ts new file mode 100644 index 0000000..f37fe7e --- /dev/null +++ b/TypeScript/11AddTrader/src/mod.ts @@ -0,0 +1,146 @@ +import { DependencyContainer } from "tsyringe"; +import type { IMod } from "../types/models/external/mod"; +import type { ILogger } from "../types/models/spt/utils/ILogger"; +import type { InitialModLoader } from "../types/loaders/InitialModLoader"; +import type { DatabaseServer } from "../types/servers/DatabaseServer"; +import type { IDatabaseTables } from "../types/models/spt/server/IDatabaseTables"; +import type { HashUtil } from "../types/utils/HashUtil"; +import type { ImageRouteService } from "../types/services/mod/image/ImageRouteService"; +import type { ConfigServer } from "../types/servers/ConfigServer"; +import { ConfigTypes } from "../types/models/enums/ConfigTypes"; +import type { ITraderBase } from "../types/models/eft/common/tables/ITrader"; +import type { ITraderConfig, UpdateTime } from '../types/models/spt/config/ITraderConfig'; +import type { StaticRouterModService } from '../types/services/mod/staticRouter/StaticRouterModService'; +import { original_prices } from "../config/config.json"; +import * as baseJson from "../db/base.json"; +import { JsonUtil } from "../types/utils/JsonUtil"; + +class SampleTrader implements IMod { + mod: string + tables: IDatabaseTables + initialModLoader: InitialModLoader + hashUtil: HashUtil + + constructor() { + this.mod = "SampleTrader"; + } + + + // Perform these actions before server fully loads + public load(container: DependencyContainer): void { + 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: 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" 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 0000000..f3ccda2 Binary files /dev/null and b/TypeScript/13AddTrader/res/cat.jpg differ diff --git a/TypeScript/13AddTrader/src/mod.ts b/TypeScript/13AddTrader/src/mod.ts new file mode 100644 index 0000000..508fc93 --- /dev/null +++ b/TypeScript/13AddTrader/src/mod.ts @@ -0,0 +1,130 @@ +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"; +import { ILocaleGlobalBase } from "@spt-aki/models/spt/server/ILocaleBase"; + +// 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) as ILocaleGlobalBase[]; + 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;