Added ability to configure traders via configs/traders.ts for v1.5.1
This commit is contained in:
parent
3d56c6119c
commit
8a0e32a251
Binary file not shown.
57
config/traders.json
Normal file
57
config/traders.json
Normal file
@ -0,0 +1,57 @@
|
||||
{
|
||||
"updateTime": [
|
||||
{
|
||||
"traderId": "54cb50c76803fa8b248b4571",
|
||||
"seconds": 3600
|
||||
},
|
||||
{
|
||||
"traderId": "54cb57776803fa99248b456e",
|
||||
"seconds": 3600
|
||||
},
|
||||
{
|
||||
"traderId": "579dc571d53a0658a154fbec",
|
||||
"seconds": 3600
|
||||
},
|
||||
{
|
||||
"traderId": "58330581ace78e27b8b10cee",
|
||||
"seconds": 3600
|
||||
},
|
||||
{
|
||||
"traderId": "5935c25fb3acc3127c3d8cd9",
|
||||
"seconds": 3600
|
||||
},
|
||||
{
|
||||
"traderId": "5a7c2eca46aef81a7ca2145d",
|
||||
"seconds": 3600
|
||||
},
|
||||
{
|
||||
"traderId": "5ac3b934156ae10c4430e83c",
|
||||
"seconds": 3600
|
||||
},
|
||||
{
|
||||
"traderId": "5c0647fdd443bc2504c2d371",
|
||||
"seconds": 3600
|
||||
},
|
||||
{
|
||||
"traderId": "ragfair",
|
||||
"seconds": 3600
|
||||
}
|
||||
],
|
||||
|
||||
"traderPriceMultipler": 1,
|
||||
"minDurabilityForSale": 60,
|
||||
|
||||
"fence": {
|
||||
"partialRefreshTimeSeconds": 240,
|
||||
"partialRefreshChangePercent": 15,
|
||||
"assortSize": 100,
|
||||
"maxPresetsPercent": 5,
|
||||
"presetPriceMult": 2.5,
|
||||
"blacklist": [
|
||||
"5661632d4bdc2d903d8b456b",
|
||||
"543be5e94bdc2df1348b4568",
|
||||
"543be6674bdc2df1348b4569",
|
||||
"5448bf274bdc2dfc2f8b456a",
|
||||
"543be5664bdc2dd4348b4569",
|
||||
"5447bedf4bdc2d87278b4568"]}
|
||||
}
|
20
config/ts/traders.ts
Normal file
20
config/ts/traders.ts
Normal file
@ -0,0 +1,20 @@
|
||||
export interface TradersConfig {
|
||||
updateTime: UpdateTime[];
|
||||
traderPriceMultipler: number;
|
||||
minDurabilityForSale: number;
|
||||
fence: FenceConfig;
|
||||
}
|
||||
|
||||
export interface UpdateTime {
|
||||
traderId: string;
|
||||
seconds: number;
|
||||
}
|
||||
|
||||
export interface FenceConfig {
|
||||
partialRefreshTimeSeconds: number;
|
||||
partialRefreshChangePercent: number;
|
||||
assortSize: number;
|
||||
maxPresetsPercent: number;
|
||||
presetPriceMult: number;
|
||||
blacklist: string[];
|
||||
}
|
@ -30,6 +30,8 @@ import { Quests } from "./quests";
|
||||
import { Skills } from "./skills";
|
||||
import { Prewipe } from "./prewipe";
|
||||
import { IHideoutConfig } from "@spt-aki/models/spt/config/IHideoutConfig";
|
||||
import { Traders } from "./traders";
|
||||
import { ITraderConfig } from "@spt-aki/models/spt/config/ITraderConfig";
|
||||
//import { Airdrop } from "./airdrop";
|
||||
|
||||
class ValensAIO implements IPostDBLoadMod
|
||||
@ -46,6 +48,7 @@ class ValensAIO implements IPostDBLoadMod
|
||||
private inRaidConfig: IInRaidConfig;
|
||||
private weightedRandomHelper : WeightedRandomHelper;
|
||||
private hideout: IHideoutConfig
|
||||
private traderConfig: ITraderConfig;
|
||||
|
||||
public postDBLoad(container: DependencyContainer): void
|
||||
{
|
||||
@ -61,6 +64,7 @@ class ValensAIO implements IPostDBLoadMod
|
||||
this.inRaidConfig = this.configServer.getConfig<IInRaidConfig>(ConfigTypes.IN_RAID);
|
||||
this.insuranceConfig = this.configServer.getConfig<IInsuranceConfig>(ConfigTypes.INSURANCE);
|
||||
this.hideout = this.configServer.getConfig<IHideoutConfig>(ConfigTypes.HIDEOUT);
|
||||
this.traderConfig = this.configServer.getConfig<ITraderConfig>(ConfigTypes.TRADER);
|
||||
|
||||
//const airdrop = new Airdrop(this.logger, this.airdropConfig, this.databaseServer)
|
||||
//airdrop.updateAirdrops();
|
||||
@ -110,6 +114,9 @@ class ValensAIO implements IPostDBLoadMod
|
||||
const skills = new Skills(vLogger, this.databaseServer);
|
||||
skills.updateSkills();
|
||||
|
||||
const traders = new Traders(vLogger, this.databaseServer, this.traderConfig);
|
||||
traders.updateTraders();
|
||||
|
||||
const weapons = new Weapons(vLogger, this.databaseServer);
|
||||
weapons.updateWeapons();
|
||||
|
||||
|
124
src/traders.ts
Normal file
124
src/traders.ts
Normal file
@ -0,0 +1,124 @@
|
||||
import { ITraderConfig } from "@spt-aki/models/spt/config/ITraderConfig";
|
||||
import { DatabaseServer } from "@spt-aki/servers/DatabaseServer";
|
||||
import { TradersConfig } from "config/ts/traders";
|
||||
import { Logger } from "./logger";
|
||||
|
||||
export class Traders
|
||||
{
|
||||
private modConfig: TradersConfig = require("../config/traders.json")
|
||||
private logger: Logger;
|
||||
private databaseServer: DatabaseServer;
|
||||
private traderConfig: ITraderConfig;
|
||||
|
||||
constructor(logger:Logger, databaseServer: DatabaseServer, traderConfig: ITraderConfig)
|
||||
{
|
||||
this.logger = logger;
|
||||
this.databaseServer = databaseServer;
|
||||
this.traderConfig = traderConfig;
|
||||
}
|
||||
|
||||
public updateTraders(): void
|
||||
{
|
||||
const mod = this.modConfig;
|
||||
|
||||
if (mod.updateTime != [
|
||||
{
|
||||
"traderId": "54cb50c76803fa8b248b4571",
|
||||
"seconds": 3600
|
||||
},
|
||||
{
|
||||
"traderId": "54cb57776803fa99248b456e",
|
||||
"seconds": 3600
|
||||
},
|
||||
{
|
||||
"traderId": "579dc571d53a0658a154fbec",
|
||||
"seconds": 3600
|
||||
},
|
||||
{
|
||||
"traderId": "58330581ace78e27b8b10cee",
|
||||
"seconds": 3600
|
||||
},
|
||||
{
|
||||
"traderId": "5935c25fb3acc3127c3d8cd9",
|
||||
"seconds": 3600
|
||||
},
|
||||
{
|
||||
"traderId": "5a7c2eca46aef81a7ca2145d",
|
||||
"seconds": 3600
|
||||
},
|
||||
{
|
||||
"traderId": "5ac3b934156ae10c4430e83c",
|
||||
"seconds": 3600
|
||||
},
|
||||
{
|
||||
"traderId": "5c0647fdd443bc2504c2d371",
|
||||
"seconds": 3600
|
||||
},
|
||||
{
|
||||
"traderId": "ragfair",
|
||||
"seconds": 3600
|
||||
}
|
||||
])
|
||||
{
|
||||
this.updateTime();
|
||||
}
|
||||
|
||||
if (mod.traderPriceMultipler != 1)
|
||||
{
|
||||
this.traderPriceMultiplier();
|
||||
}
|
||||
|
||||
if (mod.minDurabilityForSale != 60)
|
||||
{
|
||||
this.minDurabilityForSale();
|
||||
}
|
||||
|
||||
if (mod.fence.partialRefreshTimeSeconds != 240 || mod.fence.partialRefreshChangePercent != 15 || mod.fence.assortSize != 100 || mod.fence.maxPresetsPercent != 5 || mod.fence.presetPriceMult != 2.5 || mod.fence.blacklist != [
|
||||
"5661632d4bdc2d903d8b456b",
|
||||
"543be5e94bdc2df1348b4568",
|
||||
"543be6674bdc2df1348b4569",
|
||||
"5448bf274bdc2dfc2f8b456a",
|
||||
"543be5664bdc2dd4348b4569",
|
||||
"5447bedf4bdc2d87278b4568"])
|
||||
{
|
||||
this.updateFence();
|
||||
}
|
||||
}
|
||||
|
||||
private updateTime(): void
|
||||
{
|
||||
const mod = this.modConfig;
|
||||
const trader = this.traderConfig;
|
||||
trader.updateTime = mod.updateTime;
|
||||
this.logger.info(`Update Time Set to ${mod.updateTime}`);
|
||||
}
|
||||
|
||||
private traderPriceMultiplier(): void
|
||||
{
|
||||
const mod = this.modConfig;
|
||||
const trader = this.traderConfig;
|
||||
trader.traderPriceMultipler = mod.traderPriceMultipler;
|
||||
this.logger.info(`Trader Price Multiplier Set to ${mod.traderPriceMultipler}`);
|
||||
}
|
||||
|
||||
private minDurabilityForSale(): void
|
||||
{
|
||||
const mod = this.modConfig;
|
||||
const trader = this.traderConfig;
|
||||
trader.minDurabilityForSale = mod.minDurabilityForSale;
|
||||
this.logger.info(`Min Durability For Sale Set to ${mod.minDurabilityForSale}`);
|
||||
}
|
||||
|
||||
private updateFence(): void
|
||||
{
|
||||
const mod = this.modConfig.fence;
|
||||
const trader = this.traderConfig.fence;
|
||||
trader.partialRefreshTimeSeconds = mod.partialRefreshTimeSeconds;
|
||||
trader.partialRefreshChangePercent = mod.partialRefreshChangePercent;
|
||||
trader.assortSize = mod.assortSize;
|
||||
trader.maxPresetsPercent = mod.maxPresetsPercent;
|
||||
trader.presetPriceMult = mod.presetPriceMult;
|
||||
trader.blacklist = mod.blacklist;
|
||||
this.logger.info("Fence Has Been Patched");
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user