Commit Graph

1623 Commits

Author SHA1 Message Date
Dev
c710169e3d Fixed bad error throw 2024-05-28 14:23:01 +01:00
Dev
7cdac4e38b Added getTrader() and utilise inside various classes 2024-05-28 14:13:44 +01:00
Dev
fdb7a2b7d8 Updated various classes to use DatabaseService instead of DatabaseServer 2024-05-28 13:59:19 +01:00
Dev
9f1e0693f5 Make use of DatabaseService inside ProfileFixerService and CustomItemService 2024-05-28 12:27:46 +01:00
Dev
4c08d64ca5 Make use of DatabaseService inside GameControler and RagfaiServerHelper 2024-05-28 11:17:38 +01:00
Dev
e78087818f Add DatabaseService as safer alternate to DatabaseServer for accessing db 2024-05-28 11:13:27 +01:00
Dev
3d4447c978 Added ITemplates interface 2024-05-28 11:11:50 +01:00
Dev
d6f7374a9a Added IHideout interface 2024-05-28 10:41:07 +01:00
Dev
17882ddeab Add interface for database bots object 2024-05-28 10:33:29 +01:00
Dev
65f27a7d8c Fixed various Object is possibly undefined warnings 2024-05-28 10:25:23 +01:00
Dev
e0eaadbeef Added implementation of adjusting hideout area level via mails profileChangeEvents property 2024-05-27 21:30:40 +01:00
Alex
173a726f33 Removed all null references in favor of undefined (!354)
Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT/Server/pulls/354
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
2024-05-27 20:06:07 +00:00
Dev
a37664f43a Localised various errors 2024-05-27 20:06:10 +01:00
Alex
aee391ec1d Null checks first pass (!353)
Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT/Server/pulls/353
2024-05-27 16:05:16 +00:00
Dev
e5fd26b89c Add system to purchase all clothing from trader on profile creation - enabled for tourney profile
Fixed USEC profiles not having fence locked on tourney profile creation
2024-05-27 16:30:03 +01:00
Dev
edbb6cec19 Updated _proto inside ITemplateItem nullable
Added `ItemType` enum for `_type` property in  `ITemplateItem`
2024-05-27 13:59:25 +01:00
Dev
82c6add9ab Improved insurance calculation accuracy with help from Doctor
Removed `insuranceMultipler` from `insurance.json` config, no longer necessary
2024-05-27 13:42:28 +01:00
Dev
40bc26dfd0 Improved localization text for ragfair-unable_to_find_item_price_for_item_in_flea_handbook 2024-05-27 10:26:11 +01:00
Dev
673256e5fa Added disableLootOnBotTypes property to bot.json config to allow disabling loot on bots by their type 2024-05-26 16:32:39 +01:00
Dev
88242238f9 Peppered fillMagazineWithCartridge() with guards to assist players with finding cause of error 2024-05-26 12:17:47 +01:00
Dev
86c383c97b Added trader assort item blacklist system. Can be applied per profile
Enabled for Tournament profile

