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:
parent
2169fd3210
commit
b8ee834165
@ -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
|
||||
|
@ -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
|
||||
|
@ -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[]
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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))
|
||||
{
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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,
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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,
|
||||
);
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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])
|
||||
|
@ -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) },
|
||||
};
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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];
|
||||
|
@ -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,
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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])
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user