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

Replaced uses of DatabaseServer with DatabaseService

This commit is contained in:
Dev 2024-05-29 15:15:45 +01:00
parent 2169fd3210
commit b8ee834165
25 changed files with 168 additions and 162 deletions

View File

@ -514,7 +514,7 @@ export class BotEquipmentModGenerator
// However, the recursion doesn't go over the slots of the parent mod but over the modPool which is given by the bot config
// where we decided to keep cartridges instead of camoras. And since a CylinderMagazine only has one cartridge entry and
// this entry is not to be filled, we need a special handling for the CylinderMagazine
const modParentItem = this.databaseService.getItems()[modToAddTemplate._parent];
const modParentItem = this.itemHelper.getItem(modToAddTemplate._parent)[1];
if (this.botWeaponGeneratorHelper.magazineIsCylinderRelated(modParentItem._name))
{
// We don't have child mods, we need to create the camoras for the magazines instead

View File

@ -10,7 +10,7 @@ import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest"
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
import { BaseClasses } from "@spt/models/enums/BaseClasses";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { DatabaseServer } from "@spt/servers/DatabaseServer";
import { DatabaseService } from "@spt/services/DatabaseService";
import { ItemFilterService } from "@spt/services/ItemFilterService";
import { LocaleService } from "@spt/services/LocaleService";
import { MailSendService } from "@spt/services/MailSendService";
@ -46,7 +46,7 @@ export class GiveSptCommand 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,
@inject("ItemFilterService") protected itemFilterService: ItemFilterService,
@inject("PrimaryCloner") protected cloner: ICloner,
)
@ -147,8 +147,8 @@ export class GiveSptCommand implements ISptCommand
}
const localizedGlobal
= this.databaseServer.getTables().locales!.global[locale]
?? this.databaseServer.getTables().locales!.global.en;
= this.databaseService.getLocales().global[locale]
?? this.databaseService.getLocales().global.en;
const closestItemsMatchedByName = this.itemHelper
.getItems()
@ -191,8 +191,8 @@ export class GiveSptCommand implements ISptCommand
}
}
const localizedGlobal = this.databaseServer.getTables().locales!.global[locale]
?? this.databaseServer.getTables().locales!.global.en;
const localizedGlobal = this.databaseService.getLocales().global[locale]
?? this.databaseService.getLocales().global.en;
// If item is an item name, we need to search using that item name and the locale which one we want otherwise
// item is just the tplId.
const tplId = isItemName

View File

