Skip to content

Commit

Permalink
Merge pull request #31 from JimWails/master
Browse files Browse the repository at this point in the history
Fix flea market message lost
  • Loading branch information
paulov-t authored Mar 8, 2024
2 parents 647cec1 + 33e2375 commit 35ab083
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/CoopConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,17 @@ export class CoopConfig {
public webSocketPort: number;
public natHelperPort: number;
public useUPNP: boolean;
public useMessageWSUrlOverride: boolean;
public messageWSUrlOverride: string;

public static Instance: CoopConfig;

constructor() {
this.webSocketPort = 6970;
this.natHelperPort = 6971;
this.useUPNP = true;
this.useMessageWSUrlOverride = false;
this.messageWSUrlOverride = '127.0.0.1:6969';

const configFilePath = path.join(__dirname, "..", "config");
if(!fs.existsSync(configFilePath))
Expand Down
42 changes: 42 additions & 0 deletions src/Overrides/HttpServerHelperOverride.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import { DependencyContainer } from "tsyringe";
import { CoopConfig } from "./../CoopConfig";
import { HttpServerHelper } from "@spt-aki/helpers/HttpServerHelper";

export class HttpServerHelperOverride {
container: DependencyContainer;

httpServerHelper: HttpServerHelper;

constructor
(
container: DependencyContainer
)
{
this.container = container;
this.httpServerHelper = container.resolve<HttpServerHelper>("HttpServerHelper");
}

public getWebsocketUrl(): string {
const originalUrl = this.httpServerHelper.buildUrl();
console.log(`Original Message WS Url is ${originalUrl}`);
if (CoopConfig.Instance.useMessageWSUrlOverride) {
console.log(`Override Message WS Url to ${CoopConfig.Instance.messageWSUrlOverride}`);
return `ws://${CoopConfig.Instance.messageWSUrlOverride}`;
} else {
return `ws://${originalUrl}`;
}
}

public override(): void
{
this.container.afterResolution("HttpServerHelper", (_t, result: HttpServerHelper) =>
{
// We want to replace the original method logic with something different
result.getWebsocketUrl = () =>
{
return this.getWebsocketUrl();
}
// The modifier Always makes sure this replacement method is ALWAYS replaced
}, {frequency: "Always"});
}
}
5 changes: 5 additions & 0 deletions src/StayInTarkovMod.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import { friendlyAI } from "./FriendlyAI";
import { BundleLoaderOverride } from "./Overrides/BundleLoaderOverride";
import { LauncherControllerOverride } from "./Overrides/LauncherControllerOverride";
import { GameControllerOverride } from "./Overrides/GameControllerOverride";
import { HttpServerHelperOverride } from "./Overrides/HttpServerHelperOverride";
// -------------------------------------------------------------------------

// Controllers -------------------------------------------------------------
Expand Down Expand Up @@ -151,6 +152,10 @@ export class StayInTarkovMod implements IPreAkiLoadMod, IPostDBLoadMod
const launcherControllerOverride = new LauncherControllerOverride(container, gameControllerOverride);
launcherControllerOverride.override();

// ----------------------- Http Server Helper overrides ------------------------------------------------
const httpServerHelperOverride = new HttpServerHelperOverride(container);
httpServerHelperOverride.override();

// Connect to this module
staticRouterModService.registerStaticRouter(
"ConnectionRouter",
Expand Down

0 comments on commit 35ab083

Please sign in to comment.