@@ -7,6 +7,7 @@ import { SPTWebSocket } from "@spt/servers/ws/SPTWebsocket";
7
7
import { FikaHeadlessHelper } from "../helpers/FikaHeadlessHelper" ;
8
8
import { EFikaHeadlessWSMessageTypes } from "../models/enums/EFikaHeadlessWSMessageTypes" ;
9
9
import { IFikaHeadlessBase } from "../models/fika/websocket/IFikaHeadlessBase" ;
10
+ import { FikaMatchService } from "../services/FikaMatchService" ;
10
11
import { FikaHeadlessService } from "../services/headless/FikaHeadlessService" ;
11
12
12
13
@injectable ( )
@@ -16,6 +17,7 @@ export class FikaHeadlessClientWebSocket implements IWebSocketConnectionHandler
16
17
constructor (
17
18
@inject ( "FikaHeadlessHelper" ) protected fikaHeadlessHelper : FikaHeadlessHelper ,
18
19
@inject ( "FikaHeadlessService" ) protected fikaHeadlessService : FikaHeadlessService ,
20
+ @inject ( "FikaMatchService" ) protected fikaMatchService : FikaMatchService ,
19
21
@inject ( "WinstonLogger" ) protected logger : ILogger ,
20
22
) {
21
23
// Keep websocket connections alive
@@ -53,6 +55,11 @@ export class FikaHeadlessClientWebSocket implements IWebSocketConnectionHandler
53
55
ws . on ( "message" , ( msg ) => this . onMessage ( UserSessionID , msg . toString ( ) ) ) ;
54
56
ws . on ( "close" , ( code , reason ) => this . onClose ( ws , UserSessionID , code , reason ) ) ;
55
57
58
+ // Cleanup match if headless has crashed before re-adding it as an available client
59
+ if ( this . fikaMatchService . getMatchIdByProfile ( UserSessionID ) ) {
60
+ this . fikaMatchService . deleteMatch ( UserSessionID ) ;
61
+ }
62
+
56
63
this . fikaHeadlessService . addHeadlessClient ( UserSessionID , ws ) ;
57
64
}
58
65
0 commit comments