@ -1,7 +1,7 @@
import { inject, injectable } from "tsyringe";
import { IPreset } from "@spt/models/eft/common/IGlobals";
import { BaseClasses } from "@spt/models/enums/BaseClasses";
import { DatabaseServer } from "@spt/servers/DatabaseServer";
import { DatabaseService } from "@spt/services/DatabaseService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { ItemHelper } from "./ItemHelper";
@ -13,7 +13,7 @@ export class PresetHelper
protected defaultWeaponPresets: Record<string, IPreset>;
constructor(
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("ItemHelper") protected itemHelper: ItemHelper,
@inject("PrimaryCloner") protected cloner: ICloner,
)
@ -44,7 +44,7 @@ export class PresetHelper
{
if (!this.defaultWeaponPresets)
{
this.defaultWeaponPresets = Object.values(this.databaseServer.getTables().globals!.ItemPresets)
this.defaultWeaponPresets = Object.values(this.databaseService.getGlobals().ItemPresets)
.filter(
(preset) =>
preset._encyclopedia !== undefined
@ -68,7 +68,7 @@ export class PresetHelper
{
if (!this.defaultEquipmentPresets)
{
this.defaultEquipmentPresets = Object.values(this.databaseServer.getTables().globals!.ItemPresets)
this.defaultEquipmentPresets = Object.values(this.databaseService.getGlobals().ItemPresets)
.filter(
(preset) =>
preset._encyclopedia !== undefined
@ -86,7 +86,7 @@ export class PresetHelper
public isPreset(id: string): boolean
{
return id in this.databaseServer.getTables().globals!.ItemPresets;
return id in this.databaseService.getGlobals().ItemPresets;
}
/**
@ -107,12 +107,12 @@ export class PresetHelper
public getPreset(id: string): IPreset
{
return this.cloner.clone(this.databaseServer.getTables().globals!.ItemPresets[id]);
return this.cloner.clone(this.databaseService.getGlobals().ItemPresets[id]);
}
public getAllPresets(): IPreset[]
{
return this.cloner.clone(Object.values(this.databaseServer.getTables().globals!.ItemPresets));
return this.cloner.clone(Object.values(this.databaseService.getGlobals().ItemPresets));
}
public getPresets(templateId: string): IPreset[]

View File

@ -11,8 +11,8 @@ import { SkillTypes } from "@spt/models/enums/SkillTypes";
import { IInventoryConfig } from "@spt/models/spt/config/IInventoryConfig";
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 { ProfileSnapshotService } from "@spt/services/ProfileSnapshotService";
import { ICloner } from "@spt/utils/cloners/ICloner";
@ -31,7 +31,7 @@ export class ProfileHelper
@inject("Watermark") protected watermark: Watermark,
@inject("TimeUtil") protected timeUtil: TimeUtil,
@inject("SaveServer") protected saveServer: SaveServer,
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("ItemHelper") protected itemHelper: ItemHelper,
@inject("ProfileSnapshotService") protected profileSnapshotService: ProfileSnapshotService,
@inject("LocalisationService") protected localisationService: LocalisationService,
@ -218,7 +218,7 @@ export class ProfileHelper
public getExperience(level: number): number
{
let playerLevel = level;
const expTable = this.databaseServer.getTables().globals!.config.exp.level.exp_table;
const expTable = this.databaseService.getGlobals().config.exp.level.exp_table;
let exp = 0;
if (playerLevel >= expTable.length)
@ -241,7 +241,7 @@ export class ProfileHelper
*/
public getMaxLevel(): number
{
return this.databaseServer.getTables().globals!.config.exp.level.exp_table.length - 1;
return this.databaseService.getGlobals().config.exp.level.exp_table.length - 1;
}
public getDefaultSptDataObject(): any
@ -482,8 +482,7 @@ export class ProfileHelper
if (useSkillProgressRateMultipler)
{
const globals = this.databaseServer.getTables().globals!;
const skillProgressRate = globals.config.SkillsSettings.SkillProgressRate;
const skillProgressRate = this.databaseService.getGlobals().config.SkillsSettings.SkillProgressRate;
pointsToAddToSkill *= skillProgressRate;
}

View File

@ -23,7 +23,7 @@ import { IQuestConfig } from "@spt/models/spt/config/IQuestConfig";
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 { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
@ -41,9 +41,9 @@ export class QuestHelper
@inject("TimeUtil") protected timeUtil: TimeUtil,
@inject("HashUtil") protected hashUtil: HashUtil,
@inject("ItemHelper") protected itemHelper: ItemHelper,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("QuestConditionHelper") protected questConditionHelper: QuestConditionHelper,
@inject("EventOutputHolder") protected eventOutputHolder: EventOutputHolder,
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("LocaleService") protected localeService: LocaleService,
@inject("RagfairServerHelper") protected ragfairServerHelper: RagfairServerHelper,
@inject("DialogueHelper") protected dialogueHelper: DialogueHelper,
@ -770,7 +770,7 @@ export class QuestHelper
*/
public getQuestsFromDb(): IQuest[]
{
return Object.values(this.databaseServer.getTables().templates!.quests);
return Object.values(this.databaseService.getQuests());
}
/**
@ -781,15 +781,14 @@ export class QuestHelper
*/
public getQuestFromDb(questId: string, pmcData: IPmcData): IQuest
{
let quest = this.databaseServer.getTables().templates!.quests[questId];
// May be a repeatable quest
let quest = this.databaseService.getQuests()[questId];
if (!quest)
{
// Check daily/weekly objects
for (const repeatableType of pmcData.RepeatableQuests)
{
quest = <IQuest>(<unknown>repeatableType.activeQuests.find((x) => x._id === questId));
quest = <IQuest>(<unknown>repeatableType.activeQuests.find((repeatable) => repeatable._id === questId));
if (quest)
{
break;
@ -1001,12 +1000,12 @@ export class QuestHelper
): void
{
// Get hideout crafts and find those that match by areatype/required level/end product tpl - hope for just one match
const hideoutProductions = this.databaseServer.getTables().hideout!.production;
const hideoutProductions = this.databaseService.getHideout().production;
const matchingProductions = hideoutProductions.filter(
(x) =>
x.areaType === Number.parseInt(craftUnlockReward.traderId)
&& x.requirements.some((x) => x.requiredLevel === craftUnlockReward.loyaltyLevel)
&& x.endProduct === craftUnlockReward.items[0]._tpl,
(prod) =>
prod.areaType === Number.parseInt(craftUnlockReward.traderId)
&& prod.requirements.some((x) => x.requiredLevel === craftUnlockReward.loyaltyLevel)
&& prod.endProduct === craftUnlockReward.items[0]._tpl,
);
// More/less than 1 match, above filtering wasn't strict enough
@ -1099,7 +1098,7 @@ export class QuestHelper
public addAllQuestsToProfile(pmcProfile: IPmcData, statuses: QuestStatus[]): void
{
// Iterate over all quests in db
const quests = this.databaseServer.getTables().templates!.quests;
const quests = this.databaseService.getQuests();
for (const questIdKey in quests)
{
// Quest from db matches quests in profile, skip

View File

@ -25,8 +25,8 @@ import { IRagfairConfig } from "@spt/models/spt/config/IRagfairConfig";
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 { SaveServer } from "@spt/servers/SaveServer";
import { DatabaseService } from "@spt/services/DatabaseService";
import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
@ -48,7 +48,7 @@ export class RagfairOfferHelper
@inject("TimeUtil") protected timeUtil: TimeUtil,
@inject("HashUtil") protected hashUtil: HashUtil,
@inject("EventOutputHolder") protected eventOutputHolder: EventOutputHolder,
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("TraderHelper") protected traderHelper: TraderHelper,
@inject("SaveServer") protected saveServer: SaveServer,
@inject("ItemHelper") protected itemHelper: ItemHelper,
@ -355,7 +355,7 @@ export class RagfairOfferHelper
*/
public increaseProfileRagfairRating(profile: ISptProfile, amountToIncrementBy: number): void
{
const ragfairConfig = this.databaseServer.getTables().globals!.config.RagFair;
const ragfairGlobalsConfig = this.databaseService.getGlobals().config.RagFair;
profile.characters.pmc.RagfairInfo.isRatingGrowing = true;
if (Number.isNaN(amountToIncrementBy))
@ -365,7 +365,9 @@ export class RagfairOfferHelper
return;
}
profile.characters.pmc.RagfairInfo.rating
+= (ragfairConfig.ratingIncreaseCount / ragfairConfig.ratingSumForIncrease) * amountToIncrementBy;
+= (ragfairGlobalsConfig.ratingIncreaseCount
/ ragfairGlobalsConfig.ratingSumForIncrease)
* amountToIncrementBy;
}
/**
@ -572,7 +574,7 @@ export class RagfairOfferHelper
const isTraderOffer = offer.user.memberType === MemberCategory.TRADER;
if (
pmcData.Info.Level < this.databaseServer.getTables().globals!.config.RagFair.minUserLevel
pmcData.Info.Level < this.databaseService.getGlobals().config.RagFair.minUserLevel
&& isDefaultUserOffer
)
{
@ -759,10 +761,10 @@ export class RagfairOfferHelper
return false;
}
// handle trader items to remove items that are not available to the user right now
// Handle trader items to remove items that are not available to the user right now
// required search for "lamp" shows 4 items, 3 of which are not available to a new player
// filter those out
if (offer.user.id in this.databaseServer.getTables().traders!)
if (offer.user.id in this.databaseService.getTraders())
{
if (!(offer.user.id in traderAssorts))
{

View File

@ -5,7 +5,7 @@ import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
import { IRepairConfig } from "@spt/models/spt/config/IRepairConfig";
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 { ICloner } from "@spt/utils/cloners/ICloner";
import { RandomUtil } from "@spt/utils/RandomUtil";
@ -17,7 +17,7 @@ export class RepairHelper
constructor(
@inject("PrimaryLogger") protected logger: ILogger,
@inject("RandomUtil") protected randomUtil: RandomUtil,
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("ConfigServer") protected configServer: ConfigServer,
@inject("PrimaryCloner") protected cloner: ICloner,
)
@ -120,7 +120,7 @@ export class RepairHelper
): number
{
// Degradation value is based on the armor material
const armorMaterialSettings = this.databaseServer.getTables().globals!.config.ArmorMaterials[armorMaterial];
const armorMaterialSettings = this.databaseService.getGlobals().config.ArmorMaterials[armorMaterial];
const minMultiplier = isRepairKit
? armorMaterialSettings.MinRepairKitDegradation

View File

@ -12,7 +12,7 @@ import { Traders } from "@spt/models/enums/Traders";
import { ITraderConfig } from "@spt/models/spt/config/ITraderConfig";
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 { FenceService } from "@spt/services/FenceService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { TraderAssortService } from "@spt/services/TraderAssortService";
@ -32,7 +32,7 @@ export class TraderAssortHelper
@inject("PrimaryLogger") protected logger: ILogger,
@inject("MathUtil") protected mathUtil: MathUtil,
@inject("TimeUtil") protected timeUtil: TimeUtil,
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
@inject("AssortHelper") protected assortHelper: AssortHelper,
@inject("PaymentHelper") protected paymentHelper: PaymentHelper,
@ -68,7 +68,7 @@ export class TraderAssortHelper
return this.getRagfairDataAsTraderAssort();
}
const traderClone = this.cloner.clone(this.databaseServer.getTables().traders![traderId]);
const traderClone = this.cloner.clone(this.databaseService.getTrader(traderId));
const fullProfile = this.profileHelper.getFullProfile(sessionId);
const pmcProfile = fullProfile.characters.pmc;
@ -193,9 +193,8 @@ export class TraderAssortHelper
*/
protected hydrateMergedQuestAssorts(): void
{
const traders = this.databaseServer.getTables().traders;
// Loop every trader
const traders = this.databaseService.getTraders();
for (const traderId in traders)
{
// Trader has quest assort data
@ -245,7 +244,7 @@ export class TraderAssortHelper
public traderAssortsHaveExpired(traderID: string): boolean
{
const time = this.timeUtil.getTimestamp();
const trader = this.databaseServer.getTables().traders![traderID];
const trader = this.databaseService.getTables().traders![traderID];
return trader.base.nextResupply <= time;
}

View File

@ -15,7 +15,7 @@ import { Traders } from "@spt/models/enums/Traders";
import { ITraderConfig } from "@spt/models/spt/config/ITraderConfig";
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 { FenceService } from "@spt/services/FenceService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { PlayerService } from "@spt/services/PlayerService";
@ -33,7 +33,7 @@ export class TraderHelper
constructor(
@inject("PrimaryLogger") protected logger: ILogger,
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
@inject("HandbookHelper") protected handbookHelper: HandbookHelper,
@inject("ItemHelper") protected itemHelper: ItemHelper,
@ -71,13 +71,13 @@ export class TraderHelper
this.lvlUp(traderID, pmcData);
}
const trader = this.databaseServer.getTables().traders?.[traderID]?.base;
if (!trader)
const traderBase = this.databaseService.getTrader(traderID).base;
if (!traderBase)
{
this.logger.error(this.localisationService.getText("trader-unable_to_find_trader_by_id", traderID));
}
return trader;
return traderBase;
}
/**
@ -89,7 +89,7 @@ export class TraderHelper
{
return traderId === Traders.FENCE
? this.fenceService.getRawFenceAssorts()
: this.databaseServer.getTables().traders![traderId].assort!;
: this.databaseService.getTrader(traderId).assort;
}
/**
@ -128,7 +128,9 @@ export class TraderHelper
*/
public resetTrader(sessionID: string, traderID: string): void
{
const db = this.databaseServer.getTables();
const profiles = this.databaseService.getProfiles();
const trader = this.databaseService.getTrader(traderID);
const fullProfile = this.profileHelper.getFullProfile(sessionID);
if (!fullProfile)
{
@ -137,7 +139,7 @@ export class TraderHelper
const pmcData = fullProfile.characters.pmc;
const rawProfileTemplate: ProfileTraderTemplate
= db.templates!.profiles[fullProfile.info.edition][pmcData.Info.Side.toLowerCase()]
= profiles[fullProfile.info.edition][pmcData.Info.Side.toLowerCase()]
.trader;
pmcData.TradersInfo[traderID] = {
@ -145,8 +147,8 @@ export class TraderHelper
loyaltyLevel: rawProfileTemplate.initialLoyaltyLevel[traderID] ?? 1,
salesSum: rawProfileTemplate.initialSalesSum,
standing: this.getStartingStanding(traderID, rawProfileTemplate),
nextResupply: db.traders![traderID].base.nextResupply,
unlocked: db.traders![traderID].base.unlockedByDefault,
nextResupply: trader.base.nextResupply,
unlocked: trader.base.unlockedByDefault,
};
// Check if trader should be locked by default
@ -158,10 +160,12 @@ export class TraderHelper
if (rawProfileTemplate.purchaseAllClothingByDefaultForTrader?.includes(traderID))
{
// Get traders clothing
const clothing = this.databaseServer.getTables().traders![traderID].suits!;
// Force suit ids into profile
this.addSuitsToProfile(fullProfile, clothing.map((x) => x.suiteId));
const clothing = this.databaseService.getTrader(traderID).suits;
if (clothing?.length > 0)
{
// Force suit ids into profile
this.addSuitsToProfile(fullProfile, clothing!.map((suit) => suit.suiteId));
}
}
if ((rawProfileTemplate.fleaBlockedDays ?? 0) > 0)
@ -283,7 +287,7 @@ export class TraderHelper
public validateTraderStandingsAndPlayerLevelForProfile(sessionId: string): void
{
const profile = this.profileHelper.getPmcProfile(sessionId);
const traders = Object.keys(this.databaseServer.getTables().traders!);
const traders = Object.keys(this.databaseService.getTraders());
for (const trader of traders)
{
this.lvlUp(trader, profile);
@ -298,7 +302,7 @@ export class TraderHelper
*/
public lvlUp(traderID: string, pmcData: IPmcData): void
{
const loyaltyLevels = this.databaseServer.getTables().traders![traderID].base.loyaltyLevels;
const loyaltyLevels = this.databaseService.getTrader(traderID).base.loyaltyLevels;
// Level up player
pmcData.Info.Level = this.playerService.calculateLevel(pmcData);
@ -375,7 +379,7 @@ export class TraderHelper
public getLoyaltyLevel(traderID: string, pmcData: IPmcData): LoyaltyLevel
{
const trader = this.databaseServer.getTables().traders![traderID].base;
const traderBase = this.databaseService.getTrader(traderID).base;
let loyaltyLevel = pmcData.TradersInfo[traderID].loyaltyLevel;
if (!loyaltyLevel || loyaltyLevel < 1)
@ -383,12 +387,12 @@ export class TraderHelper
loyaltyLevel = 1;
}
if (loyaltyLevel > trader.loyaltyLevels.length)
if (loyaltyLevel > traderBase.loyaltyLevels.length)
{
loyaltyLevel = trader.loyaltyLevels.length;
loyaltyLevel = traderBase.loyaltyLevels.length;
}
return trader.loyaltyLevels[loyaltyLevel - 1];
return traderBase.loyaltyLevels[loyaltyLevel - 1];
}
/**
@ -476,7 +480,7 @@ export class TraderHelper
}
// Get assorts for trader, skip trader if no assorts found
const traderAssorts = this.databaseServer.getTables().traders![Traders[traderName]].assort;
const traderAssorts = this.databaseService.getTrader(Traders[traderName]).assort;
if (!traderAssorts)
{
continue;
@ -528,7 +532,7 @@ export class TraderHelper
for (const traderName in Traders)
{
// Get trader and check buy category allows tpl
const traderBase = this.databaseServer.getTables().traders![Traders[traderName]]?.base;
const traderBase = this.databaseService.getTrader(Traders[traderName]).base;
if (traderBase && this.itemHelper.isOfBaseclasses(tpl, traderBase.items_buy.category))
{
// Get loyalty level details player has achieved with this trader

View File

@ -7,7 +7,7 @@ import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
import { IBotConfig } from "@spt/models/spt/config/IBotConfig";
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 { VFS } from "@spt/utils/VFS";
@ -25,7 +25,7 @@ export class BotEquipmentModPoolService
@inject("PrimaryLogger") protected logger: ILogger,
@inject("VFS") protected vfs: VFS,
@inject("ItemHelper") protected itemHelper: ItemHelper,
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("LocalisationService") protected localisationService: LocalisationService,
@inject("ConfigServer") protected configServer: ConfigServer,
)
@ -96,7 +96,7 @@ export class BotEquipmentModPoolService
pool[item._id][slot._name].push(itemToAdd);
// Check item added into array for slots, need to iterate over those
const subItemDetails = this.databaseServer.getTables().templates!.items[itemToAdd];
const subItemDetails = this.itemHelper.getItem(itemToAdd)[1];
const hasSubItemsToAdd = subItemDetails?._props?.Slots?.length ?? 0 > 0;
if (hasSubItemsToAdd && !pool[subItemDetails._id])
{
@ -185,8 +185,8 @@ export class BotEquipmentModPoolService
*/
protected generateWeaponPool(): void
{
const weapons = Object.values(this.databaseServer.getTables().templates!.items).filter(
(x) => x._type === "Item" && this.itemHelper.isOfBaseclass(x._id, BaseClasses.WEAPON),
const weapons = Object.values(this.databaseService.getItems()).filter(
(item) => item._type === "Item" && this.itemHelper.isOfBaseclass(item._id, BaseClasses.WEAPON),
);
this.generatePool(weapons, "weapon");
@ -199,10 +199,10 @@ export class BotEquipmentModPoolService
*/
protected generateGearPool(): void
{
const gear = Object.values(this.databaseServer.getTables().templates!.items).filter(
(x) =>
x._type === "Item"
&& this.itemHelper.isOfBaseclasses(x._id, [
const gear = Object.values(this.databaseService.getItems()).filter(
(item) =>
item._type === "Item"
&& this.itemHelper.isOfBaseclasses(item._id, [
BaseClasses.ARMORED_EQUIPMENT,
BaseClasses.VEST,
BaseClasses.ARMOR,

View File

@ -1,10 +1,10 @@
import { inject, injectable } from "tsyringe";
import { BossLocationSpawn, ILocationBase, Wave } from "@spt/models/eft/common/ILocationBase";
import { BossLocationSpawn, Wave } from "@spt/models/eft/common/ILocationBase";
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
import { ILocationConfig } from "@spt/models/spt/config/ILocationConfig";
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()
@ -15,7 +15,7 @@ export class CustomLocationWaveService
constructor(
@inject("PrimaryLogger") protected logger: ILogger,
@inject("RandomUtil") protected randomUtil: RandomUtil,
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("ConfigServer") protected configServer: ConfigServer,
)
{
@ -70,8 +70,8 @@ export class CustomLocationWaveService
for (const mapKey in bossWavesToApply)
{
const location: ILocationBase = this.databaseServer.getTables().locations![mapKey]?.base;
if (!location)
const locationBase = this.databaseService.getLocation(mapKey).base;
if (!locationBase)
{
this.logger.warning(`Unable to add custom boss wave to location: ${mapKey}, location not found`);
@ -80,12 +80,12 @@ export class CustomLocationWaveService
for (const bossWave of bossWavesToApply[mapKey])
{
if (location.BossLocationSpawn.find((x) => x.sptId === bossWave.sptId))
if (locationBase.BossLocationSpawn.find((x) => x.sptId === bossWave.sptId))
{
// Already exists, skip
continue;
}
location.BossLocationSpawn.push(bossWave);
locationBase.BossLocationSpawn.push(bossWave);
this.logger.debug(
`Added custom boss wave to ${mapKey} of type ${bossWave.BossName}, time: ${bossWave.Time}, chance: ${bossWave.BossChance}, zone: ${bossWave.BossZone}`,
);
@ -94,8 +94,8 @@ export class CustomLocationWaveService
for (const mapKey in normalWavesToApply)
{
const location: ILocationBase = this.databaseServer.getTables().locations![mapKey]?.base;
if (!location)
const locationBase = this.databaseService.getLocation(mapKey).base;
if (!locationBase)
{
this.logger.warning(`Unable to add custom wave to location: ${mapKey}, location not found`);
@ -104,14 +104,14 @@ export class CustomLocationWaveService
for (const normalWave of normalWavesToApply[mapKey])
{
if (location.waves.find((x) => x.sptId === normalWave.sptId))
if (locationBase.waves.find((x) => x.sptId === normalWave.sptId))
{
// Already exists, skip
continue;
}
normalWave.number = location.waves.length;
location.waves.push(normalWave);
normalWave.number = locationBase.waves.length;
locationBase.waves.push(normalWave);
}
}
}

View File

@ -17,8 +17,8 @@ import { ILostOnDeathConfig } from "@spt/models/spt/config/ILostOnDeathConfig";
import { IInsuranceEquipmentPkg } from "@spt/models/spt/services/IInsuranceEquipmentPkg";
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 { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
@ -36,7 +36,7 @@ export class InsuranceService
constructor(
@inject("PrimaryLogger") protected logger: ILogger,
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("SecureContainerHelper") protected secureContainerHelper: SecureContainerHelper,
@inject("RandomUtil") protected randomUtil: RandomUtil,
@inject("ItemHelper") protected itemHelper: ItemHelper,
@ -109,6 +109,8 @@ export class InsuranceService
// Get insurance items for each trader
for (const traderId in this.getInsurance(sessionID))
{
const globals = this.databaseService.getGlobals();
const traderBase = this.traderHelper.getTrader(traderId, sessionID);
if (!traderBase)
{
@ -118,10 +120,9 @@ export class InsuranceService
let insuranceReturnTimestamp = this.getInsuranceReturnTimestamp(pmcData, traderBase);
if (markOfTheUnheardOnPlayer)
{
insuranceReturnTimestamp *= this.databaseServer.getTables()
.globals!.config.Insurance.CoefOfHavingMarkOfUnknown;
insuranceReturnTimestamp *= globals.config.Insurance.CoefOfHavingMarkOfUnknown;
}
const dialogueTemplates = this.databaseServer.getTables().traders![traderId].dialogue;
const dialogueTemplates = this.databaseService.getTrader(traderId).dialogue;
if (!dialogueTemplates)
{
throw new Error(this.localisationService.getText("insurance-trader_lacks_dialogue_property", traderId));
@ -146,7 +147,7 @@ export class InsuranceService
this.randomUtil.getArrayValue(dialogueTemplates?.insuranceStart),
undefined,
this.timeUtil.getHoursAsSeconds(
this.databaseServer.getTables().globals!.config.Insurance.MaxStorageTimeInHour,
globals.config.Insurance.MaxStorageTimeInHour,
),
systemData,
);

View File

@ -134,20 +134,21 @@ export class LocaleService
return "en";
}
const locales = this.databaseServer.getTables().locales!;
const baseNameCode = platformLocale.baseName?.toLocaleLowerCase();
if (baseNameCode && this.databaseServer.getTables().locales!.global[baseNameCode])
if (baseNameCode && locales.global[baseNameCode])
{
return baseNameCode;
}
const languageCode = platformLocale.language?.toLowerCase();
if (languageCode && this.databaseServer.getTables().locales!.global[languageCode])
if (languageCode && locales.global[languageCode])
{
return languageCode;
}
const regionCode = platformLocale.region?.toLocaleLowerCase();
if (regionCode && this.databaseServer.getTables().locales!.global[regionCode])
if (regionCode && locales.global[regionCode])
{
return regionCode;
}

View File

@ -11,8 +11,8 @@ import { MessageType } from "@spt/models/enums/MessageType";
import { Traders } from "@spt/models/enums/Traders";
import { IProfileChangeEvent, ISendMessageDetails } from "@spt/models/spt/dialog/ISendMessageDetails";
import { ILogger } from "@spt/models/spt/utils/ILogger";
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 { HashUtil } from "@spt/utils/HashUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -27,7 +27,7 @@ export class MailSendService
@inject("HashUtil") protected hashUtil: HashUtil,
@inject("TimeUtil") protected timeUtil: TimeUtil,
@inject("SaveServer") protected saveServer: SaveServer,
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("NotifierHelper") protected notifierHelper: NotifierHelper,
@inject("DialogueHelper") protected dialogueHelper: DialogueHelper,
@inject("NotificationSendHelper") protected notificationSendHelper: NotificationSendHelper,
@ -416,7 +416,7 @@ export class MailSendService
messageDetails: ISendMessageDetails,
): MessageItems
{
const db = this.databaseServer.getTables().templates!.items;
const items = this.databaseService.getItems();
let itemsToSendToPlayer: MessageItems = {};
if ((messageDetails.items?.length ?? 0) > 0)
@ -447,7 +447,7 @@ export class MailSendService
for (const reward of messageDetails.items)
{
// Ensure item exists in items db
const itemTemplate = db[reward._tpl];
const itemTemplate = items[reward._tpl];
if (!itemTemplate)
{
// Can happen when modded items are insured + mod is removed

View File

@ -4,7 +4,7 @@ import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
import { ILocationConfig } from "@spt/models/spt/config/ILocationConfig";
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";
@ -17,7 +17,7 @@ export class OpenZoneService
constructor(
@inject("PrimaryLogger") protected logger: ILogger,
@inject("RandomUtil") protected randomUtil: RandomUtil,
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("LocalisationService") protected localisationService: LocalisationService,
@inject("ConfigServer") protected configServer: ConfigServer,
)
@ -49,7 +49,7 @@ export class OpenZoneService
*/
public applyZoneChangesToAllMaps(): void
{
const dbLocations = this.databaseServer.getTables().locations!;
const dbLocations = this.databaseService.getLocations();
for (const mapKey in this.locationConfig.openZones)
{
if (!dbLocations[mapKey])

View File

@ -12,7 +12,7 @@ import { IProcessBuyTradeRequestData } from "@spt/models/eft/trade/IProcessBuyTr
import { IProcessSellTradeRequestData } from "@spt/models/eft/trade/IProcessSellTradeRequestData";
import { BackendErrorCodes } from "@spt/models/enums/BackendErrorCodes";
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";
import { HashUtil } from "@spt/utils/HashUtil";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
@ -24,7 +24,7 @@ export class PaymentService
@inject("PrimaryLogger") protected logger: ILogger,
@inject("HashUtil") protected hashUtil: HashUtil,
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("HandbookHelper") protected handbookHelper: HandbookHelper,
@inject("TraderHelper") protected traderHelper: TraderHelper,
@inject("ItemHelper") protected itemHelper: ItemHelper,
@ -180,15 +180,15 @@ export class PaymentService
): void
{
const trader = this.traderHelper.getTrader(request.tid, sessionID);
const currency = this.paymentHelper.getCurrency(trader.currency);
let calcAmount = this.handbookHelper.fromRUB(this.handbookHelper.inRUB(amountToSend, currency), currency);
const currencyMaxStackSize = this.databaseServer.getTables().templates!.items[currency]._props.StackMaxSize!;
const currencyTpl = this.paymentHelper.getCurrency(trader.currency);
let calcAmount = this.handbookHelper.fromRUB(this.handbookHelper.inRUB(amountToSend, currencyTpl), currencyTpl);
const currencyMaxStackSize = this.itemHelper.getItem(currencyTpl)[1]._props.StackMaxSize!;
let skipSendingMoneyToStash = false;
for (const item of pmcData.Inventory.items)
{
// Item is not currency
if (item._tpl !== currency)
if (item._tpl !== currencyTpl)
{
continue;
}
@ -227,7 +227,7 @@ export class PaymentService
// Create single currency item with all currency on it
const rootCurrencyReward = {
_id: this.hashUtil.generate(),
_tpl: currency,
_tpl: currencyTpl,
upd: { StackObjectsCount: Math.round(calcAmount) },
};

View File

@ -1,7 +1,7 @@
import { inject, injectable } from "tsyringe";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
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";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -12,7 +12,7 @@ export class PlayerService
@inject("PrimaryLogger") protected logger: ILogger,
@inject("TimeUtil") protected timeUtil: TimeUtil,
@inject("LocalisationService") protected localisationService: LocalisationService,
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
)
{}
@ -25,7 +25,7 @@ export class PlayerService
{
let accExp = 0;
for (const [level, { exp }] of this.databaseServer.getTables().globals!.config.exp.level.exp_table.entries())
for (const [level, { exp }] of this.databaseService.getGlobals().config.exp.level.exp_table.entries())
{
accExp += exp;

View File

@ -2,7 +2,7 @@ import { inject, injectable } from "tsyringe";
import { ItemHelper } from "@spt/helpers/ItemHelper";
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
import { BaseClasses } from "@spt/models/enums/BaseClasses";
import { DatabaseServer } from "@spt/servers/DatabaseServer";
import { DatabaseService } from "@spt/services/DatabaseService";
@injectable()
export class RagfairLinkedItemService
@ -10,7 +10,7 @@ export class RagfairLinkedItemService
protected linkedItemsCache: Record<string, Set<string>> = {};
constructor(
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("ItemHelper") protected itemHelper: ItemHelper,
)
{}
@ -55,7 +55,7 @@ export class RagfairLinkedItemService
return linkedItems[id];
};
for (const item of Object.values(this.databaseServer.getTables().templates!.items))
for (const item of Object.values(this.databaseService.getItems()))
{
const itemLinkedSet = getLinkedItems(item._id);

View File

@ -8,8 +8,8 @@ import { IRagfairConfig } from "@spt/models/spt/config/IRagfairConfig";
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 { SaveServer } from "@spt/servers/SaveServer";
import { DatabaseService } from "@spt/services/DatabaseService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { RagfairOfferHolder } from "@spt/utils/RagfairOfferHolder";
@ -28,7 +28,7 @@ export class RagfairOfferService
constructor(
@inject("PrimaryLogger") protected logger: ILogger,
@inject("TimeUtil") protected timeUtil: TimeUtil,
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("SaveServer") protected saveServer: SaveServer,
@inject("RagfairServerHelper") protected ragfairServerHelper: RagfairServerHelper,
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
@ -168,7 +168,7 @@ export class RagfairOfferService
*/
public traderOffersNeedRefreshing(traderID: string): boolean
{
const trader = this.databaseServer.getTables().traders![traderID];
const trader = this.databaseService.getTrader(traderID);
if (!trader || !trader.base)
{
this.logger.error(this.localisationService.getText("ragfair-trader_missing_base_file", traderID));
@ -263,7 +263,7 @@ export class RagfairOfferService
}
// Reduce player ragfair rep
profile.RagfairInfo.rating -= this.databaseServer.getTables().globals!.config.RagFair.ratingDecreaseCount;
profile.RagfairInfo.rating -= this.databaseService.getGlobals().config.RagFair.ratingDecreaseCount;
profile.RagfairInfo.isRatingGrowing = false;
const firstOfferItem = playerOffer.items[0];

View File

@ -16,7 +16,7 @@ import { IRagfairConfig, IUnreasonableModPrices } from "@spt/models/spt/config/I
import { IRagfairServerPrices } from "@spt/models/spt/ragfair/IRagfairServerPrices";
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";
@ -32,7 +32,7 @@ export class RagfairPriceService implements OnLoad
constructor(
@inject("HandbookHelper") protected handbookHelper: HandbookHelper,
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("PrimaryLogger") protected logger: ILogger,
@inject("ItemHelper") protected itemHelper: ItemHelper,
@inject("PresetHelper") protected presetHelper: PresetHelper,
@ -64,7 +64,7 @@ export class RagfairPriceService implements OnLoad
*/
public refreshStaticPrices(): void
{
for (const item of Object.values(this.databaseServer.getTables().templates!.items).filter(
for (const item of Object.values(this.databaseService.getItems()).filter(
(x) => x._type === "Item",
))
{
@ -77,7 +77,7 @@ export class RagfairPriceService implements OnLoad
*/
public refreshDynamicPrices(): void
{
const pricesTable = this.databaseServer.getTables().templates!.prices;
const pricesTable = this.databaseService.getPrices();
this.prices.dynamic = { ...this.prices.dynamic, ...pricesTable };
}
@ -138,7 +138,7 @@ export class RagfairPriceService implements OnLoad
// If the price doesn't exist in the cache yet, try to find it
if (!this.prices.dynamic[itemTpl])
{
this.prices.dynamic[itemTpl] = this.databaseServer.getTables().templates!.prices[itemTpl];
this.prices.dynamic[itemTpl] = this.databaseService.getPrices()[itemTpl];
}
return this.prices.dynamic[itemTpl];
@ -328,7 +328,7 @@ export class RagfairPriceService implements OnLoad
if (unreasonableModifier.enabled)
{
price = this.adjustUnreasonablePrice(
this.databaseServer.getTables().templates!.handbook.Items,
this.databaseService.getHandbook().Items,
unreasonableModifier,
itemTemplateId,
price,

View File

@ -6,7 +6,7 @@ import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
import { IStorePlayerOfferTaxAmountRequestData } from "@spt/models/eft/ragfair/IStorePlayerOfferTaxAmountRequestData";
import { BonusType } from "@spt/models/enums/BonusType";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { DatabaseServer } from "@spt/servers/DatabaseServer";
import { DatabaseService } from "@spt/services/DatabaseService";
import { RagfairPriceService } from "@spt/services/RagfairPriceService";
@injectable()
@ -16,7 +16,7 @@ export class RagfairTaxService
constructor(
@inject("PrimaryLogger") protected logger: ILogger,
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("RagfairPriceService") protected ragfairPriceService: RagfairPriceService,
@inject("ItemHelper") protected itemHelper: ItemHelper,
)
@ -65,13 +65,14 @@ export class RagfairTaxService
return 0;
}
const globals = this.databaseService.getGlobals();
const itemTemplate = this.itemHelper.getItem(item._tpl)[1];
const itemWorth = this.calculateItemWorth(item, itemTemplate, offerItemCount, pmcData);
const requirementsPrice = requirementsValue * (sellInOnePiece ? 1 : offerItemCount);
const itemTaxMult = this.databaseServer.getTables().globals!.config.RagFair.communityItemTax / 100.0;
const requirementTaxMult
= this.databaseServer.getTables().globals!.config.RagFair.communityRequirementTax / 100.0;
const itemTaxMult = globals.config.RagFair.communityItemTax / 100.0;
const requirementTaxMult = globals!.config.RagFair.communityRequirementTax / 100.0;
let itemPriceMult = Math.log10(itemWorth / requirementsPrice);
let requirementPriceMult = Math.log10(requirementsPrice / itemWorth);

View File

@ -14,7 +14,7 @@ import {
import { IRaidChanges } from "@spt/models/spt/location/IRaidChanges";
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()
@ -24,7 +24,7 @@ export class RaidTimeAdjustmentService
constructor(
@inject("PrimaryLogger") protected logger: ILogger,
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("RandomUtil") protected randomUtil: RandomUtil,
@inject("WeightedRandomHelper") protected weightedRandomHelper: WeightedRandomHelper,
@inject("ApplicationContext") protected applicationContext: ApplicationContext,
@ -105,9 +105,8 @@ export class RaidTimeAdjustmentService
*/
public getRaidAdjustments(sessionId: string, request: IGetRaidTimeRequest): IGetRaidTimeResponse
{
const db = this.databaseServer.getTables();
const mapBase: ILocationBase = db.locations![request.Location.toLowerCase()].base;
const globals = this.databaseService.getGlobals();
const mapBase: ILocationBase = this.databaseService.getLocation(request.Location.toLowerCase()).base;
const baseEscapeTimeMinutes = mapBase.EscapeTimeLimit;
// Prep result object to return
@ -115,7 +114,7 @@ export class RaidTimeAdjustmentService
RaidTimeMinutes: baseEscapeTimeMinutes,
ExitChanges: [],
NewSurviveTimeSeconds: undefined,
OriginalSurvivalTimeSeconds: db.globals!.config.exp.match_end.survived_seconds_requirement,
OriginalSurvivalTimeSeconds: globals.config.exp.match_end.survived_seconds_requirement,
};
// Pmc raid, send default

View File

@ -19,7 +19,7 @@ import { SkillTypes } from "@spt/models/enums/SkillTypes";
import { BonusSettings, IRepairConfig } from "@spt/models/spt/config/IRepairConfig";
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 { PaymentService } from "@spt/services/PaymentService";
import { RandomUtil } from "@spt/utils/RandomUtil";
@ -30,7 +30,7 @@ export class RepairService
protected repairConfig: IRepairConfig;
constructor(
@inject("PrimaryLogger") protected logger: ILogger,
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
@inject("RandomUtil") protected randomUtil: RandomUtil,
@inject("ItemHelper") protected itemHelper: ItemHelper,
@ -75,7 +75,8 @@ export class RepairService
const repairQualityMultiplier = Number(traderRepairDetails.quality);
const repairRate = priceCoef <= 0 ? 1 : priceCoef / 100 + 1;
const itemToRepairDetails = this.databaseServer.getTables().templates!.items[itemToRepair._tpl];
const items = this.databaseService.getItems();
const itemToRepairDetails = items[itemToRepair._tpl];
const repairItemIsArmor = !!itemToRepairDetails._props.ArmorMaterial;
this.repairHelper.updateItemDurability(
@ -89,7 +90,7 @@ export class RepairService
);
// get repair price
const itemRepairCost = this.databaseServer.getTables().templates!.items[itemToRepair._tpl]._props.RepairCost;
const itemRepairCost = items[itemToRepair._tpl]._props.RepairCost;
if (!itemRepairCost)
{
throw new Error(this.localisationService.getText("repair-unable_to_find_item_repair_cost", itemToRepair._tpl));
@ -301,7 +302,7 @@ export class RepairService
throw new Error(this.localisationService.getText("repair-item_not_found_unable_to_repair", itemToRepairId));
}
const itemsDb = this.databaseServer.getTables().templates!.items;
const itemsDb = this.databaseService.getItems();
const itemToRepairDetails = itemsDb[itemToRepair._tpl];
const repairItemIsArmor = !!itemToRepairDetails._props.ArmorMaterial;
const repairAmount = repairKits[0].count / this.getKitDivisor(itemToRepairDetails, repairItemIsArmor, pmcData);
@ -357,7 +358,7 @@ export class RepairService
*/
protected getKitDivisor(itemToRepairDetails: ITemplateItem, isArmor: boolean, pmcData: IPmcData): number
{
const globals = this.databaseServer.getTables().globals!;
const globals = this.databaseService.getGlobals();
const globalRepairSettings = globals.config.RepairSettings;
const intellectRepairPointsPerLevel = globals.config.SkillsSettings.Intellect.RepairPointsCostReduction;
@ -519,7 +520,7 @@ export class RepairService
*/
protected shouldBuffItem(repairDetails: RepairDetails, pmcData: IPmcData): boolean
{
const globals = this.databaseServer.getTables().globals!;
const globals = this.databaseService.getGlobals();
const hasTemplate = this.itemHelper.getItem(repairDetails.repairedItem._tpl);
if (!hasTemplate[0])

View File

@ -4,7 +4,7 @@ import { QuestStatus } from "@spt/models/enums/QuestStatus";
import { TraderServiceType } from "@spt/models/enums/TraderServiceType";
import { ITraderServiceModel } from "@spt/models/spt/services/ITraderServiceModel";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { DatabaseServer } from "@spt/servers/DatabaseServer";
import { DatabaseService } from "@spt/services/DatabaseService";
import { ICloner } from "@spt/utils/cloners/ICloner";
@injectable()
@ -13,7 +13,7 @@ export class TraderServicesService
constructor(
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
@inject("PrimaryLogger") protected logger: ILogger,
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("PrimaryCloner") protected cloner: ICloner,
)
{}
@ -21,7 +21,7 @@ export class TraderServicesService
public getTraderServices(sessionId: string, traderId: string): ITraderServiceModel[]
{
const pmcData = this.profileHelper.getPmcProfile(sessionId);
let traderServices = this.cloner.clone(this.databaseServer.getTables().traders![traderId]?.services);
let traderServices = this.cloner.clone(this.databaseService.getTrader(traderId).services);
if (!traderServices)
{
return [];
@ -47,7 +47,7 @@ export class TraderServicesService
{
for (const questId of service.requirements.completedQuests)
{
const quest = pmcData.Quests.find((x) => x.qid === questId);
const quest = pmcData.Quests.find((questStatus) => questStatus.qid === questId);
if (!quest || quest.status !== QuestStatus.Success)
{
servicesToDelete.push(service.serviceType);
@ -58,7 +58,7 @@ export class TraderServicesService
}
// Clear any unavailable services from the list
traderServices = traderServices.filter((x) => !servicesToDelete.includes(x.serviceType));
traderServices = traderServices.filter((service) => !servicesToDelete.includes(service.serviceType));
return traderServices;
}

View File

@ -20,7 +20,7 @@ export class CustomItemService
constructor(
@inject("PrimaryLogger") protected logger: ILogger,
@inject("HashUtil") protected hashUtil: HashUtil,
@inject("DatabaseService") protected databaseServer: DatabaseService,
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("ItemHelper") protected itemHelper: ItemHelper,
@inject("ItemBaseClassService") protected itemBaseClassService: ItemBaseClassService,
@inject("PrimaryCloner") protected cloner: ICloner,
@ -41,7 +41,7 @@ export class CustomItemService
public createItemFromClone(newItemDetails: NewItemFromCloneDetails): CreateItemResult
{
const result = new CreateItemResult();
const tables = this.databaseServer.getTables();
const tables = this.databaseService.getTables();
// Generate new id for item if none supplied
const newItemId = this.getOrGenerateIdForItem(newItemDetails.newId);
@ -98,7 +98,7 @@ export class CustomItemService
public createItem(newItemDetails: NewItemDetails): CreateItemResult
{
const result = new CreateItemResult();
const tables = this.databaseServer.getTables();
const tables = this.databaseService.getTables();
const newItem = newItemDetails.newItem;
@ -161,7 +161,7 @@ export class CustomItemService
*/
protected addToItemsDb(newItemId: string, itemToAdd: ITemplateItem): void
{
this.databaseServer.getItems()[newItemId] = itemToAdd;
this.databaseService.getItems()[newItemId] = itemToAdd;
}
/**
@ -172,7 +172,7 @@ export class CustomItemService
*/
protected addToHandbookDb(newItemId: string, parentId: string, priceRoubles: number): void
{
this.databaseServer.getTemplates().handbook.Items.push({ Id: newItemId, ParentId: parentId, Price: priceRoubles });
this.databaseService.getTemplates().handbook.Items.push({ Id: newItemId, ParentId: parentId, Price: priceRoubles });
}
/**
@ -188,7 +188,7 @@ export class CustomItemService
*/
protected addToLocaleDbs(localeDetails: Record<string, LocaleDetails>, newItemId: string): void
{
const languages = this.databaseServer.getLocales().languages;
const languages = this.databaseService.getLocales().languages;
for (const shortNameKey in languages)
{
// Get locale details passed in, if not provided by caller use first record in newItemDetails.locales
@ -199,7 +199,7 @@ export class CustomItemService
}
// Create new record in locale file
const globals = this.databaseServer.getLocales();
const globals = this.databaseService.getLocales();
globals.global[shortNameKey][`${newItemId} Name`] = newLocaleDetails.name;
globals.global[shortNameKey][`${newItemId} ShortName`] = newLocaleDetails.shortName;
globals.global[shortNameKey][`${newItemId} Description`] = newLocaleDetails.description;
@ -213,7 +213,7 @@ export class CustomItemService
*/
protected addToFleaPriceDb(newItemId: string, fleaPriceRoubles: number): void
{
this.databaseServer.getTemplates().prices[newItemId] = fleaPriceRoubles;
this.databaseService.getTemplates().prices[newItemId] = fleaPriceRoubles;
}
/**
@ -261,7 +261,7 @@ export class CustomItemService
}
// Get PMCs
const botTypes = this.databaseServer.getBots().types;
const botTypes = this.databaseService.getBots().types;
// Add weapon base+mods into bear/usec data
botTypes.usec.inventory.mods[weaponTpl] = baseWeaponModObject;