Added support to server to handle `AssortmentUnlockRule` mails
2024-05-25 21:21:23 +01:00
Dev
d3b8138bab Ignored various property naming lint issues 2024-05-25 15:57:11 +01:00
Dev
ece45f0788 Ignored various property naming lint issues 2024-05-25 15:53:49 +01:00
Dev
923a92169d Fixed multiple ragfair bans being added on profile creation 2024-05-25 15:46:01 +01:00
Dev
ef8307540b Fixed issue with redeemProfileReward() not correctly levelling up traders, causing player to only see level 1 trader items until a restart 2024-05-25 15:45:27 +01:00
Dev
ca737d2f62 Added ability to flag a profile as flea banned via config
Updated tournament profiles to use new system
Added `getTimeStampFromNowDays()` helper to `TimeUtil`
Improved accuracy of `Bans` property in profile
2024-05-25 15:09:52 +01:00
Dev
eba65cdd83 Added new Tournament profile. Flea blacklisted. Has special gift code. 2024-05-25 14:45:36 +01:00
Dev
aa03a002ed Fixed profileChangeEvent Skill failing when invalid skill passed in 2024-05-25 14:40:49 +01:00
Dev
e505f86137 Fixed sendGiftToPlayer() not correctly sending profile change events 2024-05-25 14:33:22 +01:00
Dev
18a5c49812 Add trader id to getItemPrices() 2024-05-25 10:40:32 +01:00
Dev
e2dd677b40 Fixed getLocalesGlobal() not correctly falling back to english when locale not found 2024-05-24 23:23:59 +01:00
Dev
612b1b7940 Localized more warnings 2024-05-24 16:42:42 +01:00
Dev
ed50a89e85 Added localisation to InsuranceController 2024-05-24 15:51:16 +01:00
Dev
36a43f38ab Updated locales 2024-05-24 15:33:54 +01:00
Dev
6623a86d0f Improved how PMC difficulty values are generated to improve PMC vs PMC settings
Moved difficulty-related into `BotDifficultyHelper`
Made `typeBeingEdited` property in `addBotToEnemyList()` optional
2024-05-24 10:58:55 +01:00
Dev
f68827bdc2 Added ability to insert custom text into the server watermark at the bottom via core.json config 2024-05-23 21:40:59 +01:00
Dev
198f864fe6 Added additional property 2024-05-23 18:10:24 +01:00
Kaeno
c0d3c5384f QuestitemInsurance (!350)
Add ability to tell if we planted the item at a quest location (fishing gear, SV98) and dont return it with insurance

Reviewed-on: https://dev.sp-tarkov.com/SPT/Server/pulls/350
Co-authored-by: Kaeno <kaeno@noreply.dev.sp-tarkov.com>
Co-committed-by: Kaeno <kaeno@noreply.dev.sp-tarkov.com>
2024-05-22 19:57:37 +00:00
Dev
4081508bf3 Improved accuracy of flea offer creation
`user` object of each offer matches live
Added `getPmcNicknameOfMaxLength()` to `botHelper`
2024-05-22 13:26:35 +01:00
Dev
961210f73c Renamed function to clarify what it does 2024-05-22 12:51:04 +01:00
Dev
2b3ee4f15c Improved how AID is obtained when generating a flea offer 2024-05-22 12:50:19 +01:00
Dev
2edd1695f6 Improved locale text for modloader-outdated_sptversion_field 2024-05-22 11:23:38 +01:00
Dev
cd965bb733 Refactored 2 functions to accept a request object instead of 5+ parameters generateModsForWeapon() and chooseModToPutIntoSlot()
Store meta-data on weapon as its being generated e.g. if it has an optic/front sight/rear sight
use above meta-data to force a low/high profile gas block on weapon during generation
2024-05-21 23:22:16 +01:00
Kaeno
37f4a23acf Fix flea market error when clicking on user. Handled responses that wasn't been handled correctly (!348)
:)

