* 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>
* Store data passed back from SaveDialogueState call
This makes the rest area game playable, though variables still don't save
* Woops, bad casing
---------
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
* Add edge case for Reverse Proxies
* Cleanup HttpListener, remove unecessary MemoryStreams
* Handle with IPAddress instead of string
* Handle nullabiity of RouteAction, tighten typing on requests
* Cleanup HttpRouter
* Use tighter typing on Routers
Updated `GenerateBotWaves` to return empty results when request data is empty
Cleaned up `GenerateBotWave` to not need a manual lock
Improved `botRelativeLevelDelta` value in pmc.config
Updated `MatchBotDetailsCacheService` to store PMCs primary weapon tpl
- Actually load the bundle cache file now
- Don't read file as string with StreamReader, instead read with ReadAllTextAsync
- Slight refactor to bundle hashing
Co-authored-by: Chomp <27521899+chompDev@users.noreply.github.com>
* Changed application to use background services and removed hacky http server startup
* Small improvements and method removals
* Removed Core dependency on Web application SDK
* Fixed wrong imported type
---------
Co-authored-by: Alex <clodanSPT@hotmail.com>
Co-authored-by: Chomp <27521899+chompDev@users.noreply.github.com>
Convert constructors into primary constructors
Simplified logic with use of ??, ??= and method groups
Cleaned up redundant conditional access qualifiers
- await StartBackupSystem as it's an awaitable
- Update comment in MongoId
- Set more id's in HideoutArea to MongoId
- Remove unused logging records
Co-authored-by: Chomp <27521899+chompDev@users.noreply.github.com>
* Add better chatbot handling by making them asynchronous
Removes the need for having RunInTimespan as await Task.Delay now can handle this
* Remove now unused classes
* Handle commando's commands with ValueTask
* Set values as not nullable, client sends all of these