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
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
Dev
eb0fb09a37
Fixed profile creation failing when player alt+f4s partially through profile creation process
...
Added nullguard to `userbuilds` code inside `checkForOrphanedModdedItems()`
2024-05-07 09:02:44 +01:00
316234e9ae
Fix TradersInfo nextResupply if it is null in profile data ( !305 )
...
Add test covering fixNullTraderNextResupply
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: SPT-AKI/Server#305
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-04-24 07:13:31 +00:00
DrakiaXYZ
272050c7cf
Fix some issues in the ProfileFixerService
...
- Allow fixing the profile even if it has no items in the inventory
- Refactor weapon build fixing so we can re-use it for equipment builds, switch both to be a .filter() call
- Add magazine build fixing, also as a .filter() call
- For any fix that iterates over an array and splices, use Object.entries to create an in-place shallow copy of the array, so we don't skip entries
- Reverse the order of the removeOrphanedQuests loop so we don't skip entries
2024-04-12 21:58:37 -07:00
db6ef9bddb
Fix bitcoin production time being incorrect ( !284 )
...
- Don't apply crafting skill cooldown reduction to bitcoin farm
- Adjust profile bitcoin production time on login to be the correct production time (takes into account dev profile)
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: SPT-AKI/Server#284
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-04-09 07:48:18 +00:00
Dev
798dcfffaa
Prevent nullref when profile is missing the Place of Fame area on game start
...
variable cleanup in build controller
2024-04-06 11:23:57 -04:00
740ab1e563
Lint fixes
2024-03-30 14:25:46 -04:00
Dev
1098a9d869
Fixed wallets not having money stacks in them
...
Increased chance of money in wallets
some lint fixes
2024-03-10 14:13:08 +00:00
f95ed922a4
Fix quest statusTimers ending up with named keys ( !254 )
...
- Don't depend on status being non-numeric to fix statusTimers
- Cleaner tracking of fix counts in `updateProfileQuestDataValues`
- Better number checking for quest status, since `0` is a valid status, but fails the `!Number()` check
- Cleanup of quest status setting in `processAlteredQuests`
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: SPT-AKI/Server#254
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-03-09 08:49:26 +00:00
Dev
791ebd4693
Moveed handling of unreasonableModPrices
into ragfair code instead of on game start
...
Lowered weapon mod threshold from 9x to 6x
2024-02-09 14:13:48 +00:00
Dev
4d88b2a94a
Prevent developer profile changes bleeding into non-dev accounts
2024-02-03 23:40:20 +00:00
Dev
1a9dc1ea2b
Cleanup of setHideoutAreasAndCraftsTo40Secs
to more central location
2024-02-03 19:42:49 +00:00
69a1723646
Fixes Linting Issues
...
- Reorders imports
- Removes unnecessary `else` control statements
- Simplifies some logic
- Converts key access to dot notation
- Converts Array.forEach loops to for...of loops
2024-02-02 15:00:21 -05:00
90492f3aa2
Formatting
...
Have you been using the recommended VSCode extensions? ;)
2024-02-02 15:00:21 -05:00
Dev
330b1ebf28
declare repeatableQuests
as const not let inside removeOrphanedQuests()
2024-01-29 11:12:57 +00:00
Dev
e88a661e7e
Convert hideout area bonus property + Bonus type property into an enum and update code that uses altered property
2024-01-29 10:42:02 +00:00
Dev
dbc6bd9a0b
Improve reorderHideoutAreasWithResouceInputs()
debug messaging
2024-01-29 10:25:14 +00:00
Kaeno
812a6a6884
Fix function removing daily/weekly quests from profile on profile load
2024-01-19 16:41:35 +00:00
Dev
0d059fbaf4
Remove ancient profile fix
2024-01-15 10:07:57 +00:00
f7bdded54d
remove orphaned quests to stop softlocking quest screen.
2024-01-12 21:59:38 +00:00
Dev
a742beeae9
Comment and property name cleanup inside removeDanglingTaskConditionCounters()
2024-01-09 12:27:08 +00:00
98b0a579b3
Fixed achievement counters getting mistakenly cleaned up as stale quest counters ( !189 )
...
Fixes #273
Co-authored-by: Terkoiz <terkoiz@spt.dev>
Reviewed-on: SPT-AKI/Server#189
Co-authored-by: Terkoiz <terkoiz@noreply.dev.sp-tarkov.com>
Co-committed-by: Terkoiz <terkoiz@noreply.dev.sp-tarkov.com>
2024-01-09 11:57:27 +00:00
Dev
8ef405e551
Correctly implemented:
...
`client/builds/delete`
`client/builds/equipment/save`
`client/builds/weapon/save`
Updated `defaultEquipmentPresets` json data
Removed old 0.13 preset implementation files
profile-breaking change
2024-01-06 11:11:04 +00:00
Dev
c39e331423
Replace conditionCounters
array with with TaskConditionCounters
dictionary
2023-12-30 21:59:51 +00:00
Dev
eca799d606
Use correct dictionary for storing data in profile TaskConditionCounters
instead of BackendCounters
2023-12-30 21:30:54 +00:00
Dev
ca7958afed
Implement Place of face
hideout area
...
Implement adding/removing favorite items
2023-12-29 20:22:50 +00:00
Dev
268a9b8abd
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
...
# Conflicts:
# project/src/callbacks/BundleCallbacks.ts
# project/src/controllers/RepeatableQuestController.ts
# project/src/helpers/InRaidHelper.ts
# project/src/loaders/PreAkiModLoader.ts
2023-12-15 14:16:15 +00:00
Dev
bdd9a4cd9b
Improve handling of Lightkeeper quests
...
When LK gives a time-gated quest it was being saved into the profile with a status of `Locked`, meaning it would stay there forever.
Post raid:
Check post-raid for locked quests and update them to be `AvailableAfter` + assign the unlock time to `availableAfter`
Check for quests flagged as `AvailableAfter` and have a `availableAfter` timestamp before current time, change to `AvailableForStart`
2023-12-10 13:09:54 +00:00
Dev
77dba80fbd
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
...
# Conflicts:
# project/assets/configs/core.json
# project/assets/database/locales/global/ch.json
# project/assets/database/locales/global/cz.json
# project/assets/database/locales/global/en.json
# project/assets/database/locales/global/es-mx.json
# project/assets/database/locales/global/es.json
# project/assets/database/locales/global/fr.json
# project/assets/database/locales/global/ge.json
# project/assets/database/locales/global/hu.json
# project/assets/database/locales/global/it.json
# project/assets/database/locales/global/jp.json
# project/assets/database/locales/global/kr.json
# project/assets/database/locales/global/pl.json
# project/assets/database/locales/global/po.json
# project/assets/database/locales/global/ru.json
# project/assets/database/locales/global/sk.json
# project/assets/database/locales/global/tu.json
# project/src/controllers/TradeController.ts
# project/src/generators/LocationGenerator.ts
2023-12-08 22:20:16 +00:00
Dev
221cd98316
Allow fixProfileBreakingInventoryItemIssues()
to also fix clothing issues
...
Move `fixProfileBreakingInventoryItemIssues` into `ProfileFixerService`
2023-12-03 20:37:35 +00:00
Dev
2148eaafe5
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
...
# Conflicts:
# project/src/context/ApplicationContext.ts
# project/src/context/ContextVariableType.ts
# project/src/controllers/QuestController.ts
# project/src/di/Container.ts
# project/src/generators/weapongen/implementations/ExternalInventoryMagGen.ts
2023-11-30 10:20:37 +00:00
Dev
eb22acc785
Handle when checking for gun wall level and linked inventory item does not exist
2023-11-25 13:25:43 +00:00
Dev
dcb579116c
Fix regression in fixIncorrectAidValue
if check
2023-11-23 20:21:02 +00:00
Dev
aa6f765a64
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
...
# Conflicts:
# project/assets/configs/core.json
2023-11-22 14:28:30 +00:00
Dev
ddb9917c6b
Rework of post-raid scav/pmc profile handling:
...
Moved logic out of `updateProfileBaseStats()` and into separate functions for pmc/scav, left profile-agnostic code alone
new functions `updatePmcProfileDataPostRaid` and `updateScavProfileDataPostRaid`
scav - Only copy active quest progress from client profile to server scav profile
scav - dont attempt to update trader standings, none exist on scav profile
scav - dont transfer psot-raid limb damage to server profile
Update quest status values similarly to PMC quests post raid to ensure they're consistent with existing quest data in profile
Simplifies `migrateScavQuestProgressToPmcProfile`
made various warnings debug instead
2023-11-20 16:33:04 +00:00
Dev
d2209114c9
Rename parameter as it can be scav or pmc profile
2023-11-20 15:07:59 +00:00
Dev
aeea8f6e49
Guard against empty RepeatableQuests
array in profile
2023-11-19 16:12:20 +00:00
6cd86e67b0
Merge branch 'master' into 3.8.0
...
# Conflicts:
# project/.vscode/launch.json
# project/assets/database/locations/bigmap/base.json
# project/assets/database/locations/interchange/base.json
# project/assets/database/locations/rezervbase/base.json
# project/gulpfile.mjs
# project/package.json
# project/src/ErrorHandler.ts
# project/src/Program.ts
# project/src/callbacks/DataCallbacks.ts
# project/src/callbacks/DialogueCallbacks.ts
# project/src/callbacks/GameCallbacks.ts
# project/src/callbacks/HandbookCallbacks.ts
# project/src/callbacks/HealthCallbacks.ts
# project/src/callbacks/HttpCallbacks.ts
# project/src/callbacks/LauncherCallbacks.ts
# project/src/callbacks/LocationCallbacks.ts
# project/src/callbacks/MatchCallbacks.ts
# project/src/callbacks/ModCallbacks.ts
# project/src/callbacks/NotifierCallbacks.ts
# project/src/callbacks/PresetCallbacks.ts
# project/src/callbacks/ProfileCallbacks.ts
# project/src/callbacks/RagfairCallbacks.ts
# project/src/callbacks/TraderCallbacks.ts
# project/src/context/ApplicationContext.ts
# project/src/context/ContextVariableType.ts
# project/src/controllers/BotController.ts
# project/src/controllers/CustomizationController.ts
# project/src/controllers/DialogueController.ts
# project/src/controllers/GameController.ts
# project/src/controllers/HealthController.ts
# project/src/controllers/HideoutController.ts
# project/src/controllers/InraidController.ts
# project/src/controllers/InsuranceController.ts
# project/src/controllers/InventoryController.ts
# project/src/controllers/LauncherController.ts
# project/src/controllers/LocationController.ts
# project/src/controllers/MatchController.ts
# project/src/controllers/QuestController.ts
# project/src/controllers/RagfairController.ts
# project/src/controllers/RepeatableQuestController.ts
# project/src/controllers/TradeController.ts
# project/src/di/Container.ts
# project/src/di/Router.ts
# project/src/generators/BotEquipmentModGenerator.ts
# project/src/generators/BotLevelGenerator.ts
# project/src/generators/BotWeaponGenerator.ts
# project/src/generators/LocationGenerator.ts
# project/src/generators/LootGenerator.ts
# project/src/generators/RepeatableQuestGenerator.ts
# project/src/generators/WeatherGenerator.ts
# project/src/generators/weapongen/InventoryMagGen.ts
# project/src/generators/weapongen/implementations/BarrelInventoryMagGen.ts
# project/src/generators/weapongen/implementations/ExternalInventoryMagGen.ts
# project/src/helpers/AssortHelper.ts
# project/src/helpers/BotGeneratorHelper.ts
# project/src/helpers/InRaidHelper.ts
# project/src/helpers/ProfileHelper.ts
# project/src/helpers/RagfairHelper.ts
# project/src/helpers/RagfairOfferHelper.ts
# project/src/helpers/TraderHelper.ts
# project/src/loaders/ModLoadOrder.ts
# project/src/loaders/PostDBModLoader.ts
# project/src/loaders/PreAkiModLoader.ts
# project/src/models/eft/common/IGlobals.ts
# project/src/models/eft/common/ILocationBase.ts
# project/src/models/eft/common/tables/IBotBase.ts
# project/src/models/eft/common/tables/IProfileTemplate.ts
# project/src/models/eft/common/tables/ITemplateItem.ts
# project/src/models/eft/dialog/IAcceptFriendRequestData.ts
# project/src/models/eft/dialog/IDeleteFriendRequest.ts
# project/src/models/eft/game/IGameConfigResponse.ts
# project/src/models/eft/game/IGameKeepAliveResponse.ts
# project/src/models/eft/game/IGameStartResponse.ts
# project/src/models/eft/match/IJoinMatchResult.ts
# project/src/models/eft/notifier/INotifier.ts
# project/src/models/eft/profile/GetProfileStatusResponseData.ts
# project/src/models/eft/trade/IProcessBuyTradeRequestData.ts
# project/src/models/eft/trade/IProcessSellTradeRequestData.ts
# project/src/models/enums/WildSpawnTypeNumber.ts
# project/src/models/spt/bots/BotGenerationDetails.ts
# project/src/models/spt/config/IBotConfig.ts
# project/src/models/spt/config/IBotDurability.ts
# project/src/models/spt/config/IInRaidConfig.ts
# project/src/models/spt/config/ILocationConfig.ts
# project/src/models/spt/config/IQuestConfig.ts
# project/src/models/spt/config/ISeasonalEventConfig.ts
# project/src/models/spt/server/ILocations.ts
# project/src/models/spt/utils/IUuidGenerator.ts
# project/src/routers/dynamic/BotDynamicRouter.ts
# project/src/routers/dynamic/BundleDynamicRouter.ts
# project/src/routers/dynamic/CustomizationDynamicRouter.ts
# project/src/routers/dynamic/DataDynamicRouter.ts
# project/src/routers/dynamic/HttpDynamicRouter.ts
# project/src/routers/dynamic/InraidDynamicRouter.ts
# project/src/routers/dynamic/LocationDynamicRouter.ts
# project/src/routers/dynamic/NotifierDynamicRouter.ts
# project/src/routers/dynamic/TraderDynamicRouter.ts
# project/src/routers/save_load/InsuranceSaveLoadRouter.ts
# project/src/routers/save_load/ProfileSaveLoadRouter.ts
# project/src/routers/serializers/NotifySerializer.ts
# project/src/routers/static/BotStaticRouter.ts
# project/src/routers/static/BundleStaticRouter.ts
# project/src/routers/static/ClientLogStaticRouter.ts
# project/src/routers/static/CustomizationStaticRouter.ts
# project/src/routers/static/DataStaticRouter.ts
# project/src/routers/static/DialogStaticRouter.ts
# project/src/routers/static/GameStaticRouter.ts
# project/src/routers/static/HealthStaticRouter.ts
# project/src/routers/static/InraidStaticRouter.ts
# project/src/routers/static/InsuranceStaticRouter.ts
# project/src/routers/static/ItemEventStaticRouter.ts
# project/src/routers/static/LauncherStaticRouter.ts
# project/src/routers/static/LocationStaticRouter.ts
# project/src/routers/static/MatchStaticRouter.ts
# project/src/routers/static/NotifierStaticRouter.ts
# project/src/routers/static/PresetStaticRouter.ts
# project/src/routers/static/ProfileStaticRouter.ts
# project/src/routers/static/QuestStaticRouter.ts
# project/src/routers/static/RagfairStaticRouter.ts
# project/src/routers/static/TraderStaticRouter.ts
# project/src/routers/static/WeatherStaticRouter.ts
# project/src/services/BotEquipmentFilterService.ts
# project/src/services/BotGenerationCacheService.ts
# project/src/services/BotWeaponModLimitService.ts
# project/src/services/PaymentService.ts
# project/src/services/ProfileFixerService.ts
# project/src/services/RagfairOfferService.ts
# project/src/services/RagfairTaxService.ts
# project/src/services/RepairService.ts
# project/src/services/SeasonalEventService.ts
# project/src/utils/RagfairOfferHolder.ts
# project/src/utils/TimeUtil.ts
# project/src/utils/UUidGenerator.ts
# project/src/utils/VFS.ts
# project/src/utils/collections/queue/Queue.ts
# project/src/utils/logging/AbstractWinstonLogger.ts
# project/src/utils/logging/WinstonMainLogger.ts
# project/src/utils/logging/WinstonRequestLogger.ts
# project/tests/utils/TimeUtil.test.ts
Manually resolved by Refringe.
2023-11-16 23:35:11 -05:00
4ac12ef70a
Formatting/Linting Changes ( !168 )
...
These are the formatting & linting configuration changes from the `3.8.0` branch and the changes that they make to the overall project.
The majority of these changes are from running two commands:
`npm run lint:fix`
`npm run style:fix`
This has already been run on the `3.8.0` branch and this PR should make `master` play nicer when it comes to merges going forward.
There are now four VSCode plugins recommended for server development. They've been added to the workspace file and a user should get a UI notification when the workspace is opened if they're not installed.
The four plugins are:
https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig
https://marketplace.visualstudio.com/items?itemName=dprint.dprint
https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint
https://marketplace.visualstudio.com/items?itemName=biomejs.biome
Once installed they should just work within the workspace.
Also, be sure to `npm i` to get the new dprint application.
Co-authored-by: Refringe <brownelltyler@gmail.com>
Reviewed-on: SPT-AKI/Server#168
2023-11-16 21:42:06 +00:00
be841a3de3
Resolves Type Issue in ProfileFixerService
...
When attempting to access a property/type that *shouldn't* exist (on purpose) it has to be cast to the type manually, else annoying type error.
2023-11-16 10:11:31 -05:00
Dev
b70474133b
Fix multiple locations in code where an array for hideout areas is incorrectly accessed like a dictionary
2023-11-16 14:33:39 +00:00
Dev
15082afde2
Fix reorderHideoutAreasWithResouceInputs()
off by one error because it was checking the index instead of finding the area type
2023-11-16 14:30:08 +00:00
0793df60c2
Formatting Change - Space is now given around object properties.
2023-11-13 12:38:16 -05:00
32b47bdc18
Formatting Change - When a statement can be moved into a single line and still be under the maximum line length, it is.
2023-11-13 12:31:52 -05:00
7533d33358
Formatting Change - Operator positions are now at the start of the next line (for multi-line statements).
2023-11-13 12:29:16 -05:00
2b826f8b1e
Conditional Code Adjustments Re:Biome
...
When multiple falsey conditions are being checked Biome recommends to check for all the truthy conditions negated. Logic remains untouched, while only using one negation. Apparently easier to comprehend.
2023-11-13 12:00:49 -05:00
ce45862e75
Favours dot object notation whenever possible.
2023-11-13 11:51:02 -05:00