diff --git a/project/assets/configs/bot.json b/project/assets/configs/bot.json index b7e78f0c..957c0328 100644 --- a/project/assets/configs/bot.json +++ b/project/assets/configs/bot.json @@ -317,7 +317,9 @@ "exusec": { "60098ad7c2240c0fe85c570a": 2 }, - "bossbully": {}, + "bossbully": { + "5448ba0b4bdc2d02308b456c": 1 + }, "bossgluhar": {}, "bosskilla": {}, "bosskojaniy": { @@ -325,7 +327,8 @@ "5c94bbff86f7747ee735c08f": 1 }, "bosssanitar": { - "5efde6b4f5448336730dbd61": 1 + "5efde6b4f5448336730dbd61": 1, + "5eff09cd30a7dc22fd1ddfed": 1 }, "bosstagilla": {}, "bossknight": {}, diff --git a/project/src/helpers/AssortHelper.ts b/project/src/helpers/AssortHelper.ts index 10c2ec65..88ae86e3 100644 --- a/project/src/helpers/AssortHelper.ts +++ b/project/src/helpers/AssortHelper.ts @@ -45,7 +45,7 @@ export class AssortHelper return traderAssorts; } - // Iterate over all assorts, removing items that don't fulfil the requirements + // Iterate over all assorts, removing items that haven't yet been unlocked by quests (ASSORTMENT_UNLOCK) for (const assortId in traderAssorts.loyal_level_items) { // Get quest id that unlocks assort + statuses quest can be in to show assort @@ -116,7 +116,7 @@ export class AssortHelper return assort; } - // Remove items not unlocked from quest status change (ASSORTMENT_UNLOCK) + // Remove items restricted by loyalty levels above those reached by the player for (const itemId in assort.loyal_level_items) { if (assort.loyal_level_items[itemId] > pmcProfile.TradersInfo[traderId].loyaltyLevel) diff --git a/project/src/models/enums/WeaponTypes.ts b/project/src/models/enums/WeaponTypes.ts index 8efe76fd..c3f377dd 100644 --- a/project/src/models/enums/WeaponTypes.ts +++ b/project/src/models/enums/WeaponTypes.ts @@ -1,6 +1,7 @@ export enum Weapons127x55 { ASH_12 = "5cadfbf7ae92152ac412eeef", + RSH_12 = "633ec7c2a6918cb895019c6c", } export enum Weapons86x70 @@ -208,3 +209,9 @@ export enum Weapons68x51 { MCX_SPEAR = "65290f395ae2ae97b80fdf2d", } + +export enum Weapons40x46 +{ + M32A1 = "6275303a9f372d6ea97f9ec7", + FN40GL = "5e81ebcd8e146c7080625e15", +} diff --git a/project/src/servers/HttpServer.ts b/project/src/servers/HttpServer.ts index 952ed451..b1c6928d 100644 --- a/project/src/servers/HttpServer.ts +++ b/project/src/servers/HttpServer.ts @@ -17,6 +17,7 @@ import { LocalisationService } from "@spt-aki/services/LocalisationService"; export class HttpServer { protected httpConfig: IHttpConfig; + protected started: boolean; constructor( @inject("WinstonLogger") protected logger: ILogger, @@ -37,6 +38,8 @@ export class HttpServer */ public load(): void { + this.started = false; + /* create server */ const httpServer: Server = http.createServer(); @@ -48,6 +51,7 @@ export class HttpServer /* Config server to listen on a port */ httpServer.listen(this.httpConfig.port, this.httpConfig.ip, () => { + this.started = true; this.logger.success( this.localisationService.getText("started_webserver_success", this.httpServerHelper.getBackendUrl()), ); @@ -123,4 +127,9 @@ export class HttpServer return found; } + + public isStarted(): boolean + { + return this.started; + } } diff --git a/project/src/utils/App.ts b/project/src/utils/App.ts index 9b51b1aa..235926b4 100644 --- a/project/src/utils/App.ts +++ b/project/src/utils/App.ts @@ -7,6 +7,7 @@ import { ConfigTypes } from "@spt-aki/models/enums/ConfigTypes"; import { ICoreConfig } from "@spt-aki/models/spt/config/ICoreConfig"; import { ILogger } from "@spt-aki/models/spt/utils/ILogger"; import { ConfigServer } from "@spt-aki/servers/ConfigServer"; +import { HttpServer } from "@spt-aki/servers/HttpServer"; import { LocalisationService } from "@spt-aki/services/LocalisationService"; import { EncodingUtil } from "@spt-aki/utils/EncodingUtil"; import { TimeUtil } from "@spt-aki/utils/TimeUtil"; @@ -23,6 +24,7 @@ export class App @inject("LocalisationService") protected localisationService: LocalisationService, @inject("ConfigServer") protected configServer: ConfigServer, @inject("EncodingUtil") protected encodingUtil: EncodingUtil, + @inject("HttpServer") protected httpServer: HttpServer, @injectAll("OnLoad") protected onLoadComponents: OnLoad[], @injectAll("OnUpdate") protected onUpdateComponents: OnUpdate[], ) @@ -64,6 +66,12 @@ export class App protected async update(onUpdateComponents: OnUpdate[]): Promise { + // If the server has failed to start, skip any update calls + if (!this.httpServer.isStarted()) + { + return; + } + for (const updateable of onUpdateComponents) { let success = false;