0
0
mirror of https://github.com/sp-tarkov/server.git synced 2025-02-13 09:50:43 -05:00

137 Commits

Author SHA1 Message Date
Dev
44fac53e97 Updated appContext CLIENT_START_TIMESTAMP value to include sessionid 2024-10-22 13:41:33 +01:00
Dev
9eba62d5e2 Moved code from gameStart() into server start via new class PostDbLoadService
Fixed player adding their name multiple times to PMCs inside `addPlayerToPMCNames()`

Updated `enableSeasonalEvents()` to not require a session id, moved player-specific code into new function `givePlayerSeasonalGifts()`
2024-10-22 13:33:07 +01:00
Dev
9c58e2e0e5 Loosened bot name limit to 19 characters
Moved value into config
Added `botConfig.botRolesThatMustHaveUniqueName`

Refactored `getPmcNicknameOfMaxLength()`, removed all recursion + handles when no name is below desired length
Refactored `generateUniqueBotNickname()` to handle PMC names differently, use centralised pmc name function

Updated ragfair to utilise maxlength value from bot config
2024-10-18 11:39:51 +01:00
Dev
c7904a3a41 Remove unused values 2024-10-17 00:41:05 +01:00
Dev
f3c32b7b51 prevent player names longer than 15 being added to bot name pool 2024-10-15 20:58:59 +01:00
Dev
f003333e59 Remove debug code relating to hideout craft times 2024-10-09 16:31:10 +01:00
Dev
5fd9271491 Updated various interfaces to use correct naming scheme
Added `IGroupPostion`
2024-09-24 11:26:45 +01:00
Dev
1ba795cf66 Added first attempt at fixing Circulate item sale tracking
Doesnt update client until after restart
2024-09-22 11:33:49 +01:00
Dev
98d4bcc8ae Added mongoid item validation to 39x profile migration 2024-09-21 19:00:14 +01:00
Dev
47a7ccdfdd Added logging when profile migration completes 2024-09-21 12:45:49 +01:00
Dev
acb6762181 Added ability to track profile migrations in profile
Stored when 39x profiles are migrated
2024-09-21 10:51:52 +01:00
Dev
0fa22f0349 Reworked hideout code to remove all buffs/debuffs from profile after completing hideout wall
Added code to be run when 39x profiles are migrated

Renamed `checkAndUpgradeWall` to `SetWallVisibleIfPrereqsMet`
2024-09-21 10:34:45 +01:00
fefa9b3b39 Set correct data to favoriteItems array (!411)
This PR fixes an inconsistency in favoriteItems, at least in the latest EFT it deserializes an actual item rather than a string of item id's

I also made it empty out the array if the profile is converted, I tacked this onto the karma system as it only needs to happen and I was lazy to write more code to check for this, however if it's required for this PR to be merged feel free to say so.

Reviewed-on: SPT/Server#411
Co-authored-by: Archangel <jesse@archangel.wtf>
Co-committed-by: Archangel <jesse@archangel.wtf>
2024-09-20 14:31:01 +00:00
Dev
cd2b7b460f Fixed typo 2024-09-02 11:25:30 +01:00
Dev
73c75596e2 updated profile templates to use Improvements instead of improvement + added migration for 3.9 profile + Added logging to 3.9 migrations 2024-09-02 11:16:23 +01:00
Dev
c9218fce7f Updated Karma value on new and migrated profiles to be 0.2 instead of 0 2024-09-02 09:37:31 +01:00
Dev
e6b05a6660 Added back accidentally removed code that adds missing bonuses to profiles 2024-09-01 16:45:31 +01:00
Dev
d518549711 Added early exit to adjustLooseLootSpawnProbabilities() 2024-08-31 20:35:39 +01:00
Dev
27540f31f0 Updated profile migrations to partially support 3.9 2024-08-29 18:07:19 +01:00
Dev
6d9db36a78 Refreshed bot data values 2024-08-28 12:17:41 +01:00
Dev
471c606e12 Updated production recipe interface to match live 2024-08-21 14:43:19 +01:00
a4a3c8c89a Skip items that are listed in the custom blacklist from being set as sellable (!396)
Fixes issue #747

Reviewed-on: SPT/Server#396
Co-authored-by: Archangel <jesse@archangel.wtf>
Co-committed-by: Archangel <jesse@archangel.wtf>
(cherry picked from commit 5017b019388adfddca60856e4596ee90133a3098)
2024-08-15 20:16:09 +01:00
Cj
967dc15564 ProfileFixerService Refactor (!391)
Refactor to remove legacy code that bloats the `ProfileFixerService` class. Most of which is old profile porting code, some being old profile fixes. Organizes code in the class so that public members are at the top (as they should be). Finally break out some code into their own methods so they're not in the primary method for the class `checkForAndFixPmcProfileIssues`.

