0
0
mirror of https://github.com/sp-tarkov/server.git synced 2025-02-13 09:50:43 -05:00

Replace usages of objectId.generate() with hashUtil.generate()

This commit is contained in:
Chomp 2025-01-07 22:04:24 +00:00
parent 6a2afe2fa7
commit 2e1e13e563
5 changed files with 29 additions and 34 deletions

View File

@ -12,7 +12,6 @@ import { ELocationName } from "@spt/models/enums/ELocationName";
import { HideoutAreas } from "@spt/models/enums/HideoutAreas"; import { HideoutAreas } from "@spt/models/enums/HideoutAreas";
import { QuestStatus } from "@spt/models/enums/QuestStatus"; import { QuestStatus } from "@spt/models/enums/QuestStatus";
import { SkillTypes } from "@spt/models/enums/SkillTypes"; import { SkillTypes } from "@spt/models/enums/SkillTypes";
import { Traders } from "@spt/models/enums/Traders";
import { IQuestConfig, IRepeatableQuestConfig } from "@spt/models/spt/config/IQuestConfig"; import { IQuestConfig, IRepeatableQuestConfig } from "@spt/models/spt/config/IQuestConfig";
import { IGetRepeatableByIdResult } from "@spt/models/spt/quests/IGetRepeatableByIdResult"; import { IGetRepeatableByIdResult } from "@spt/models/spt/quests/IGetRepeatableByIdResult";
import { IQuestTypePool } from "@spt/models/spt/repeatable/IQuestTypePool"; import { IQuestTypePool } from "@spt/models/spt/repeatable/IQuestTypePool";
@ -23,8 +22,8 @@ import { DatabaseService } from "@spt/services/DatabaseService";
import { LocalisationService } from "@spt/services/LocalisationService"; import { LocalisationService } from "@spt/services/LocalisationService";
import { PaymentService } from "@spt/services/PaymentService"; import { PaymentService } from "@spt/services/PaymentService";
import { ProfileFixerService } from "@spt/services/ProfileFixerService"; import { ProfileFixerService } from "@spt/services/ProfileFixerService";
import { HashUtil } from "@spt/utils/HashUtil";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil"; import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { ObjectId } from "@spt/utils/ObjectId";
import { RandomUtil } from "@spt/utils/RandomUtil"; import { RandomUtil } from "@spt/utils/RandomUtil";
import { TimeUtil } from "@spt/utils/TimeUtil"; import { TimeUtil } from "@spt/utils/TimeUtil";
import type { ICloner } from "@spt/utils/cloners/ICloner"; import type { ICloner } from "@spt/utils/cloners/ICloner";
@ -36,6 +35,7 @@ export class RepeatableQuestController {
constructor( constructor(
@inject("PrimaryLogger") protected logger: ILogger, @inject("PrimaryLogger") protected logger: ILogger,
@inject("HashUtil") protected hashUtil: HashUtil,
@inject("DatabaseService") protected databaseService: DatabaseService, @inject("DatabaseService") protected databaseService: DatabaseService,
@inject("TimeUtil") protected timeUtil: TimeUtil, @inject("TimeUtil") protected timeUtil: TimeUtil,
@inject("RandomUtil") protected randomUtil: RandomUtil, @inject("RandomUtil") protected randomUtil: RandomUtil,
@ -45,7 +45,6 @@ export class RepeatableQuestController {
@inject("LocalisationService") protected localisationService: LocalisationService, @inject("LocalisationService") protected localisationService: LocalisationService,
@inject("EventOutputHolder") protected eventOutputHolder: EventOutputHolder, @inject("EventOutputHolder") protected eventOutputHolder: EventOutputHolder,
@inject("PaymentService") protected paymentService: PaymentService, @inject("PaymentService") protected paymentService: PaymentService,
@inject("ObjectId") protected objectId: ObjectId,
@inject("RepeatableQuestGenerator") protected repeatableQuestGenerator: RepeatableQuestGenerator, @inject("RepeatableQuestGenerator") protected repeatableQuestGenerator: RepeatableQuestGenerator,
@inject("RepeatableQuestHelper") protected repeatableQuestHelper: RepeatableQuestHelper, @inject("RepeatableQuestHelper") protected repeatableQuestHelper: RepeatableQuestHelper,
@inject("QuestHelper") protected questHelper: QuestHelper, @inject("QuestHelper") protected questHelper: QuestHelper,
@ -337,11 +336,11 @@ export class RepeatableQuestController {
randomQuests = randomQuests.concat(this.randomUtil.drawRandomFromList(dailiesPool, numberOfQuests, false)); randomQuests = randomQuests.concat(this.randomUtil.drawRandomFromList(dailiesPool, numberOfQuests, false));
for (const element of randomQuests) { for (const element of randomQuests) {
element._id = this.objectId.generate(); element._id = this.hashUtil.generate();
const conditions = element.conditions.AvailableForFinish; const conditions = element.conditions.AvailableForFinish;
for (const condition of conditions) { for (const condition of conditions) {
if ("counter" in condition._props) { if ("counter" in condition._props) {
condition._props.counter.id = this.objectId.generate(); condition._props.counter.id = this.hashUtil.generate();
} }
} }
} }

View File

@ -22,8 +22,8 @@ import { DatabaseService } from "@spt/services/DatabaseService";
import { ItemFilterService } from "@spt/services/ItemFilterService"; import { ItemFilterService } from "@spt/services/ItemFilterService";
import { LocalisationService } from "@spt/services/LocalisationService"; import { LocalisationService } from "@spt/services/LocalisationService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService"; import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { HashUtil } from "@spt/utils/HashUtil";
import { MathUtil } from "@spt/utils/MathUtil"; import { MathUtil } from "@spt/utils/MathUtil";
import { ObjectId } from "@spt/utils/ObjectId";
import { ProbabilityObject, ProbabilityObjectArray, RandomUtil } from "@spt/utils/RandomUtil"; import { ProbabilityObject, ProbabilityObjectArray, RandomUtil } from "@spt/utils/RandomUtil";
import type { ICloner } from "@spt/utils/cloners/ICloner"; import type { ICloner } from "@spt/utils/cloners/ICloner";
import { inject, injectable } from "tsyringe"; import { inject, injectable } from "tsyringe";
@ -48,8 +48,8 @@ export class LocationLootGenerator {
constructor( constructor(
@inject("PrimaryLogger") protected logger: ILogger, @inject("PrimaryLogger") protected logger: ILogger,
@inject("HashUtil") protected hashUtil: HashUtil,
@inject("DatabaseService") protected databaseService: DatabaseService, @inject("DatabaseService") protected databaseService: DatabaseService,
@inject("ObjectId") protected objectId: ObjectId,
@inject("RandomUtil") protected randomUtil: RandomUtil, @inject("RandomUtil") protected randomUtil: RandomUtil,
@inject("ItemHelper") protected itemHelper: ItemHelper, @inject("ItemHelper") protected itemHelper: ItemHelper,
@inject("MathUtil") protected mathUtil: MathUtil, @inject("MathUtil") protected mathUtil: MathUtil,
@ -397,7 +397,7 @@ export class LocationLootGenerator {
const containerTpl = containerClone.template.Items[0]._tpl; const containerTpl = containerClone.template.Items[0]._tpl;
// Create new unique parent id to prevent any collisions // Create new unique parent id to prevent any collisions
const parentId = this.objectId.generate(); const parentId = this.hashUtil.generate();
containerClone.template.Root = parentId; containerClone.template.Root = parentId;
containerClone.template.Items[0]._id = parentId; containerClone.template.Items[0]._id = parentId;
@ -885,18 +885,18 @@ export class LocationLootGenerator {
: this.randomUtil.getInt(itemTemplate._props.StackMinRandom, itemTemplate._props.StackMaxRandom); : this.randomUtil.getInt(itemTemplate._props.StackMinRandom, itemTemplate._props.StackMaxRandom);
itemWithMods.push({ itemWithMods.push({
_id: this.objectId.generate(), _id: this.hashUtil.generate(),
_tpl: chosenTpl, _tpl: chosenTpl,
upd: { StackObjectsCount: stackCount }, upd: { StackObjectsCount: stackCount },
}); });
} else if (this.itemHelper.isOfBaseclass(chosenTpl, BaseClasses.AMMO_BOX)) { } else if (this.itemHelper.isOfBaseclass(chosenTpl, BaseClasses.AMMO_BOX)) {
// Fill with cartridges // Fill with cartridges
const ammoBoxItem: IItem[] = [{ _id: this.objectId.generate(), _tpl: chosenTpl }]; const ammoBoxItem: IItem[] = [{ _id: this.hashUtil.generate(), _tpl: chosenTpl }];
this.itemHelper.addCartridgesToAmmoBox(ammoBoxItem, itemTemplate); this.itemHelper.addCartridgesToAmmoBox(ammoBoxItem, itemTemplate);
itemWithMods.push(...ammoBoxItem); itemWithMods.push(...ammoBoxItem);
} else if (this.itemHelper.isOfBaseclass(chosenTpl, BaseClasses.MAGAZINE)) { } else if (this.itemHelper.isOfBaseclass(chosenTpl, BaseClasses.MAGAZINE)) {
// Create array with just magazine // Create array with just magazine
const magazineItem: IItem[] = [{ _id: this.objectId.generate(), _tpl: chosenTpl }]; const magazineItem: IItem[] = [{ _id: this.hashUtil.generate(), _tpl: chosenTpl }];
if (this.randomUtil.getChance100(this.locationConfig.staticMagazineLootHasAmmoChancePercent)) { if (this.randomUtil.getChance100(this.locationConfig.staticMagazineLootHasAmmoChancePercent)) {
// Add randomised amount of cartridges // Add randomised amount of cartridges
@ -950,7 +950,7 @@ export class LocationLootGenerator {
const itemTemplate = this.itemHelper.getItem(chosenTpl)[1]; const itemTemplate = this.itemHelper.getItem(chosenTpl)[1];
let width = itemTemplate._props.Width; let width = itemTemplate._props.Width;
let height = itemTemplate._props.Height; let height = itemTemplate._props.Height;
let items: IItem[] = [{ _id: this.objectId.generate(), _tpl: chosenTpl }]; let items: IItem[] = [{ _id: this.hashUtil.generate(), _tpl: chosenTpl }];
const rootItem = items[0]; const rootItem = items[0];
// Use passed in parentId as override for new item // Use passed in parentId as override for new item

View File

@ -19,8 +19,8 @@ import type { ILogger } from "@spt/models/spt/utils/ILogger";
import { ConfigServer } from "@spt/servers/ConfigServer"; import { ConfigServer } from "@spt/servers/ConfigServer";
import { DatabaseService } from "@spt/services/DatabaseService"; import { DatabaseService } from "@spt/services/DatabaseService";
import { LocalisationService } from "@spt/services/LocalisationService"; import { LocalisationService } from "@spt/services/LocalisationService";
import { HashUtil } from "@spt/utils/HashUtil";
import { MathUtil } from "@spt/utils/MathUtil"; import { MathUtil } from "@spt/utils/MathUtil";
import { ObjectId } from "@spt/utils/ObjectId";
import { ProbabilityObjectArray, RandomUtil } from "@spt/utils/RandomUtil"; import { ProbabilityObjectArray, RandomUtil } from "@spt/utils/RandomUtil";
import type { ICloner } from "@spt/utils/cloners/ICloner"; import type { ICloner } from "@spt/utils/cloners/ICloner";
import { inject, injectable } from "tsyringe"; import { inject, injectable } from "tsyringe";
@ -32,12 +32,12 @@ export class RepeatableQuestGenerator {
constructor( constructor(
@inject("PrimaryLogger") protected logger: ILogger, @inject("PrimaryLogger") protected logger: ILogger,
@inject("HashUtil") protected hashUtil: HashUtil,
@inject("RandomUtil") protected randomUtil: RandomUtil, @inject("RandomUtil") protected randomUtil: RandomUtil,
@inject("MathUtil") protected mathUtil: MathUtil, @inject("MathUtil") protected mathUtil: MathUtil,
@inject("DatabaseService") protected databaseService: DatabaseService, @inject("DatabaseService") protected databaseService: DatabaseService,
@inject("ItemHelper") protected itemHelper: ItemHelper, @inject("ItemHelper") protected itemHelper: ItemHelper,
@inject("LocalisationService") protected localisationService: LocalisationService, @inject("LocalisationService") protected localisationService: LocalisationService,
@inject("ObjectId") protected objectId: ObjectId,
@inject("RepeatableQuestHelper") protected repeatableQuestHelper: RepeatableQuestHelper, @inject("RepeatableQuestHelper") protected repeatableQuestHelper: RepeatableQuestHelper,
@inject("RepeatableQuestRewardGenerator") @inject("RepeatableQuestRewardGenerator")
protected repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator, protected repeatableQuestRewardGenerator: RepeatableQuestRewardGenerator,
@ -308,7 +308,7 @@ export class RepeatableQuestGenerator {
} }
const availableForFinishCondition = quest.conditions.AvailableForFinish[0]; const availableForFinishCondition = quest.conditions.AvailableForFinish[0];
availableForFinishCondition.counter.id = this.objectId.generate(); availableForFinishCondition.counter.id = this.hashUtil.generate();
availableForFinishCondition.counter.conditions = []; availableForFinishCondition.counter.conditions = [];
// Only add specific location condition if specific map selected // Only add specific location condition if specific map selected
@ -327,7 +327,7 @@ export class RepeatableQuestGenerator {
), ),
); );
availableForFinishCondition.value = desiredKillCount; availableForFinishCondition.value = desiredKillCount;
availableForFinishCondition.id = this.objectId.generate(); availableForFinishCondition.id = this.hashUtil.generate();
quest.location = this.getQuestLocationByMapId(locationKey); quest.location = this.getQuestLocationByMapId(locationKey);
quest.rewards = this.repeatableQuestRewardGenerator.generateReward( quest.rewards = this.repeatableQuestRewardGenerator.generateReward(
@ -373,7 +373,7 @@ export class RepeatableQuestGenerator {
*/ */
protected generateEliminationLocation(location: string[]): IQuestConditionCounterCondition { protected generateEliminationLocation(location: string[]): IQuestConditionCounterCondition {
const propsObject: IQuestConditionCounterCondition = { const propsObject: IQuestConditionCounterCondition = {
id: this.objectId.generate(), id: this.hashUtil.generate(),
dynamicLocale: true, dynamicLocale: true,
target: location, target: location,
conditionType: "Location", conditionType: "Location",
@ -399,7 +399,7 @@ export class RepeatableQuestGenerator {
allowedWeaponCategory: string, allowedWeaponCategory: string,
): IQuestConditionCounterCondition { ): IQuestConditionCounterCondition {
const killConditionProps: IQuestConditionCounterCondition = { const killConditionProps: IQuestConditionCounterCondition = {
id: this.objectId.generate(), id: this.hashUtil.generate(),
dynamicLocale: true, dynamicLocale: true,
target: target, // e,g, "AnyPmc" target: target, // e,g, "AnyPmc"
value: 1, value: 1,
@ -632,7 +632,7 @@ export class RepeatableQuestGenerator {
} }
return { return {
id: this.objectId.generate(), id: this.hashUtil.generate(),
index: 0, index: 0,
parentId: "", parentId: "",
dynamicLocale: true, dynamicLocale: true,
@ -692,22 +692,22 @@ export class RepeatableQuestGenerator {
const quest = this.generateRepeatableTemplate("Exploration", traderId, repeatableConfig.side, sessionId); const quest = this.generateRepeatableTemplate("Exploration", traderId, repeatableConfig.side, sessionId);
const exitStatusCondition: IQuestConditionCounterCondition = { const exitStatusCondition: IQuestConditionCounterCondition = {
id: this.objectId.generate(), id: this.hashUtil.generate(),
dynamicLocale: true, dynamicLocale: true,
status: ["Survived"], status: ["Survived"],
conditionType: "ExitStatus", conditionType: "ExitStatus",
}; };
const locationCondition: IQuestConditionCounterCondition = { const locationCondition: IQuestConditionCounterCondition = {
id: this.objectId.generate(), id: this.hashUtil.generate(),
dynamicLocale: true, dynamicLocale: true,
target: locationTarget, target: locationTarget,
conditionType: "Location", conditionType: "Location",
}; };
quest.conditions.AvailableForFinish[0].counter.id = this.objectId.generate(); quest.conditions.AvailableForFinish[0].counter.id = this.hashUtil.generate();
quest.conditions.AvailableForFinish[0].counter.conditions = [exitStatusCondition, locationCondition]; quest.conditions.AvailableForFinish[0].counter.conditions = [exitStatusCondition, locationCondition];
quest.conditions.AvailableForFinish[0].value = numExtracts; quest.conditions.AvailableForFinish[0].value = numExtracts;
quest.conditions.AvailableForFinish[0].id = this.objectId.generate(); quest.conditions.AvailableForFinish[0].id = this.hashUtil.generate();
quest.location = this.getQuestLocationByMapId(locationKey); quest.location = this.getQuestLocationByMapId(locationKey);
if (requiresSpecificExtract) { if (requiresSpecificExtract) {
@ -831,7 +831,7 @@ export class RepeatableQuestGenerator {
*/ */
protected generateExplorationExitCondition(exit: IExit): IQuestConditionCounterCondition { protected generateExplorationExitCondition(exit: IExit): IQuestConditionCounterCondition {
return { return {
id: this.objectId.generate(), id: this.hashUtil.generate(),
dynamicLocale: true, dynamicLocale: true,
exitName: exit.Name, exitName: exit.Name,
conditionType: "ExitName", conditionType: "ExitName",
@ -858,7 +858,7 @@ export class RepeatableQuestGenerator {
const questClone = this.cloner.clone<IRepeatableQuest>( const questClone = this.cloner.clone<IRepeatableQuest>(
this.databaseService.getTemplates().repeatableQuests.templates[type], this.databaseService.getTemplates().repeatableQuests.templates[type],
); );
questClone._id = this.objectId.generate(); questClone._id = this.hashUtil.generate();
questClone.traderId = traderId; questClone.traderId = traderId;
/* in locale, these id correspond to the text of quests /* in locale, these id correspond to the text of quests
@ -903,7 +903,7 @@ export class RepeatableQuestGenerator {
.replace("{traderId}", desiredTraderId) .replace("{traderId}", desiredTraderId)
.replace("{templateId}", questClone.templateId); .replace("{templateId}", questClone.templateId);
questClone.questStatus.id = this.objectId.generate(); questClone.questStatus.id = this.hashUtil.generate();
questClone.questStatus.uid = sessionId; // Needs to match user id questClone.questStatus.uid = sessionId; // Needs to match user id
questClone.questStatus.qid = questClone._id; // Needs to match quest id questClone.questStatus.qid = questClone._id; // Needs to match quest id

View File

@ -25,7 +25,6 @@ import { LocalisationService } from "@spt/services/LocalisationService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService"; import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { HashUtil } from "@spt/utils/HashUtil"; import { HashUtil } from "@spt/utils/HashUtil";
import { MathUtil } from "@spt/utils/MathUtil"; import { MathUtil } from "@spt/utils/MathUtil";
import { ObjectId } from "@spt/utils/ObjectId";
import { RandomUtil } from "@spt/utils/RandomUtil"; import { RandomUtil } from "@spt/utils/RandomUtil";
import type { ICloner } from "@spt/utils/cloners/ICloner"; import type { ICloner } from "@spt/utils/cloners/ICloner";
import { inject, injectable } from "tsyringe"; import { inject, injectable } from "tsyringe";
@ -44,7 +43,6 @@ export class RepeatableQuestRewardGenerator {
@inject("PresetHelper") protected presetHelper: PresetHelper, @inject("PresetHelper") protected presetHelper: PresetHelper,
@inject("HandbookHelper") protected handbookHelper: HandbookHelper, @inject("HandbookHelper") protected handbookHelper: HandbookHelper,
@inject("LocalisationService") protected localisationService: LocalisationService, @inject("LocalisationService") protected localisationService: LocalisationService,
@inject("ObjectId") protected objectId: ObjectId,
@inject("ItemFilterService") protected itemFilterService: ItemFilterService, @inject("ItemFilterService") protected itemFilterService: ItemFilterService,
@inject("SeasonalEventService") protected seasonalEventService: SeasonalEventService, @inject("SeasonalEventService") protected seasonalEventService: SeasonalEventService,
@inject("ConfigServer") protected configServer: ConfigServer, @inject("ConfigServer") protected configServer: ConfigServer,
@ -518,7 +516,7 @@ export class RepeatableQuestRewardGenerator {
* @returns {object} Object of "Reward"-item-type * @returns {object} Object of "Reward"-item-type
*/ */
protected generateItemReward(tpl: string, count: number, index: number, foundInRaid = true): IQuestReward { protected generateItemReward(tpl: string, count: number, index: number, foundInRaid = true): IQuestReward {
const id = this.objectId.generate(); const id = this.hashUtil.generate();
const questRewardItem: IQuestReward = { const questRewardItem: IQuestReward = {
id: this.hashUtil.generate(), id: this.hashUtil.generate(),
unknown: false, unknown: false,
@ -555,7 +553,7 @@ export class RepeatableQuestRewardGenerator {
preset?: IItem[], preset?: IItem[],
foundInRaid = true, foundInRaid = true,
): IQuestReward { ): IQuestReward {
const id = this.objectId.generate(); const id = this.hashUtil.generate();
const questRewardItem: IQuestReward = { const questRewardItem: IQuestReward = {
id: this.hashUtil.generate(), id: this.hashUtil.generate(),
unknown: false, unknown: false,

View File

@ -18,7 +18,6 @@ import { CompareUtil } from "@spt/utils/CompareUtil";
import { HashUtil } from "@spt/utils/HashUtil"; import { HashUtil } from "@spt/utils/HashUtil";
import { JsonUtil } from "@spt/utils/JsonUtil"; import { JsonUtil } from "@spt/utils/JsonUtil";
import { MathUtil } from "@spt/utils/MathUtil"; import { MathUtil } from "@spt/utils/MathUtil";
import { ObjectId } from "@spt/utils/ObjectId";
import { ProbabilityObject, ProbabilityObjectArray, RandomUtil } from "@spt/utils/RandomUtil"; import { ProbabilityObject, ProbabilityObjectArray, RandomUtil } from "@spt/utils/RandomUtil";
import type { ICloner } from "@spt/utils/cloners/ICloner"; import type { ICloner } from "@spt/utils/cloners/ICloner";
import { inject, injectable } from "tsyringe"; import { inject, injectable } from "tsyringe";
@ -40,7 +39,6 @@ export class ItemHelper {
@inject("HashUtil") protected hashUtil: HashUtil, @inject("HashUtil") protected hashUtil: HashUtil,
@inject("JsonUtil") protected jsonUtil: JsonUtil, @inject("JsonUtil") protected jsonUtil: JsonUtil,
@inject("RandomUtil") protected randomUtil: RandomUtil, @inject("RandomUtil") protected randomUtil: RandomUtil,
@inject("ObjectId") protected objectId: ObjectId,
@inject("MathUtil") protected mathUtil: MathUtil, @inject("MathUtil") protected mathUtil: MathUtil,
@inject("DatabaseService") protected databaseService: DatabaseService, @inject("DatabaseService") protected databaseService: DatabaseService,
@inject("HandbookHelper") protected handbookHelper: HandbookHelper, @inject("HandbookHelper") protected handbookHelper: HandbookHelper,
@ -797,7 +795,7 @@ export class ItemHelper {
* @param itemWithChildren Item with mods to update * @param itemWithChildren Item with mods to update
* @param newId new id to add on chidren of base item * @param newId new id to add on chidren of base item
*/ */
public replaceRootItemID(itemWithChildren: IItem[], newId = this.objectId.generate()): void { public replaceRootItemID(itemWithChildren: IItem[], newId = this.hashUtil.generate()): void {
// original id on base item // original id on base item
const oldId = itemWithChildren[0]._id; const oldId = itemWithChildren[0]._id;
@ -1457,7 +1455,7 @@ export class ItemHelper {
foundInRaid = false, foundInRaid = false,
): IItem { ): IItem {
return { return {
_id: this.objectId.generate(), _id: this.hashUtil.generate(),
_tpl: ammoTpl, _tpl: ammoTpl,
parentId: parentId, parentId: parentId,
slotId: "cartridges", slotId: "cartridges",