mirror of
https://github.com/sp-tarkov/server.git
synced 2025-02-13 03:10:44 -05:00
Replaced uses of DatabaseServer
with DatabaseService
This commit is contained in:
parent
b9148514ce
commit
7d515ad680
@ -24,7 +24,7 @@ export class DataCallbacks
|
||||
{
|
||||
constructor(
|
||||
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
|
||||
@inject("DatabaseService") protected databaseServer: DatabaseService,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("RagfairController") protected ragfairController: RagfairController,
|
||||
@inject("HideoutController") protected hideoutController: HideoutController,
|
||||
)
|
||||
@ -36,7 +36,7 @@ export class DataCallbacks
|
||||
*/
|
||||
public getSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<ISettingsBase>
|
||||
{
|
||||
return this.httpResponse.getBody(this.databaseServer.getSettings());
|
||||
return this.httpResponse.getBody(this.databaseService.getSettings());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -45,10 +45,10 @@ export class DataCallbacks
|
||||
*/
|
||||
public getGlobals(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IGlobals>
|
||||
{
|
||||
const globals = this.databaseServer.getGlobals();
|
||||
const globals = this.databaseService.getGlobals();
|
||||
globals.time = Date.now() / 1000;
|
||||
|
||||
return this.httpResponse.getBody(this.databaseServer.getGlobals());
|
||||
return this.httpResponse.getBody(this.databaseService.getGlobals());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -57,7 +57,7 @@ export class DataCallbacks
|
||||
*/
|
||||
public getTemplateItems(url: string, info: IEmptyRequestData, sessionID: string): string
|
||||
{
|
||||
return this.httpResponse.getUnclearedBody(this.databaseServer.getItems());
|
||||
return this.httpResponse.getUnclearedBody(this.databaseService.getItems());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -70,7 +70,7 @@ export class DataCallbacks
|
||||
sessionID: string,
|
||||
): IGetBodyResponseData<IHandbookBase>
|
||||
{
|
||||
return this.httpResponse.getBody(this.databaseServer.getHandbook());
|
||||
return this.httpResponse.getBody(this.databaseService.getHandbook());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -83,7 +83,7 @@ export class DataCallbacks
|
||||
sessionID: string,
|
||||
): IGetBodyResponseData<Record<string, ICustomizationItem>>
|
||||
{
|
||||
return this.httpResponse.getBody(this.databaseServer.getTemplates().customization);
|
||||
return this.httpResponse.getBody(this.databaseService.getTemplates().customization);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -96,7 +96,7 @@ export class DataCallbacks
|
||||
sessionID: string,
|
||||
): IGetBodyResponseData<string[]>
|
||||
{
|
||||
return this.httpResponse.getBody(this.databaseServer.getTemplates().character);
|
||||
return this.httpResponse.getBody(this.databaseService.getTemplates().character);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -109,7 +109,7 @@ export class DataCallbacks
|
||||
sessionID: string,
|
||||
): IGetBodyResponseData<IHideoutSettingsBase>
|
||||
{
|
||||
return this.httpResponse.getBody(this.databaseServer.getHideout().settings);
|
||||
return this.httpResponse.getBody(this.databaseService.getHideout().settings);
|
||||
}
|
||||
|
||||
public getHideoutAreas(
|
||||
@ -118,7 +118,7 @@ export class DataCallbacks
|
||||
sessionID: string,
|
||||
): IGetBodyResponseData<IHideoutArea[]>
|
||||
{
|
||||
return this.httpResponse.getBody(this.databaseServer.getHideout().areas);
|
||||
return this.httpResponse.getBody(this.databaseService.getHideout().areas);
|
||||
}
|
||||
|
||||
public gethideoutProduction(
|
||||
@ -127,7 +127,7 @@ export class DataCallbacks
|
||||
sessionID: string,
|
||||
): IGetBodyResponseData<IHideoutProduction[]>
|
||||
{
|
||||
return this.httpResponse.getBody(this.databaseServer.getHideout().production);
|
||||
return this.httpResponse.getBody(this.databaseService.getHideout().production);
|
||||
}
|
||||
|
||||
public getHideoutScavcase(
|
||||
@ -136,7 +136,7 @@ export class DataCallbacks
|
||||
sessionID: string,
|
||||
): IGetBodyResponseData<IHideoutScavCase[]>
|
||||
{
|
||||
return this.httpResponse.getBody(this.databaseServer.getHideout().scavcase);
|
||||
return this.httpResponse.getBody(this.databaseService.getHideout().scavcase);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -148,7 +148,7 @@ export class DataCallbacks
|
||||
sessionID: string,
|
||||
): IGetBodyResponseData<Record<string, string>>
|
||||
{
|
||||
return this.httpResponse.getBody(this.databaseServer.getLocales().languages);
|
||||
return this.httpResponse.getBody(this.databaseService.getLocales().languages);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -157,7 +157,7 @@ export class DataCallbacks
|
||||
public getLocalesMenu(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<string>
|
||||
{
|
||||
const localeId = url.replace("/client/menu/locale/", "");
|
||||
const locales = this.databaseServer.getLocales();
|
||||
const locales = this.databaseService.getLocales();
|
||||
let result = locales.menu[localeId];
|
||||
|
||||
if (result === undefined)
|
||||
@ -177,7 +177,7 @@ export class DataCallbacks
|
||||
public getLocalesGlobal(url: string, info: IEmptyRequestData, sessionID: string): string
|
||||
{
|
||||
const localeId = url.replace("/client/locale/", "");
|
||||
const locales = this.databaseServer.getLocales();
|
||||
const locales = this.databaseService.getLocales();
|
||||
let result = locales.global[localeId];
|
||||
|
||||
if (result === undefined)
|
||||
|
@ -17,7 +17,7 @@ import { IProfileStatusResponse } from "@spt/models/eft/match/IProfileStatusResp
|
||||
import { IPutMetricsRequestData } from "@spt/models/eft/match/IPutMetricsRequestData";
|
||||
import { IRequestIdRequest } from "@spt/models/eft/match/IRequestIdRequest";
|
||||
import { IUpdatePingRequestData } from "@spt/models/eft/match/IUpdatePingRequestData";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
|
||||
import { JsonUtil } from "@spt/utils/JsonUtil";
|
||||
|
||||
@ -28,7 +28,7 @@ export class MatchCallbacks
|
||||
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
|
||||
@inject("JsonUtil") protected jsonUtil: JsonUtil,
|
||||
@inject("MatchController") protected matchController: MatchController,
|
||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
)
|
||||
{}
|
||||
|
||||
@ -166,7 +166,7 @@ export class MatchCallbacks
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
public getMetrics(url: string, info: any, sessionID: string): IGetBodyResponseData<string>
|
||||
{
|
||||
return this.httpResponse.getBody(this.jsonUtil.serialize(this.databaseServer.getTables().match!.metrics));
|
||||
return this.httpResponse.getBody(this.jsonUtil.serialize(this.databaseService.getMatch().metrics));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -45,7 +45,7 @@ export class InsuranceController
|
||||
@inject("EventOutputHolder") protected eventOutputHolder: EventOutputHolder,
|
||||
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
||||
@inject("SaveServer") protected saveServer: SaveServer,
|
||||
@inject("DatabaseService") protected databaseServer: DatabaseService,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
|
||||
@inject("DialogueHelper") protected dialogueHelper: DialogueHelper,
|
||||
@ -586,12 +586,12 @@ export class InsuranceController
|
||||
const labsId = "laboratory";
|
||||
// After all of the item filtering that we've done, if there are no items remaining, the insurance has
|
||||
// successfully "failed" to return anything and an appropriate message should be sent to the player.
|
||||
const traderDialogMessages = this.databaseServer.getTrader(insurance.traderId).dialogue;
|
||||
const traderDialogMessages = this.databaseService.getTrader(insurance.traderId).dialogue;
|
||||
|
||||
// Map is labs + insurance is disabled in base.json
|
||||
if (
|
||||
insurance.systemData?.location?.toLowerCase() === labsId
|
||||
&& !(this.databaseServer.getLocation(labsId).base.Insurance)
|
||||
&& !(this.databaseService.getLocation(labsId).base.Insurance)
|
||||
)
|
||||
{
|
||||
// Trader has labs-specific messages
|
||||
|
@ -32,7 +32,7 @@ export class LauncherController
|
||||
@inject("SaveServer") protected saveServer: SaveServer,
|
||||
@inject("HttpServerHelper") protected httpServerHelper: HttpServerHelper,
|
||||
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
|
||||
@inject("DatabaseService") protected databaseServer: DatabaseService,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("LocalisationService") protected localisationService: LocalisationService,
|
||||
@inject("PreSptModLoader") protected preSptModLoader: PreSptModLoader,
|
||||
@inject("ConfigServer") protected configServer: ConfigServer,
|
||||
@ -46,7 +46,7 @@ export class LauncherController
|
||||
return {
|
||||
backendUrl: this.httpServerHelper.getBackendUrl(),
|
||||
name: this.coreConfig.serverName,
|
||||
editions: Object.keys(this.databaseServer.getProfiles()),
|
||||
editions: Object.keys(this.databaseService.getProfiles()),
|
||||
profileDescriptions: this.getProfileDescriptions(),
|
||||
};
|
||||
}
|
||||
@ -58,7 +58,7 @@ export class LauncherController
|
||||
protected getProfileDescriptions(): Record<string, string>
|
||||
{
|
||||
const result = {};
|
||||
const dbProfiles = this.databaseServer.getProfiles();
|
||||
const dbProfiles = this.databaseService.getProfiles();
|
||||
for (const profileKey in dbProfiles)
|
||||
{
|
||||
const localeKey = dbProfiles[profileKey]?.descriptionLocaleKey;
|
||||
|
@ -5,7 +5,7 @@ import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
|
||||
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
|
||||
import { IPmcConfig } from "@spt/models/spt/config/IPmcConfig";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { ItemFilterService } from "@spt/services/ItemFilterService";
|
||||
import { RagfairPriceService } from "@spt/services/RagfairPriceService";
|
||||
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
|
||||
@ -26,7 +26,7 @@ export class PMCLootGenerator
|
||||
|
||||
constructor(
|
||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("ConfigServer") protected configServer: ConfigServer,
|
||||
@inject("ItemFilterService") protected itemFilterService: ItemFilterService,
|
||||
@inject("RagfairPriceService") protected ragfairPriceService: RagfairPriceService,
|
||||
@ -46,9 +46,9 @@ export class PMCLootGenerator
|
||||
// Hydrate loot dictionary if empty
|
||||
if (Object.keys(this.pocketLootPool).length === 0)
|
||||
{
|
||||
const items = this.databaseServer.getTables().templates.items;
|
||||
const items = this.databaseService.getItems();
|
||||
const pmcPriceOverrides
|
||||
= this.databaseServer.getTables().bots.types[botRole === "sptBear" ? "bear" : "usec"].inventory.items
|
||||
= this.databaseService.getBots()[botRole === "sptBear" ? "bear" : "usec"].inventory.items
|
||||
.Pockets;
|
||||
|
||||
const allowedItemTypes = this.pmcConfig.pocketLoot.whitelist;
|
||||
@ -106,9 +106,9 @@ export class PMCLootGenerator
|
||||
// Hydrate loot dictionary if empty
|
||||
if (Object.keys(this.vestLootPool).length === 0)
|
||||
{
|
||||
const items = this.databaseServer.getTables().templates.items;
|
||||
const items = this.databaseService.getItems();
|
||||
const pmcPriceOverrides
|
||||
= this.databaseServer.getTables().bots.types[botRole === "sptBear" ? "bear" : "usec"].inventory.items
|
||||
= this.databaseService.getBots().types[botRole === "sptBear" ? "bear" : "usec"].inventory.items
|
||||
.TacticalVest;
|
||||
|
||||
const allowedItemTypes = this.pmcConfig.vestLoot.whitelist;
|
||||
@ -176,9 +176,9 @@ export class PMCLootGenerator
|
||||
// Hydrate loot dictionary if empty
|
||||
if (Object.keys(this.backpackLootPool).length === 0)
|
||||
{
|
||||
const items = this.databaseServer.getTables().templates.items;
|
||||
const items = this.databaseService.getItems();
|
||||
const pmcPriceOverrides
|
||||
= this.databaseServer.getTables().bots.types[botRole === "sptBear" ? "bear" : "usec"].inventory.items
|
||||
= this.databaseService.getBots().types[botRole === "sptBear" ? "bear" : "usec"].inventory.items
|
||||
.Backpack;
|
||||
|
||||
const allowedItemTypes = this.pmcConfig.backpackLoot.whitelist;
|
||||
|
@ -17,9 +17,9 @@ import { Traders } from "@spt/models/enums/Traders";
|
||||
import { IPlayerScavConfig, KarmaLevel } from "@spt/models/spt/config/IPlayerScavConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { SaveServer } from "@spt/servers/SaveServer";
|
||||
import { BotLootCacheService } from "@spt/services/BotLootCacheService";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { FenceService } from "@spt/services/FenceService";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
import { ICloner } from "@spt/utils/cloners/ICloner";
|
||||
@ -34,7 +34,7 @@ export class PlayerScavGenerator
|
||||
constructor(
|
||||
@inject("PrimaryLogger") protected logger: ILogger,
|
||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("HashUtil") protected hashUtil: HashUtil,
|
||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||
@inject("BotGeneratorHelper") protected botGeneratorHelper: BotGeneratorHelper,
|
||||
@ -342,7 +342,7 @@ export class PlayerScavGenerator
|
||||
{
|
||||
// Set cooldown time.
|
||||
// Make sure to apply ScavCooldownTimer bonus from Hideout if the player has it.
|
||||
let scavLockDuration = this.databaseServer.getTables().globals.config.SavagePlayCooldown;
|
||||
let scavLockDuration = this.databaseService.getGlobals().config.SavagePlayCooldown;
|
||||
let modifier = 1;
|
||||
|
||||
for (const bonus of pmcData.Bonuses)
|
||||
|
@ -23,8 +23,8 @@ import {
|
||||
} from "@spt/models/spt/config/IRagfairConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { SaveServer } from "@spt/servers/SaveServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { FenceService } from "@spt/services/FenceService";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
import { RagfairOfferService } from "@spt/services/RagfairOfferService";
|
||||
@ -48,7 +48,7 @@ export class RagfairOfferGenerator
|
||||
@inject("HashUtil") protected hashUtil: HashUtil,
|
||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("RagfairServerHelper") protected ragfairServerHelper: RagfairServerHelper,
|
||||
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
|
||||
@inject("HandbookHelper") protected handbookHelper: HandbookHelper,
|
||||
@ -242,7 +242,7 @@ export class RagfairOfferGenerator
|
||||
{
|
||||
if (isTrader)
|
||||
{
|
||||
return this.databaseServer.getTables().traders[userId].base.avatar;
|
||||
return this.databaseService.getTrader(userId).base.avatar;
|
||||
}
|
||||
|
||||
return "/files/trader/avatar/unknown.jpg";
|
||||
@ -338,14 +338,14 @@ export class RagfairOfferGenerator
|
||||
{
|
||||
// Player offer = current time + offerDurationTimeInHour;
|
||||
const offerDurationTimeHours
|
||||
= this.databaseServer.getTables().globals!.config.RagFair.offerDurationTimeInHour;
|
||||
= this.databaseService.getGlobals().config.RagFair.offerDurationTimeInHour;
|
||||
return this.timeUtil.getTimestamp() + Math.round(offerDurationTimeHours * TimeUtil.ONE_HOUR_AS_SECONDS);
|
||||
}
|
||||
|
||||
if (this.ragfairServerHelper.isTrader(userID))
|
||||
{
|
||||
// Trader offer
|
||||
return this.databaseServer.getTables().traders![userID].base.nextResupply;
|
||||
return this.databaseService.getTrader(userID).base.nextResupply;
|
||||
}
|
||||
|
||||
// Generated fake-player offer
|
||||
@ -577,7 +577,7 @@ export class RagfairOfferGenerator
|
||||
|
||||
// Add trader offers
|
||||
const time = this.timeUtil.getTimestamp();
|
||||
const trader = this.databaseServer.getTables().traders[traderID];
|
||||
const trader = this.databaseService.getTrader(traderID);
|
||||
const assorts = trader.assort;
|
||||
|
||||
// Trader assorts / assort items are missing
|
||||
@ -957,7 +957,7 @@ export class RagfairOfferGenerator
|
||||
// Generate if needed
|
||||
if (!this.allowedFleaPriceItemsForBarter)
|
||||
{
|
||||
const fleaPrices = this.databaseServer.getTables().templates.prices;
|
||||
const fleaPrices = this.databaseService.getPrices();
|
||||
const fleaArray = Object.entries(fleaPrices).map(([tpl, price]) => ({ tpl: tpl, price: price }));
|
||||
|
||||
// Only get item prices for items that also exist in items.json
|
||||
|
@ -18,7 +18,7 @@ import {
|
||||
import { IQuestTypePool } from "@spt/models/spt/repeatable/IQuestTypePool";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
import { ICloner } from "@spt/utils/cloners/ICloner";
|
||||
import { MathUtil } from "@spt/utils/MathUtil";
|
||||
@ -34,7 +34,7 @@ export class RepeatableQuestGenerator
|
||||
@inject("PrimaryLogger") protected logger: ILogger,
|
||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||
@inject("MathUtil") protected mathUtil: MathUtil,
|
||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||
@inject("LocalisationService") protected localisationService: LocalisationService,
|
||||
@inject("ObjectId") protected objectId: ObjectId,
|
||||
@ -238,7 +238,7 @@ export class RepeatableQuestGenerator
|
||||
if (targetsConfig.data(targetKey).isBoss)
|
||||
{
|
||||
// Get all boss spawn information
|
||||
const bossSpawns = Object.values(this.databaseServer.getTables().locations)
|
||||
const bossSpawns = Object.values(this.databaseService.getLocations())
|
||||
.filter((x) => "base" in x && "Id" in x.base)
|
||||
.map((x) => ({ Id: x.base.Id, BossSpawn: x.base.BossLocationSpawn }));
|
||||
// filter for the current boss to spawn on map
|
||||
@ -509,7 +509,7 @@ export class RepeatableQuestGenerator
|
||||
if (repeatableConfig.questConfig.Completion.useWhitelist)
|
||||
{
|
||||
const itemWhitelist
|
||||
= this.databaseServer.getTables().templates.repeatableQuests.data.Completion.itemsWhitelist;
|
||||
= this.databaseService.getTemplates().repeatableQuests.data.Completion.itemsWhitelist;
|
||||
|
||||
// Filter and concatenate the arrays according to current player level
|
||||
const itemIdsWhitelisted = itemWhitelist
|
||||
@ -531,7 +531,7 @@ export class RepeatableQuestGenerator
|
||||
if (repeatableConfig.questConfig.Completion.useBlacklist)
|
||||
{
|
||||
const itemBlacklist
|
||||
= this.databaseServer.getTables().templates.repeatableQuests.data.Completion.itemsBlacklist;
|
||||
= this.databaseService.getTemplates().repeatableQuests.data.Completion.itemsBlacklist;
|
||||
|
||||
// we filter and concatenate the arrays according to current player level
|
||||
const itemIdsBlacklisted = itemBlacklist
|
||||
@ -792,8 +792,9 @@ export class RepeatableQuestGenerator
|
||||
*/
|
||||
protected getLocationExitsForSide(locationKey: string, playerSide: string): Exit[]
|
||||
{
|
||||
const mapExtracts = this.databaseServer.getTables().locations[locationKey.toLocaleLowerCase()]
|
||||
.allExtracts as Exit[];
|
||||
const mapExtracts = this.databaseService
|
||||
.getLocation(locationKey.toLocaleLowerCase())
|
||||
.allExtracts;
|
||||
|
||||
return mapExtracts.filter((exit) => exit.Side === playerSide);
|
||||
}
|
||||
@ -881,7 +882,7 @@ export class RepeatableQuestGenerator
|
||||
protected generateRepeatableTemplate(type: string, traderId: string, side: string): IRepeatableQuest
|
||||
{
|
||||
const questClone = this.cloner.clone<IRepeatableQuest>(
|
||||
this.databaseServer.getTables().templates.repeatableQuests.templates[type],
|
||||
this.databaseService.getTemplates().repeatableQuests.templates[type],
|
||||
);
|
||||
questClone._id = this.objectId.generate();
|
||||
questClone.traderId = traderId;
|
||||
|
@ -15,7 +15,7 @@ import { IBaseQuestConfig, IQuestConfig, IRepeatableQuestConfig } from "@spt/mod
|
||||
import { ExhaustableArray } from "@spt/models/spt/server/ExhaustableArray";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { ItemFilterService } from "@spt/services/ItemFilterService";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
|
||||
@ -33,7 +33,7 @@ export class RepeatableQuestRewardGenerator
|
||||
@inject("PrimaryLogger") protected logger: ILogger,
|
||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||
@inject("MathUtil") protected mathUtil: MathUtil,
|
||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||
@inject("PresetHelper") protected presetHelper: PresetHelper,
|
||||
@inject("HandbookHelper") protected handbookHelper: HandbookHelper,
|
||||
@ -426,7 +426,7 @@ export class RepeatableQuestRewardGenerator
|
||||
// check for specific baseclasses which don't make sense as reward item
|
||||
// also check if the price is greater than 0; there are some items whose price can not be found
|
||||
// those are not in the game yet (e.g. AGS grenade launcher)
|
||||
return Object.entries(this.databaseServer.getTables().templates.items).filter(
|
||||
return Object.entries(this.databaseService.getItems()).filter(
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
([tpl, itemTemplate]) =>
|
||||
{
|
||||
|
@ -14,7 +14,7 @@ import {
|
||||
} from "@spt/models/spt/hideout/ScavCaseRewardCountsAndPrices";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { ItemFilterService } from "@spt/services/ItemFilterService";
|
||||
import { RagfairPriceService } from "@spt/services/RagfairPriceService";
|
||||
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
|
||||
@ -37,7 +37,7 @@ export class ScavCaseRewardGenerator
|
||||
@inject("HashUtil") protected hashUtil: HashUtil,
|
||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||
@inject("PresetHelper") protected presetHelper: PresetHelper,
|
||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("RagfairPriceService") protected ragfairPriceService: RagfairPriceService,
|
||||
@inject("SeasonalEventService") protected seasonalEventService: SeasonalEventService,
|
||||
@inject("ItemFilterService") protected itemFilterService: ItemFilterService,
|
||||
@ -57,7 +57,7 @@ export class ScavCaseRewardGenerator
|
||||
this.cacheDbItems();
|
||||
|
||||
// Get scavcase details from hideout/scavcase.json
|
||||
const scavCaseDetails = this.databaseServer.getTables().hideout.scavcase.find((r) => r._id === recipeId);
|
||||
const scavCaseDetails = this.databaseService.getHideout().scavcase.find((r) => r._id === recipeId);
|
||||
const rewardItemCounts = this.getScavCaseRewardCountsAndPrices(scavCaseDetails);
|
||||
|
||||
// Get items that fit the price criteria as set by the scavCase config
|
||||
@ -98,7 +98,7 @@ export class ScavCaseRewardGenerator
|
||||
const inactiveSeasonalItems = this.seasonalEventService.getInactiveSeasonalEventItems();
|
||||
if (!this.dbItemsCache)
|
||||
{
|
||||
this.dbItemsCache = Object.values(this.databaseServer.getTables().templates.items).filter((item) =>
|
||||
this.dbItemsCache = Object.values(this.databaseService.getItems()).filter((item) =>
|
||||
{
|
||||
// Base "Item" item has no parent, ignore it
|
||||
if (item._parent === "")
|
||||
@ -154,7 +154,7 @@ export class ScavCaseRewardGenerator
|
||||
|
||||
if (!this.dbAmmoItemsCache)
|
||||
{
|
||||
this.dbAmmoItemsCache = Object.values(this.databaseServer.getTables().templates.items).filter((item) =>
|
||||
this.dbAmmoItemsCache = Object.values(this.databaseService.getItems()).filter((item) =>
|
||||
{
|
||||
// Base "Item" item has no parent, ignore it
|
||||
if (item._parent === "")
|
||||
@ -280,9 +280,10 @@ export class ScavCaseRewardGenerator
|
||||
protected getRandomMoney(): ITemplateItem
|
||||
{
|
||||
const money: ITemplateItem[] = [];
|
||||
money.push(this.databaseServer.getTables().templates.items["5449016a4bdc2d6f028b456f"]); // rub
|
||||
money.push(this.databaseServer.getTables().templates.items["569668774bdc2da2298b4568"]); // euro
|
||||
money.push(this.databaseServer.getTables().templates.items["5696686a4bdc2da3298b456a"]); // dollar
|
||||
const items = this.databaseService.getItems();
|
||||
money.push(items["5449016a4bdc2d6f028b456f"]); // rub
|
||||
money.push(items["569668774bdc2da2298b4568"]); // euro
|
||||
money.push(items["5696686a4bdc2da3298b456a"]); // dollar
|
||||
|
||||
return this.randomUtil.getArrayValue(money);
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
|
||||
import { IPmcConfig } from "@spt/models/spt/config/IPmcConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
import { ICloner } from "@spt/utils/cloners/ICloner";
|
||||
import { RandomUtil } from "@spt/utils/RandomUtil";
|
||||
@ -17,7 +17,7 @@ export class BotDifficultyHelper
|
||||
|
||||
constructor(
|
||||
@inject("PrimaryLogger") protected logger: ILogger,
|
||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||
@inject("LocalisationService") protected localisationService: LocalisationService,
|
||||
@inject("BotHelper") protected botHelper: BotHelper,
|
||||
@ -121,7 +121,7 @@ export class BotDifficultyHelper
|
||||
*/
|
||||
public getBotDifficultySettings(type: string, difficulty: string): Difficulty
|
||||
{
|
||||
const botDb = this.databaseServer.getTables().bots;
|
||||
const botDb = this.databaseService.getBots();
|
||||
|
||||
const desiredType = type.toLowerCase();
|
||||
const bot = botDb.types[desiredType];
|
||||
@ -165,7 +165,7 @@ export class BotDifficultyHelper
|
||||
|
||||
difficultySetting = this.convertBotDifficultyDropdownToBotDifficulty(difficultySetting);
|
||||
|
||||
return this.cloner.clone(this.databaseServer.getTables().bots.types[type].difficulty[difficultySetting]);
|
||||
return this.cloner.clone(this.databaseService.getBots().types[type].difficulty[difficultySetting]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -17,7 +17,7 @@ import { EquipmentFilters, IBotConfig, IRandomisedResourceValues } from "@spt/mo
|
||||
import { IPmcConfig } from "@spt/models/spt/config/IPmcConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
import { RandomUtil } from "@spt/utils/RandomUtil";
|
||||
|
||||
@ -30,7 +30,7 @@ export class BotGeneratorHelper
|
||||
constructor(
|
||||
@inject("PrimaryLogger") protected logger: ILogger,
|
||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("DurabilityLimitsHelper") protected durabilityLimitsHelper: DurabilityLimitsHelper,
|
||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||
@inject("InventoryHelper") protected inventoryHelper: InventoryHelper,
|
||||
@ -289,7 +289,7 @@ export class BotGeneratorHelper
|
||||
): IChooseRandomCompatibleModResult
|
||||
{
|
||||
// TODO: Can probably be optimized to cache itemTemplates as items are added to inventory
|
||||
const equippedItemsDb = itemsEquipped.map((item) => this.databaseServer.getTables().templates.items[item._tpl]);
|
||||
const equippedItemsDb = itemsEquipped.map((item) => this.itemHelper.getItem(item._tpl)[1]);
|
||||
const itemToEquipDb = this.itemHelper.getItem(tplToCheck);
|
||||
const itemToEquip = itemToEquipDb[1];
|
||||
|
||||
@ -365,7 +365,7 @@ export class BotGeneratorHelper
|
||||
}
|
||||
|
||||
// TODO: Can probably be optimized to cache itemTemplates as items are added to inventory
|
||||
const equippedItemsDb = itemsEquipped.map((i) => this.databaseServer.getTables().templates.items[i._tpl]);
|
||||
const equippedItemsDb = itemsEquipped.map((equippedItem) => this.itemHelper.getItem(equippedItem._tpl)[1]);
|
||||
const itemToEquipDb = this.itemHelper.getItem(tplToCheck);
|
||||
const itemToEquip = itemToEquipDb[1];
|
||||
|
||||
@ -395,7 +395,7 @@ export class BotGeneratorHelper
|
||||
}
|
||||
|
||||
// Does an equipped item have a property that blocks the desired item - check for prop "BlocksX" .e.g BlocksEarpiece / BlocksFaceCover
|
||||
let blockingItem = equippedItemsDb.find((x) => x._props[`Blocks${equipmentSlot}`]);
|
||||
let blockingItem = equippedItemsDb.find((item) => item._props[`Blocks${equipmentSlot}`]);
|
||||
if (blockingItem)
|
||||
{
|
||||
// this.logger.warning(`1 incompatibility found between - ${itemToEquip[1]._name} and ${blockingItem._name} - ${equipmentSlot}`);
|
||||
|
@ -6,7 +6,7 @@ import { EquipmentFilters, IBotConfig, RandomisationDetails } from "@spt/models/
|
||||
import { IPmcConfig } from "@spt/models/spt/config/IPmcConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { RandomUtil } from "@spt/utils/RandomUtil";
|
||||
|
||||
@injectable()
|
||||
@ -17,7 +17,7 @@ export class BotHelper
|
||||
|
||||
constructor(
|
||||
@inject("PrimaryLogger") protected logger: ILogger,
|
||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||
@inject("ConfigServer") protected configServer: ConfigServer,
|
||||
)
|
||||
@ -33,7 +33,7 @@ export class BotHelper
|
||||
*/
|
||||
public getBotTemplate(role: string): IBotType
|
||||
{
|
||||
return this.databaseServer.getTables().bots.types[role.toLowerCase()];
|
||||
return this.databaseService.getBots().types[role.toLowerCase()];
|
||||
}
|
||||
|
||||
/**
|
||||
@ -207,7 +207,7 @@ export class BotHelper
|
||||
// recurivse if name is longer than max characters allowed (15 characters)
|
||||
const randomType = this.randomUtil.getInt(0, 1) === 0 ? "usec" : "bear";
|
||||
const name
|
||||
= this.randomUtil.getStringArrayValue(this.databaseServer.getTables().bots.types[randomType].firstName);
|
||||
= this.randomUtil.getStringArrayValue(this.databaseService.getBots().types[randomType].firstName);
|
||||
return name.length > maxLength
|
||||
? this.getPmcNicknameOfMaxLength(userId, maxLength)
|
||||
: name;
|
||||
|
@ -7,7 +7,7 @@ import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest"
|
||||
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IProfileChangeEvent, ProfileChangeEventType } from "@spt/models/spt/dialog/ISendMessageDetails";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { LocaleService } from "@spt/services/LocaleService";
|
||||
import { MailSendService } from "@spt/services/MailSendService";
|
||||
import { HashUtil } from "@spt/utils/HashUtil";
|
||||
@ -31,7 +31,7 @@ export class TraderSptCommand implements ISptCommand
|
||||
@inject("PresetHelper") protected presetHelper: PresetHelper,
|
||||
@inject("MailSendService") protected mailSendService: MailSendService,
|
||||
@inject("LocaleService") protected localeService: LocaleService,
|
||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
)
|
||||
{}
|
||||
|
||||
@ -63,7 +63,7 @@ export class TraderSptCommand implements ISptCommand
|
||||
const command: string = result.groups.command;
|
||||
const quantity: number = +result.groups.quantity;
|
||||
|
||||
const dbTrader = Object.values(this.databaseServer.getTables().traders!).find(
|
||||
const dbTrader = Object.values(this.databaseService.getTraders()).find(
|
||||
(t) => t.base.nickname.toLocaleLowerCase() === trader.toLocaleLowerCase(),
|
||||
);
|
||||
if (dbTrader === undefined)
|
||||
|
@ -5,7 +5,7 @@ import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
|
||||
import { Money } from "@spt/models/enums/Money";
|
||||
import { IItemConfig } from "@spt/models/spt/config/IItemConfig";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { ICloner } from "@spt/utils/cloners/ICloner";
|
||||
|
||||
class LookupItem<T, I>
|
||||
@ -40,7 +40,7 @@ export class HandbookHelper
|
||||
protected handbookPriceCache = new LookupCollection();
|
||||
|
||||
constructor(
|
||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("ConfigServer") protected configServer: ConfigServer,
|
||||
@inject("PrimaryCloner") protected cloner: ICloner,
|
||||
)
|
||||
@ -53,31 +53,26 @@ export class HandbookHelper
|
||||
*/
|
||||
public hydrateLookup(): void
|
||||
{
|
||||
const handbook = this.databaseService.getHandbook();
|
||||
// Add handbook overrides found in items.json config into db
|
||||
for (const itemTpl in this.itemConfig.handbookPriceOverride)
|
||||
{
|
||||
let itemToUpdate = this.databaseServer.getTables()
|
||||
.templates!
|
||||
.handbook
|
||||
.Items.find((item) => item.Id === itemTpl);
|
||||
let itemToUpdate = handbook.Items.find((item) => item.Id === itemTpl);
|
||||
if (!itemToUpdate)
|
||||
{
|
||||
this.databaseServer.getTables().templates!.handbook.Items.push({
|
||||
handbook.Items.push({
|
||||
Id: itemTpl,
|
||||
ParentId: this.databaseServer.getTables().templates!.items[itemTpl]._parent,
|
||||
ParentId: this.databaseService.getItems()[itemTpl]._parent,
|
||||
Price: this.itemConfig.handbookPriceOverride[itemTpl],
|
||||
});
|
||||
itemToUpdate = this.databaseServer
|
||||
.getTables()
|
||||
.templates!
|
||||
.handbook
|
||||
itemToUpdate = handbook
|
||||
.Items.find((item) => item.Id === itemTpl);
|
||||
}
|
||||
|
||||
itemToUpdate.Price = this.itemConfig.handbookPriceOverride[itemTpl];
|
||||
}
|
||||
|
||||
const handbookDbClone = this.cloner.clone(this.databaseServer.getTables().templates!.handbook);
|
||||
const handbookDbClone = this.cloner.clone(handbook);
|
||||
for (const handbookItem of handbookDbClone.Items)
|
||||
{
|
||||
this.handbookPriceCache.items.byId.set(handbookItem.Id, handbookItem.Price);
|
||||
@ -105,7 +100,7 @@ export class HandbookHelper
|
||||
/**
|
||||
* Get price from internal cache, if cache empty look up price directly in handbook (expensive)
|
||||
* If no values found, return 0
|
||||
* @param tpl item tpl to look up price for
|
||||
* @param tpl Item tpl to look up price for
|
||||
* @returns price in roubles
|
||||
*/
|
||||
public getTemplatePrice(tpl: string): number
|
||||
@ -121,7 +116,7 @@ export class HandbookHelper
|
||||
return this.handbookPriceCache.items.byId.get(tpl);
|
||||
}
|
||||
|
||||
const handbookItem = this.databaseServer.getTables().templates!.handbook.Items.find((x) => x.Id === tpl);
|
||||
const handbookItem = this.databaseService.getHandbook().Items.find((item) => item.Id === tpl);
|
||||
if (!handbookItem)
|
||||
{
|
||||
const newValue = 0;
|
||||
@ -211,6 +206,6 @@ export class HandbookHelper
|
||||
|
||||
public getCategoryById(handbookId: string): Category
|
||||
{
|
||||
return this.databaseServer.getTables().templates.handbook.Categories.find((x) => x.Id === handbookId);
|
||||
return this.databaseService.getHandbook().Categories.find((category) => category.Id === handbookId);
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ import { IHideoutConfig } from "@spt/models/spt/config/IHideoutConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { EventOutputHolder } from "@spt/routers/EventOutputHolder";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
import { PlayerService } from "@spt/services/PlayerService";
|
||||
import { ICloner } from "@spt/utils/cloners/ICloner";
|
||||
@ -44,7 +44,7 @@ export class HideoutHelper
|
||||
@inject("PrimaryLogger") protected logger: ILogger,
|
||||
@inject("HashUtil") protected hashUtil: HashUtil,
|
||||
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("EventOutputHolder") protected eventOutputHolder: EventOutputHolder,
|
||||
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
|
||||
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
|
||||
@ -72,9 +72,8 @@ export class HideoutHelper
|
||||
sessionID: string,
|
||||
): IItemEventRouterResponse
|
||||
{
|
||||
const recipe = this.databaseServer
|
||||
.getTables()
|
||||
.hideout.production.find((production) => production._id === body.recipeId);
|
||||
const recipe = this.databaseService.getHideout().production
|
||||
.find((production) => production._id === body.recipeId);
|
||||
if (!recipe)
|
||||
{
|
||||
this.logger.error(this.localisationService.getText("hideout-missing_recipe_in_db", body.recipeId));
|
||||
@ -258,7 +257,7 @@ export class HideoutHelper
|
||||
hideoutProperties: { btcFarmCGs: number, isGeneratorOn: boolean, waterCollectorHasFilter: boolean },
|
||||
): void
|
||||
{
|
||||
const recipes = this.databaseServer.getTables().hideout.production;
|
||||
const recipes = this.databaseService.getHideout().production;
|
||||
|
||||
// Check each production
|
||||
for (const prodId in pmcData.Hideout.Production)
|
||||
@ -449,7 +448,7 @@ export class HideoutHelper
|
||||
// 1 resource last 14 min 27 sec, 1/14.45/60 = 0.00115
|
||||
// 10-10-2021 From wiki, 1 resource last 12 minutes 38 seconds, 1/12.63333/60 = 0.00131
|
||||
let fuelUsedSinceLastTick
|
||||
= this.databaseServer.getTables().hideout.settings.generatorFuelFlowRate
|
||||
= this.databaseService.getHideout().settings.generatorFuelFlowRate
|
||||
* this.getTimeElapsedSinceLastServerTick(pmcData, isGeneratorOn);
|
||||
|
||||
const profileFuelConsumptionBonus = pmcData.Bonuses.find((bonus) => bonus.type === BonusType.FUEL_CONSUMPTION);
|
||||
@ -603,11 +602,10 @@ export class HideoutHelper
|
||||
applyHideoutManagementBonus = false,
|
||||
): number
|
||||
{
|
||||
const globalSkillsDb = this.databaseServer.getTables().globals.config.SkillsSettings;
|
||||
const globalSkillsDb = this.databaseService.getGlobals().config.SkillsSettings;
|
||||
|
||||
const recipe = this.databaseServer
|
||||
.getTables()
|
||||
.hideout.production.find((production) => production._id === recipeId);
|
||||
const recipe = this.databaseService.getHideout().production
|
||||
.find((production) => production._id === recipeId);
|
||||
if (!recipe)
|
||||
{
|
||||
this.logger.error(this.localisationService.getText("hideout-missing_recipe_in_db", recipeId));
|
||||
@ -773,7 +771,7 @@ export class HideoutHelper
|
||||
*/
|
||||
protected getWaterFilterDrainRate(pmcData: IPmcData): number
|
||||
{
|
||||
const globalSkillsDb = this.databaseServer.getTables().globals.config.SkillsSettings;
|
||||
const globalSkillsDb = this.databaseService.getGlobals().config.SkillsSettings;
|
||||
|
||||
// 100 resources last 8 hrs 20 min, 100/8.33/60/60 = 0.00333
|
||||
const filterDrainRate = 0.00333;
|
||||
@ -805,7 +803,7 @@ export class HideoutHelper
|
||||
*/
|
||||
protected getTotalProductionTimeSeconds(prodId: string): number
|
||||
{
|
||||
const recipe = this.databaseServer.getTables().hideout.production.find((prod) => prod._id === prodId);
|
||||
const recipe = this.databaseService.getHideout().production.find((prod) => prod._id === prodId);
|
||||
|
||||
return recipe.productionTime || 0;
|
||||
}
|
||||
@ -839,7 +837,7 @@ export class HideoutHelper
|
||||
300/17.64694/60/60 = 0.004722
|
||||
*/
|
||||
let filterDrainRate
|
||||
= this.databaseServer.getTables().hideout.settings.airFilterUnitFlowRate
|
||||
= this.databaseService.getHideout().settings.airFilterUnitFlowRate
|
||||
* this.getTimeElapsedSinceLastServerTick(pmcData, isGeneratorOn);
|
||||
|
||||
// Hideout management resource consumption bonus:
|
||||
@ -894,10 +892,8 @@ export class HideoutHelper
|
||||
protected updateBitcoinFarm(pmcData: IPmcData, btcFarmCGs: number, isGeneratorOn: boolean): Production | undefined
|
||||
{
|
||||
const btcProd = pmcData.Hideout.Production[HideoutHelper.bitcoinFarm];
|
||||
const bitcoinProdData = this.databaseServer
|
||||
.getTables()
|
||||
.hideout!
|
||||
.production.find((production) => production._id === HideoutHelper.bitcoinProductionId);
|
||||
const bitcoinProdData = this.databaseService.getHideout().production
|
||||
.find((production) => production._id === HideoutHelper.bitcoinProductionId);
|
||||
const coinSlotCount = this.getBTCSlots(pmcData);
|
||||
|
||||
// Full on bitcoins, halt progress
|
||||
@ -948,7 +944,7 @@ export class HideoutHelper
|
||||
// BSG finally fixed their settings, they now get loaded from the settings and used in the client
|
||||
const adjustedCraftTime
|
||||
= (this.profileHelper.isDeveloperAccount(pmcData.sessionId) ? 40 : bitcoinProdData.productionTime)
|
||||
/ (1 + (btcFarmCGs - 1) * this.databaseServer.getTables().hideout.settings.gpuBoostRate);
|
||||
/ (1 + (btcFarmCGs - 1) * this.databaseService.getHideout().settings.gpuBoostRate);
|
||||
|
||||
// The progress should be adjusted based on the GPU boost rate, but the target is still the base productionTime
|
||||
const timeMultiplier = bitcoinProdData.productionTime / adjustedCraftTime;
|
||||
@ -1018,7 +1014,7 @@ export class HideoutHelper
|
||||
|
||||
if (!isGeneratorOn)
|
||||
{
|
||||
timeElapsed *= this.databaseServer.getTables().hideout!.settings.generatorSpeedWithoutFuel;
|
||||
timeElapsed *= this.databaseService.getHideout().settings.generatorSpeedWithoutFuel;
|
||||
}
|
||||
|
||||
return timeElapsed;
|
||||
@ -1031,9 +1027,8 @@ export class HideoutHelper
|
||||
*/
|
||||
protected getBTCSlots(pmcData: IPmcData): number
|
||||
{
|
||||
const bitcoinProductions = this.databaseServer
|
||||
.getTables()
|
||||
.hideout.production.find((production) => production._id === HideoutHelper.bitcoinFarm);
|
||||
const bitcoinProductions = this.databaseService.getHideout().production
|
||||
.find((production) => production._id === HideoutHelper.bitcoinFarm);
|
||||
const productionSlots = bitcoinProductions?.productionLimitCount || 3; // Default to 3 if none found
|
||||
const hasManagementSkillSlots = this.profileHelper.hasEliteSkillLevel(SkillTypes.HIDEOUT_MANAGEMENT, pmcData);
|
||||
const managementSlotsCount = this.getEliteSkillAdditionalBitcoinSlotCount() || 2;
|
||||
@ -1046,7 +1041,7 @@ export class HideoutHelper
|
||||
*/
|
||||
protected getEliteSkillAdditionalBitcoinSlotCount(): number
|
||||
{
|
||||
return this.databaseServer.getTables().globals.config.SkillsSettings.HideoutManagement.EliteSlots.BitcoinFarm
|
||||
return this.databaseService.getGlobals().config.SkillsSettings.HideoutManagement.EliteSlots.BitcoinFarm
|
||||
.Container;
|
||||
}
|
||||
|
||||
@ -1072,7 +1067,7 @@ export class HideoutHelper
|
||||
|
||||
return (
|
||||
(roundedLevel
|
||||
* this.databaseServer.getTables().globals.config.SkillsSettings.HideoutManagement
|
||||
* this.databaseService.getGlobals().config.SkillsSettings.HideoutManagement
|
||||
.ConsumptionReductionPerLevel)
|
||||
/ 100
|
||||
);
|
||||
@ -1254,9 +1249,8 @@ export class HideoutHelper
|
||||
const fameAreaProfile = pmcData.Hideout.Areas.find((area) => area.type === HideoutAreas.PLACE_OF_FAME);
|
||||
|
||||
// Get hideout area 16 bonus array
|
||||
const fameAreaDb = this.databaseServer
|
||||
.getTables()
|
||||
.hideout.areas.find((area) => area.type === HideoutAreas.PLACE_OF_FAME);
|
||||
const fameAreaDb = this.databaseService.getHideout().areas
|
||||
.find((area) => area.type === HideoutAreas.PLACE_OF_FAME);
|
||||
|
||||
// Get SkillGroupLevelingBoost object
|
||||
const combatBoostBonusDb = fameAreaDb.stages[fameAreaProfile.level].bonuses.find(
|
||||
|
@ -15,8 +15,8 @@ import { IInRaidConfig } from "@spt/models/spt/config/IInRaidConfig";
|
||||
import { ILostOnDeathConfig } from "@spt/models/spt/config/ILostOnDeathConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { SaveServer } from "@spt/servers/SaveServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
import { ProfileFixerService } from "@spt/services/ProfileFixerService";
|
||||
import { ICloner } from "@spt/utils/cloners/ICloner";
|
||||
@ -35,7 +35,7 @@ export class InRaidHelper
|
||||
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
||||
@inject("SaveServer") protected saveServer: SaveServer,
|
||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("InventoryHelper") protected inventoryHelper: InventoryHelper,
|
||||
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
|
||||
@inject("QuestHelper") protected questHelper: QuestHelper,
|
||||
@ -453,17 +453,17 @@ export class InRaidHelper
|
||||
*/
|
||||
public removeSpawnedInSessionPropertyFromItems(postRaidProfile: IPostRaidPmcData): IPostRaidPmcData
|
||||
{
|
||||
const dbItems = this.databaseServer.getTables().templates!.items;
|
||||
const itemsToRemovePropertyFrom = postRaidProfile.Inventory.items.filter((x) =>
|
||||
const dbItems = this.databaseService.getItems();
|
||||
const itemsToRemovePropertyFrom = postRaidProfile.Inventory.items.filter((item) =>
|
||||
{
|
||||
// Has upd object + upd.SpawnedInSession property + not a quest item
|
||||
return (
|
||||
"upd" in x
|
||||
&& "SpawnedInSession" in x.upd
|
||||
&& !dbItems[x._tpl]._props.QuestItem
|
||||
"upd" in item
|
||||
&& "SpawnedInSession" in item.upd
|
||||
&& !dbItems[item._tpl]._props.QuestItem
|
||||
&& !(
|
||||
this.inRaidConfig.keepFiRSecureContainerOnDeath
|
||||
&& this.itemHelper.itemIsInsideContainer(x, "SecuredContainer", postRaidProfile.Inventory.items)
|
||||
&& this.itemHelper.itemIsInsideContainer(item, "SecuredContainer", postRaidProfile.Inventory.items)
|
||||
)
|
||||
);
|
||||
});
|
||||
|
@ -8,7 +8,7 @@ import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
|
||||
import { BaseClasses } from "@spt/models/enums/BaseClasses";
|
||||
import { EquipmentSlots } from "@spt/models/enums/EquipmentSlots";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { ItemBaseClassService } from "@spt/services/ItemBaseClassService";
|
||||
import { ItemFilterService } from "@spt/services/ItemFilterService";
|
||||
import { LocaleService } from "@spt/services/LocaleService";
|
||||
@ -41,7 +41,7 @@ export class ItemHelper
|
||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||
@inject("ObjectId") protected objectId: ObjectId,
|
||||
@inject("MathUtil") protected mathUtil: MathUtil,
|
||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("HandbookHelper") protected handbookHelper: HandbookHelper,
|
||||
@inject("ItemBaseClassService") protected itemBaseClassService: ItemBaseClassService,
|
||||
@inject("ItemFilterService") protected itemFilterService: ItemFilterService,
|
||||
@ -398,7 +398,7 @@ export class ItemHelper
|
||||
*/
|
||||
public getDynamicItemPrice(tpl: string): number
|
||||
{
|
||||
const dynamicPrice = this.databaseServer.getTables().templates!.prices[tpl];
|
||||
const dynamicPrice = this.databaseService.getPrices()[tpl];
|
||||
if (dynamicPrice)
|
||||
{
|
||||
return dynamicPrice;
|
||||
@ -432,7 +432,7 @@ export class ItemHelper
|
||||
*/
|
||||
public getItems(): ITemplateItem[]
|
||||
{
|
||||
return this.cloner.clone(Object.values(this.databaseServer.getTables().templates!.items));
|
||||
return this.cloner.clone(Object.values(this.databaseService.getItems()));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -443,9 +443,9 @@ export class ItemHelper
|
||||
public getItem(tpl: string): [boolean, ITemplateItem]
|
||||
{
|
||||
// -> Gets item from <input: _tpl>
|
||||
if (tpl in this.databaseServer.getTables().templates!.items)
|
||||
if (tpl in this.databaseService.getItems())
|
||||
{
|
||||
return [true, this.databaseServer.getTables().templates!.items[tpl]];
|
||||
return [true, this.databaseService.getItems()[tpl]];
|
||||
}
|
||||
|
||||
return [false, undefined];
|
||||
@ -709,7 +709,7 @@ export class ItemHelper
|
||||
*/
|
||||
public isItemTplStackable(tpl: string): boolean
|
||||
{
|
||||
const item = this.databaseServer.getTables().templates!.items[tpl];
|
||||
const item = this.databaseService.getItems()[tpl];
|
||||
if (!item)
|
||||
{
|
||||
return undefined;
|
||||
@ -1563,11 +1563,16 @@ export class ItemHelper
|
||||
return this.localeService.getLocaleDb()[`${itemTpl} Name`];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all item tpls with a desired base type
|
||||
* @param desiredBaseType Item base type wanted
|
||||
* @returns Array of tpls
|
||||
*/
|
||||
public getItemTplsOfBaseType(desiredBaseType: string): string[]
|
||||
{
|
||||
return Object.values(this.databaseServer.getTables().templates!.items)
|
||||
.filter((x) => x._parent === desiredBaseType)
|
||||
.map((x) => x._id);
|
||||
return Object.values(this.databaseService.getItems())
|
||||
.filter((item) => item._parent === desiredBaseType)
|
||||
.map((item) => item._id);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -11,7 +11,7 @@ import { Money } from "@spt/models/enums/Money";
|
||||
import { IRagfairConfig } from "@spt/models/spt/config/IRagfairConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { RagfairLinkedItemService } from "@spt/services/RagfairLinkedItemService";
|
||||
import { ICloner } from "@spt/utils/cloners/ICloner";
|
||||
|
||||
@ -23,7 +23,7 @@ export class RagfairHelper
|
||||
constructor(
|
||||
@inject("PrimaryLogger") protected logger: ILogger,
|
||||
@inject("TraderAssortHelper") protected traderAssortHelper: TraderAssortHelper,
|
||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("HandbookHelper") protected handbookHelper: HandbookHelper,
|
||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||
@inject("RagfairLinkedItemService") protected ragfairLinkedItemService: RagfairLinkedItemService,
|
||||
@ -96,7 +96,7 @@ export class RagfairHelper
|
||||
{
|
||||
const result: Record<string, ITraderAssort> = {};
|
||||
|
||||
for (const traderID in this.databaseServer.getTables().traders)
|
||||
for (const traderID in this.databaseService.getTraders())
|
||||
{
|
||||
if (this.ragfairConfig.traders[traderID])
|
||||
{
|
||||
|
@ -4,7 +4,7 @@ import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
|
||||
import { IRagfairConfig } from "@spt/models/spt/config/IRagfairConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { RandomUtil } from "@spt/utils/RandomUtil";
|
||||
import { TimeUtil } from "@spt/utils/TimeUtil";
|
||||
|
||||
@ -17,7 +17,7 @@ export class RagfairSellHelper
|
||||
@inject("PrimaryLogger") protected logger: ILogger,
|
||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("ConfigServer") protected configServer: ConfigServer,
|
||||
)
|
||||
{
|
||||
@ -75,7 +75,7 @@ export class RagfairSellHelper
|
||||
const endTime
|
||||
= startTime
|
||||
+ this.timeUtil.getHoursAsSeconds(
|
||||
this.databaseServer.getTables().globals!.config.RagFair.offerDurationTimeInHour,
|
||||
this.databaseService.getGlobals().config.RagFair.offerDurationTimeInHour,
|
||||
);
|
||||
|
||||
let sellTime = startTime;
|
||||
|
@ -19,7 +19,7 @@ import {
|
||||
} from "@spt/models/spt/fence/IFenceAssortGenerationValues";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
import { ICloner } from "@spt/utils/cloners/ICloner";
|
||||
import { RandomUtil } from "@spt/utils/RandomUtil";
|
||||
@ -62,7 +62,7 @@ export class FenceService
|
||||
@inject("PrimaryLogger") protected logger: ILogger,
|
||||
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
@inject("HandbookHelper") protected handbookHelper: HandbookHelper,
|
||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||
@inject("PresetHelper") protected presetHelper: PresetHelper,
|
||||
@ -694,7 +694,7 @@ export class FenceService
|
||||
{
|
||||
const result: ICreateFenceAssortsResult = { sptItems: [], barter_scheme: {}, loyal_level_items: {} };
|
||||
|
||||
const baseFenceAssortClone = this.cloner.clone(this.databaseServer.getTables().traders![Traders.FENCE].assort!);
|
||||
const baseFenceAssortClone = this.cloner.clone(this.databaseService.getTrader(Traders.FENCE).assort);
|
||||
const itemTypeLimitCounts = this.initItemLimitCounter(this.traderConfig.fence.itemTypeLimits);
|
||||
|
||||
if (itemCounts.item > 0)
|
||||
@ -1498,7 +1498,7 @@ export class FenceService
|
||||
*/
|
||||
public getFenceInfo(pmcData: IPmcData): IFenceLevel
|
||||
{
|
||||
const fenceSettings = this.databaseServer.getTables().globals!.config.FenceSettings;
|
||||
const fenceSettings = this.databaseService.getGlobals().config.FenceSettings;
|
||||
const pmcFenceInfo = pmcData.TradersInfo[fenceSettings.FenceId];
|
||||
|
||||
if (!pmcFenceInfo)
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { inject, injectable } from "tsyringe";
|
||||
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
|
||||
/**
|
||||
@ -17,7 +17,7 @@ export class ItemBaseClassService
|
||||
constructor(
|
||||
@inject("PrimaryLogger") protected logger: ILogger,
|
||||
@inject("LocalisationService") protected localisationService: LocalisationService,
|
||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
||||
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||
)
|
||||
{}
|
||||
|
||||
@ -30,7 +30,7 @@ export class ItemBaseClassService
|
||||
// Clear existing cache
|
||||
this.itemBaseClassesCache = {};
|
||||
|
||||
this.items = this.databaseServer.getTables().templates!.items;
|
||||
this.items = this.databaseService.getItems();
|
||||
if (!this.items)
|
||||
{
|
||||
this.logger.warning(this.localisationService.getText("baseclass-missing_db_no_cache"));
|
||||
|
@ -277,9 +277,9 @@ describe("ItemHelper", () =>
|
||||
|
||||
describe("getItems", () =>
|
||||
{
|
||||
it("should call databaseServer.getTables() and jsonUtil.clone() methods", () =>
|
||||
it("should call databaseService.getItems() and jsonUtil.clone() methods", () =>
|
||||
{
|
||||
const databaseServerGetTablesSpy = vi.spyOn((itemHelper as any).databaseServer, "getTables");
|
||||
const databaseServerGetTablesSpy = vi.spyOn((itemHelper as any).databaseService, "getItems");
|
||||
const clonerSpy = vi.spyOn((itemHelper as any).cloner, "clone");
|
||||
|
||||
itemHelper.getItems();
|
||||
|
Loading…
x
Reference in New Issue
Block a user