Reviewed-on: https://dev.sp-tarkov.com/SPT/Server/pulls/348
2024-05-21 21:24:57 +00:00
Dev
6656c733a3 Added migration path for 3.8.3 profiles into new 3.9.0 structure 2024-05-21 19:47:01 +01:00
Alex
d13e86ba46 Rebranding to SPT (!345)
Rebranded src code and scripts to SPT

Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/345
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
2024-05-21 17:59:04 +00:00
Dev
a48e130f1b Localized various warning messages 2024-05-21 14:28:52 +01:00
Dev
139b139581 Localised various error messages 2024-05-21 12:40:16 +01:00
Dev
7b345b7513 Improved checkForOrphanedModdedItems() to show more relevant error messages 2024-05-21 11:20:33 +01:00
Alex
d437b5b922 auto-dependency-installer-fix (!343)
Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/343
2024-05-20 11:01:35 +00:00
Alex
bf528fd1de Added Mark of the Unheard buff to the insurance timer (!342)
Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/342
2024-05-20 10:44:05 +00:00
Dev
597ea96f34 Added per-profile type redeem times to server
unheard has a 72 hour redeem time vs all other profiles 48
renamed `redeemTime` to `mailRedeemTimeHours`
2024-05-20 11:31:45 +01:00
DrakiaXYZ
fcabd68dfc Fix issues around ragfair and handbook caching (!334)
- Make `PenetrationDamageMod` optional in ITemplateItem
- Cache handbook values if they're found after initial cache generation
- Refactor how caching in RagfairPriceService is handled
-- Rename `generate` methods to `refresh` to better indicate their purpose
-- If item price isn't found in cache, try to find it and add it
-- Refresh caches prior to returning all flea prices (This is only triggered via a route call, so shouldn't happen often)
-- Remove storage of whether we've generated cache, it should always be done on load, and we dynamically add to it, so it's not necessary to keep track of

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/334
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-05-20 07:58:13 +00:00
Tyfon
66cac910c3 Add scav profile support to InventoryController.swapItem (!341)
Resolves https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/664

Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/341
Co-authored-by: Tyfon <tyfon7@outlook.com>
Co-committed-by: Tyfon <tyfon7@outlook.com>
2024-05-19 12:25:56 +00:00
Alex
5b5bf8bd7c Added WebSocket handlers for new connections and messages received through the default EFT socket (!339)
Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/339
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
2024-05-18 16:45:21 +00:00
Dev
3163e5cd0c Added missing IQuestSettings interface 2024-05-18 14:36:51 +01:00
paulov
0d2afc9c49 Fix RecursiveCloner Null Value Handling (!338)
This PR fixes an issue in RecursiveCloner where null value properties of any type (i.e. arrays, nullable primitives) were being converted to empty objects.

An example of where this is a problem can occur when starting a raid in 3.9. The client would attempt to convert the empty object (created by the RecursiveCloner) to an Array and it would result in a JSON error.

Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/338
Co-authored-by: paulov <v2k4gameplay@outlook.com>
Co-committed-by: paulov <v2k4gameplay@outlook.com>
2024-05-18 09:28:50 +00:00
DrakiaXYZ
2d299b99d2 Fix error in getExperience for over leveled players (!337)
Fixes an error in getExperience when players are over level 79

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/337
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-05-18 07:36:55 +00:00
Dev
f581b8ff2a Fixed issue with server failing to generate a green flare as its a weapon without a default preset 2024-05-17 20:38:39 +01:00
Refringe
cb169a18b9
Project Code Format
Ran the `npm run format` command to bring the entire project in-line with the formatting rules.
2024-05-17 15:32:41 -04:00
Dev
5def42416b Merge branch '3.9.0-DEV' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.9.0-DEV 2024-05-16 11:10:41 +01:00
Dev
53b7741e39 Fixed game load issue 2024-05-16 11:10:04 +01:00
Refringe
79781ab8bb Linting Updates (!336)
This update now runs Prettier before ESLint (with the Stylistic plugin) for code formatting. This takes care of a lot of the edge cases that ESLint doesn't touch by itself. Also adds the `eslint-plugin-unused-imports` ESLint plugin to remove unused imports and the `eslint-plugin-switch-allman` ESLint plugin to enforce Allman braces on case declarations.

The VSCode format-on-save function now requires two additional extentions to be installed: Prettier and Format Code Action. Links can be found in the README and in the recommended extentions section of VSCode when the workspace is open.

Co-authored-by: chomp <chomp@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/336
Co-authored-by: Refringe <me@refringe.com>
Co-committed-by: Refringe <me@refringe.com>
2024-05-16 08:41:05 +00:00
TheSparta
f147bb64eb restructured Notification interfaces...
- Restructured notification interfaces
- Added some missing enums
2024-05-15 23:47:37 +01:00
TheSparta
9d127cbb6c Add missing types for handled match routes 2024-05-15 23:45:48 +01:00
Dev
2696a2dff2 Linted files edited in previous commit 2024-05-15 19:43:39 +01:00
Dev
d95423b0f1 Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.9.0-DEV
# Conflicts:
#	project/assets/configs/core.json
#	project/package.json
#	project/src/models/eft/common/IGlobals.ts
#	project/src/routers/dynamic/BundleDynamicRouter.ts
2024-05-15 16:39:41 +01:00
Dev
e0fd7e59e7 Added missing endpoint 2024-05-15 15:43:19 +01:00
Dev
8e78cb0faf Added missing replyTo property to Message 2024-05-15 15:42:58 +01:00
Dev
46b630c5ef Added missing notification types 2024-05-15 15:42:35 +01:00
Dev
c6041514db Added additional missing endpoints 2024-05-15 14:23:19 +01:00
Dev
5d8d6d7185 Improved accuracy of multiple endpoints 2024-05-15 14:10:06 +01:00
Dev
f45b54a01a Update to 29997 2024-05-15 10:45:01 +01:00
Dev
1d8bc4537c Fix issue with getBotDifficultySettings() cloning assault bot correctly when bot type not found but storing it against the new bot type with preserved caps, resulting in getting difficulty values failing 2024-05-14 15:45:04 +01:00
Dev
ed6e81ab52 Expanded input parameters for getBotGenerationDetailsForWave() and include change inside returnSingleBotFromCache() 2024-05-14 11:34:09 +01:00
Dev
81c7b8751b Extracted 2 functions from generateBotsFirstTime() to allow easier overriding for mod authors 2024-05-14 11:23:02 +01:00
Alex
7dc17acb97 Made commando first check if there's a preset for an item, otherwise if goes through normal logic (!333)
Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/333
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
2024-05-14 07:30:40 +00:00
DrakiaXYZ
adab18e3fb Fix issues around locales (!332)
- Remove locale check for give command (Now handled in the localeService itself)
- Fix variable names/spelling/lowercase in LocaleService.getPlatformForServerLocale (should be no change in behaviour)
- Rewrite LocaleService.getPlatformForClientLocale to not depend on serverSupportedLocales, and instead just use the tables for validity checking
- Expand fallback of client locale handling to include the region code (Handles Czech and Korean locales)
- Write tests for locales

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/332
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-05-13 21:42:58 +00:00
Refringe
14e8f8fa19
Take your brackets back!
I don't want em'. Grumble. Ahem...

This change allows for "extra" parentheses to be added in situations where, without them, the code could possibly, potentially be seen as maybe a little-bit, tiny confusing.

Also, fixes a bunch of other ESLint errors. Mostly down to naming warnings now. Mostly.
2024-05-13 17:04:23 -04:00
Dev
65e2b87190 Adjusted sendInsuredItems() to use the globals property Insurance.MaxStorageTimeInHour 2024-05-13 20:34:44 +01:00
Alex
f8d1227dfd Introduced a new ICloner interface with 3 implementations, one of them being a recursive cloner which is faster and more efficient than its counterparts by more than 50% (!328)
Co-authored-by: clodan <clodan@clodan.com>
Co-authored-by: Dev <dev@dev.sp-tarkov.com>
Co-authored-by: chomp <chomp@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/328
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
2024-05-13 17:58:17 +00:00
Dev
f2c7e938cc Updated various JSONs 2024-05-13 17:05:04 +01:00
clodan
be082ebb71 Fixed give command localization issue
(cherry picked from commit 9390759621)
2024-05-12 22:14:29 +01:00
Dev
02e8b5051c Added guard against nullref inside updateFenceAssorts() to protect against modded items 2024-05-12 19:08:11 +01:00
vniehues
3e68297016 [ADD] functionality to read "x-forwarded-for" and "x-real-ip" headers when handling a request (!329)
I'm currently hosting the Project Fika Docker on a dedicated Server to have the Server up 24/7 without the need to let my PC run.
When hosting this as a docker container behind traefik (reverse proxy), the logger currently logs the internal IP of the traefik container.
This change makes it so that the headers that traefik/nginx can set are actually read and used. If these headers are not present, we fall back to the original method of using the `socket.remoteAdress`.
Since this is for logging only, the security implications are minimal.

Co-authored-by: Vincent Niehues <vincent.niehues@zeitag.ch>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/329
Co-authored-by: vniehues <vniehues@noreply.dev.sp-tarkov.com>
Co-committed-by: vniehues <vniehues@noreply.dev.sp-tarkov.com>
2024-05-12 13:56:03 +00:00
Dev
9323db5b1c Improved debug logging in filterPlateModsForSlotByLevel() + improved variable names 2024-05-12 10:29:18 +01:00
Dev
572f6a5668 Improved getModPoolForSlot()
Comment changes
Variable change
Only log debug message when default mod not found + multiple choices exist in pool
Fixed possible nullref if `getMatchingPreset()` returns null
2024-05-12 10:15:08 +01:00
Dev
72a1eb0a34 Improve comments inside modIsFrontOrRearSight() 2024-05-12 09:31:40 +01:00
Dev
ac5103390c Added nullguard check inside generateLoot() to prevent 380 mods killing bot generation 2024-05-11 16:21:39 +01:00
Dev
fddbe4cf54 Merge branch '3.8.2-DEV' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.2-DEV 2024-05-10 14:51:44 +01:00
Dev
aeee99bae5 updated removeResourceFromArea() to get FiR status for a fuel item without a upd property 2024-05-10 14:51:23 +01:00
TheSparta
3b0ee75d7f Handle all bundles regarless of extension on BundleSerializer 2024-05-09 15:22:10 +01:00
Refringe
8821115cfc
Fixes Duplicate Interface
This renames a BTR configuration interface that had the same name as another interface.

IBtrMapConfig --> IBtrPathConfig
2024-05-08 00:26:12 -04:00
Refringe
ba1ac09b0b
Merge branch '3.8.2-DEV' into 3.9.0-DEV
# Conflicts:
#	project/src/callbacks/ItemEventCallbacks.ts
#	project/src/models/eft/common/IGlobals.ts
#	project/src/models/eft/common/ILocation.ts
#	project/src/models/eft/common/ILocationBase.ts
#	project/src/models/eft/common/tables/ILootBase.ts
#	project/src/models/eft/common/tables/ITemplateItem.ts
#	project/src/models/eft/weather/IWeatherData.ts
#	project/src/models/spt/bots/BotGenerationDetails.ts
#	project/src/models/spt/config/IPmcConfig.ts
#	project/src/models/spt/config/IWeatherConfig.ts
#	project/src/models/spt/server/IDatabaseTables.ts
#	project/src/models/spt/server/ILocations.ts
#	project/src/servers/http/IHttpListener.ts
2024-05-08 00:21:12 -04:00
Refringe
50c7a26a58
ESLint Pass
This is the first pass of ESLint on the codebase.

ESLint formatting is less strict when it comes to line-length and line-breaks then dprint/biome, so if you see formatting that you don't like... fix it! It shouldn't require a configuration change.

- This should merge clean into master (when the time comes).
- This will not merge clean into `3.9.0-DEV`, but the conflicts aren't that bad.
2024-05-07 23:57:08 -04:00
TheSparta
cd5179bf39 fixed autoimport resolved wrong path
- vscode fumbled my previous commit
2024-05-07 15:14:49 +01:00
TheSparta
65f062a3f9 merged equal uid request interfaces into one 2024-05-07 15:09:25 +01:00
Dev
d8f2153009 Fixed flares not being sent when using give command from commando bot 2024-05-07 13:45:29 +01:00
Dev
eb0fb09a37 Fixed profile creation failing when player alt+f4s partially through profile creation process
Added nullguard to `userbuilds` code inside `checkForOrphanedModdedItems()`
2024-05-07 09:02:44 +01:00
Refringe
735624eb9c
Merge branch '3.8.2-DEV' into 3.9.0-DEV 2024-05-06 21:52:21 -04:00