I have tested this with a developer profile, an EOD profile and a Standard profile. I've encountered no issues in my own testing.

Co-authored-by: Cj <161484149+CJ-SPT@users.noreply.github.com>
Reviewed-on: SPT/Server#391
Co-authored-by: Cj <cj@noreply.dev.sp-tarkov.com>
Co-committed-by: Cj <cj@noreply.dev.sp-tarkov.com>
2024-08-08 17:09:52 +00:00
Dev
7be6b47e23 Fixed various Biome issues 2024-07-23 17:30:20 +01:00
5740774a46
Apply Biome Formatting
This is the result of running `npm run format` which applies the Biome formatting rules. Rejoice!
2024-07-23 11:12:53 -04:00
Dev
951655e846 Removed redundant rating check now it has been moved to ProfileFixerService 2024-07-23 13:16:54 +01:00
Dev
35daf8710f Added null protected around RagfairInfo on profile login 2024-07-14 17:21:12 +01:00
96a40eb301 Enable Quest saving when leaving raid as pmc. Modify maxbotpve caps instead of maxbot cap 2024-07-09 14:52:35 +01:00
Dev
ce0123efd3 Implemented new wishlist system 2024-07-05 15:06:43 +01:00
CWX
1e804ce11e expirementing with using existing PVE logic 2024-07-04 23:57:15 +01:00
edfe995c52 Initial implementation of an ItemTpl and Weapon enum generator (!364)
ItemTplGenerator will create a full ItemTpl.ts and Weapons.ts file with all items and weapons respectively
Renamed WeaponTypes to Weapons to better indicate its new format
Updated all references to these enums to use the new names
New npm command `npm run gen:items` to run this tool

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: SPT/Server#364
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-06-16 08:33:01 +00:00
Dev
8c05345b85 Replaced various magic strings with enum values
Added `itemHelper.getItemFromPool()`
2024-06-13 10:53:07 +01:00
Dev
aac2142706 Refactoring of small functions for better readability 2024-06-12 19:33:55 +01:00
8727f6150e primery-dependencies (!355)
Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: SPT/Server#355
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
2024-05-28 14:04:20 +00:00
Dev
f56da3c1a8 Updated various classes to make use of databaseService 2024-05-28 14:52:22 +01:00
Dev
584eade530 Added getLocation() to databaseService and made use of it across various classes 2024-05-28 14:28:26 +01:00
Dev
4c08d64ca5 Make use of DatabaseService inside GameControler and RagfaiServerHelper 2024-05-28 11:17:38 +01:00
aee391ec1d Null checks first pass (!353)
Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: SPT/Server#353
2024-05-27 16:05:16 +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
d13e86ba46 Rebranding to SPT (!345)
Rebranded src code and scripts to SPT

Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: SPT-AKI/Server#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
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
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
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: SPT-AKI/Server#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
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
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
001def56a5 feat: add /client/game/mode handling (!308)
add `/client/game/mode` endpoint handling. gets into main menu

Reviewed-on: SPT-AKI/Server#308
Co-authored-by: kiobu <kiobu@sdf.org>
Co-committed-by: kiobu <kiobu@sdf.org>
2024-04-26 07:37:42 +00:00
820a5caccb Bake build data directly into the executable (!297)
This is primarily to stop confusion when a user overwrites their `aki_data` folder with an old version, the data shown in logs/server console is now based on compile time data instead of runtime data.

- New build.json file added to the `obj/ide/` folder that gets populated with the build data on build
- Moved asset copying prior to packaging, so that `obj/ide/build.json` is available at package time
- Updated all references of core.commit, and core.buildTime to use globalThis
- Updated all references of core.akiVersion to use globalThis with a fallback if not found (When running in VSCode for example)

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: SPT-AKI/Server#297
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-04-18 07:54:16 +00:00
acb02ed53d Update client/server/list to use the right backend ip (!295)
Update missed property to use new IP config value

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: SPT-AKI/Server#295
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-04-17 07:39:11 +00:00
Dev
a9d89695f0 Added new service ProfileActivityService
Maintains a timestamp of when each profile was last active on the server.
Timestamp is refreshed on two events: `game/start and `game/keepalive`

Timestamp is used to determine if a profiles hideout should be processed. If a profile has a timestamp older than 90 minutes, it is not processed. (could be set lower but its a conservative value)
This has the side effects of not adjusting the `sptUpdateLastRunTimestamp` property, resulting in `saveProfile()` not running for every profile.

My testing shows a 20x perf increase for every profile in SPT not in use.

Service could likely be used in other scenarios to avoid doing unnecessary work
2024-04-13 12:46:43 +01:00