Commit Graph

108 Commits

Author SHA1 Message Date
Chomp 2639504471 String to MongoId conversions
Removed unnecessary properties from quest object
2025-07-15 10:37:49 +01:00
Chomp 040be2feaa More strings to MongoIds
Convert constructors into primary constructors

Simplified logic with use of ??, ??= and method groups

Cleaned up redundant conditional access qualifiers
2025-07-14 22:29:41 +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
Jesse bd7d60e5ab More mongo (#450)
* Remove debug, doesn't really work

* Convert Handbook to MongoId's

* Make traders in Database keyed to MongoId rather than string
2025-07-05 13:41:57 +01:00
Chomp 8253215410 Converted strings into MongoId type 2025-07-05 11:03:09 +01:00
Archangel eeddb97641 Remove extra method on Func, add options to converters 2025-07-04 22:25:39 +02:00
Chomp 01cd251b68 Moved more code into extension methods 2025-07-04 19:29:43 +01:00
Jesse b6692fead4 Chatbot async improvements (#446)
* 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
2025-07-04 18:04:37 +01:00
Chomp 2609db2536 Removed unused injections 2025-07-04 09:40:22 +01:00
Chomp abe290b1eb Merge pull request #443 from sp-tarkov/locale-fixes
Handle ToLower neutrally across all locales (#412)
2025-07-03 23:05:38 +01:00
Jesse d3cd4359fa Mongo fixes (#444)
* Pass Json serializer options to all converters

* Fix required on record that has two sets of id's

* Pass options to mod handlers

* Update method
2025-07-03 20:24:05 +01:00
Archangel 79489eadce Handle ToLower neutrally across all locales (#412) 2025-07-03 18:28:36 +02:00
Jesse ebe8f9ded5 Mongoid changes (#440)
* Remove old IsValidMongoId and Regex

* Convert more configs to MongoId, as well as BaseClasses

* Remove HashUtil.Generate(), replaced with new MongoId()
2025-07-03 15:42:16 +01:00
Jesse 54f0d0779c Convert TemplateItem to MongoId (#436)
* Convert TemplateItem to MongoId

* Push new extensions

* Handle null mongoid's being passed to regex

* Handle null strings, fixes item events

* Updated loot generation to work with new property `composedKey`

Fixed typo in `SlotId`

* Fix missing method after merge

* Remove duplicately named MongoIDExtensions?

* Fixed location loot generation to handle impending loot json changes

* Updated location JSONs with new properties (excluding lighthouse loose loot)

* Fixed build issue with ItemTplGenerator

* use correct handing for new mongo ids

* Added helper method to improve readability

---------

Co-authored-by: Chomp <dev@dev.sp-tarkov.com>
2025-07-02 10:14:04 +01:00
Jesse 6ac747d18d Begin converting some id's to MongoId (#435)
* Begin converting some id's to MongoId

* Remove nullability on MongoId's

* Update trader MongoId's
2025-06-30 15:25:47 +01:00
Chomp 14e875f199 Improved error messages inside GetExpiredOfferItems 2025-06-29 15:48:35 +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 f9d1c81437 Added RagfairOfferExtensions 2025-06-28 16:45:58 +01:00
Chomp 7782806f91 Added DateTimeExtensions 2025-06-28 16:41:26 +01:00
chompDev d4d2ed0403 .NET Format Style Fixes 2025-06-28 15:15:48 +00:00
Jesse d0af6acbe6 Move MathUtil methods to extensions (#432)
* Begin moving MathUtil methods to Extensions

* Add missing extension
2025-06-28 16:15:11 +01:00
Chomp da5644cfa2 made properties readonly 2025-06-28 12:53:21 +01:00
Jesse 22c71bee5b Helper methods extensions (#431)
* Remove unused model

* Start moving methods to extensions, cleanup code
2025-06-28 12:14:50 +01:00
Chomp af5f8bfdbc Cleaned up watermark, set text to Magenta when in debug 2025-06-25 22:54:01 +01:00
chompDev e64243a0c5 .NET Format Style Fixes 2025-06-22 08:05:18 +00:00
Cj d68228b5c9 Quest config nullability and documentation (Part 2) (#415)
* Make Interp1 generic

* Finish quest controller nullability fixes

* More model and nullability improvements and fixes

* Rename `specificLocationChance`

* rename `bodyPartChance`

* finish comments
2025-06-22 09:04:45 +01:00
Chomp 9a82432c2c Updated Interp1 to accept readonly lists as params + added comments 2025-06-20 14:15:28 +01:00
refringe 6e01428b2b .NET Format Style Fixes 2025-06-18 17:09:20 +00:00
Chomp 060a2630c8 Made emthod protected + comment improvement 2025-06-17 09:51:35 +01:00
Chomp 6ac8304428 Cleaned up RagfairOfferHolder
More comments
Made `Add` methods return a bool indicating their outcome
2025-06-16 16:45:20 +01:00
Chomp b69544ae2c Added lock to GetStaleOfferIds
Made `RagfairRequiredItemService` a singleton
Made `RagfairRequiredItemService ` store offerIds instead of offer objects, reducing memory footprint
Reworked `GetOffersThatRequireItem` to work with `RagfairRequiredItemService` changes
Moved `GenerateDynamicOffers` to run after garbage colelction, this means GC will work on memory prior to new offers being added but after stale offers are removed

Made `PaymentHelper` a singleton + Store currency tpls in a hashset instead of list

Comment improvements
2025-06-16 14:46:37 +01:00
Chomp e869f6ebef Refactored ragfair code for improved readability 2025-06-16 13:00:06 +01:00
Chomp 40ace1712d Fixed cancelled/expired player offer items not being returned #400
We were missing player offer processing when handling stale offers
2025-06-16 12:59:32 +01:00
Archangel 0c3a128862 Throw exception if it happens 2025-06-15 19:14:08 +02:00
Archangel 3419368f53 Add Transformer to Lazyload, get rid of event
This will break mods and their examples!

In addition:
- Removes being able to add custom locales, modders should do .AddTransformer on the LazyLoaded value in the database!
- Fixes up PostDBLoad methods trying to use .Value which won't work as this data will be unloaded after 30 seconds
- Move all other SPT code to use .AddTransformer
2025-06-15 19:08:38 +02:00
Cj 07f57e16a8 Task: Rename Assets folder to SPT_Data (#394)
* Rename `Assets` to `SPT_Data`

* Added GZ 20+ variant to repeatable quest system #395

* Repeatable code cleanup

* Removed PMC level check for repeatable Quest pool generation #395
they will always generate for both GZ variants

* Rename `Assets` to `SPT_Data`

---------

Co-authored-by: Chomp <dev@dev.sp-tarkov.com>
2025-06-15 09:54:33 +01:00
Chomp e596974d07 Cleaned up usings 2025-06-14 16:43:24 +01:00
Chomp 282c8284dd Minor improvement to ImporterUtil
Made fields readonly FrozenSets
2025-06-14 16:06:45 +01:00
Chomp 650b94540b Expanded ragfair.offerItemCount functionality. #388
Is now defined per item type with a fallback.

Currently only ammo boxes have custom values (0 to 3 vs the default 7 to 30)
2025-06-10 16:20:00 +01: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
Chomp 57c9ff477e Localised various error messages 2025-06-09 09:35:47 +01:00
Jesse 3d288f3489 Fix up converters to target all assemblies in the AppDomain (#364)
* Fix up converters to target all assemblies in the AppDomain

* Make test more robust

* Make test more robust v2 electric boogaloo
2025-06-06 07:23:26 +01:00
Chomp 8023aff959 Improved how OnUpdate is handled 2025-06-05 14:21:28 +01:00
Chomp 82b8c7d2da Fixed ragfair offers not being processed Fixes #358 2025-06-05 13:41:40 +01:00
Jesse 787752b555 Async task OnUpdate (#355)
* Make OnUpdate a task instead a void, handle OnUpdate better by running it in it's own task

* Make helper transient, resolve mod loading issues
2025-06-04 20:53:39 +01:00
Jesse c822977931 Build hashfile only in release mode (#346)
* Update README to include Powershell requirement

* Build hashfile only in release, only check hashes in release mode

* Remove duplicate README
2025-06-03 08:38:06 +01:00
Jesse 354adf2c0a Add File validation (#344)
* Add file validation

* Revert "Added checks.dat build script (#343)"

This reverts commit 39228f88e705b58858d162256a5b5e10fe99148c.

* Update to use pwsh

* Wrap code in using
2025-06-02 20:21:49 +01:00
clodanSPT 2ba11fc789 Added rolling log files features based on file size (#342)
* Added rolling log files features based on file size

* made properties readonly

---------

Co-authored-by: Alex <clodanSPT@hotmail.com>
2025-06-02 17:40:40 +01:00
CWX 1b82d0641e change the invariantCulture on factory 2025-06-01 21:35:28 +01:00
hulkhan22 210bdb2d60 Fix for tests randomly failing when run altogether 2025-06-01 02:33:19 +02:00