Commit Graph

23 Commits

Author SHA1 Message Date
Archangel 4eecb485c6 Mark various removed implementations as obsolete 2025-11-05 14:41:28 +01:00
DrakiaXYZ a524dc47dd Merge pull request #658 from DrakiaXYZ/fix-savecontention
Fix potential file access contention in SaveProfileAsync
2025-10-25 21:43:14 +00:00
DrakiaXYZ 47089afdd1 Further attempt to resolve profile corruption issues (#650)
* Further attempt to resolve profile corruption issues
- FileUtil now uses File.Replace and does a sync flush
- Add restore capabilities to BackupService
- If loading a profile fails, attempt to restore from the most recent backup
- Trigger a backup creation on raid start, raid end, and game close
- Load profiles before starting the backupService to avoid backing up corrupt profiles

* - Switch async calls to .GetAwaiter().GetResult() for better exception handling

---------

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
2025-10-23 07:49:24 +02:00
Chomp 813e00479d Validate filename is mongoId before we load it as profile #648 2025-10-21 16:52:23 +01:00
Chomp 71b33a174b Only log profile save time when there's more than 1 profile 2025-08-21 15:06:30 +01:00
Jesse 60958b3d24 Merge pull request #544 from sp-tarkov/remove-warnings
Remove unused dependencies and improve code quality
2025-08-12 19:26:05 +02:00
Chomp 67f7b762e8 Improved profile lookup safety of IsProfileInvalidOrUnloadable 2025-08-09 11:51:47 +01:00
Lacyway d468848b0c Improve MongoIds (#537)
* Mongoid improvements pt1

* Format Style Fixes

* Fix incorrect string

* Fix != comparison

---------

Co-authored-by: sp-tarkov-bot <singleplayertarkov@gmail.com>
2025-08-09 11:50:49 +01:00
Archangel c3b36f4c7d Handle invalid profiles on all IOnUpdate 2025-08-05 17:20:49 +02:00
Archangel d5514c6bb4 Only write InvalidOrUnloadableProfile if it's not null 2025-08-05 16:59:45 +02:00
Jesse c7e40deb90 Add support for partially loading invalid profiles (#533)
* Add support for partially loading invalid profiles

* Return early in exception
2025-08-05 15:25:47 +01:00
sp-tarkov-bot b14b74bf24 Format Style Fixes 2025-07-28 19:39:29 +00:00
Chomp 6f3ce60cec Simplified calls to .Remove() 2025-07-14 20:02:46 +01:00
Jesse 533a7356fd Add new service to handle profile migrations (#468)
* Add new service to handle profile migrations

* Handle various null checks

* Remove unecessary assignments

* Further works on this:

- Loads profiles as JObject's initally, so migration can take place on profiles that don't have proper compatability
- Adds prerequisite migrations, and sorts them after one another

* Throw exception if profile can't be deserialized after migration

* Cleanup & use profile version

* Further migrations work, support 3.10 & 3.11 profiles upgrading to 4.0

* Update parameter name
2025-07-11 13:11:02 +01:00
Cj 0b18b7e4ba Convert routers and callback sessionIds to MongoIds (#453)
Co-authored-by: Chomp <27521899+chompDev@users.noreply.github.com>
2025-07-06 10:19:56 +01:00
Jesse 5686f4a486 Remove I18nService, migrate to renamed ServerLocalisationService (#433)
* Remove I18nService, migrate to renamed ServerLocalisationService

* Revert VS fuckup

* Update using

* Remove unused parameter, update comment

* Fix develop branch not building
2025-06-28 19:08:42 +01:00
Chomp da5644cfa2 made properties readonly 2025-06-28 12:53:21 +01:00
refringe 6e01428b2b .NET Format Style Fixes 2025-06-18 17:09:20 +00:00
Jesse 2c52012740 Further async changes (#387)
* Further async changes
- SaveServer & Backup Server are now async
- Anything that ties in with SaveServer saving (Such as callbacks) are now async
- Various async util methods added
- Removed two wrapper methods and switched code over to use the actual method

* Update test
2025-06-09 20:09:12 +01:00
Alex 1499627d3c DI completely reworked to keep status of singletons on multi type components 2025-05-06 10:52:22 +01:00
Alex 222ca2e274 Replaced Serilog for custom logger 2025-04-24 16:29:36 +01:00
CWX 7c7297f63c Code cleanup and format 2025-04-22 14:49:05 +01:00
clodan 270f095413 renamed projects and namespaces 2025-03-07 13:16:43 +00:00