* Make mod loading non nullable, set certain properties to be read only after init
- Breaks all mods, will require new nugets
* Make mod assembly list IEnumerable
* Convert checks to IsNullOrEmpty
* Update comment, enforce ModGuid
* 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
* 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
* 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
* Remove old IsValidMongoId and Regex
* Convert more configs to MongoId, as well as BaseClasses
* Remove HashUtil.Generate(), replaced with new MongoId()
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