Feature: Save profile changes on game exit

This commit is contained in:
Dev 2023-03-23 14:48:10 +00:00
parent 990c33b9c6
commit a207e5778e
2 changed files with 9 additions and 0 deletions

View File

@ -13,6 +13,7 @@ import { IServerDetails } from "../models/eft/game/IServerDetails";
import { IVersionValidateRequestData } from "../models/eft/game/IVersionValidateRequestData"; import { IVersionValidateRequestData } from "../models/eft/game/IVersionValidateRequestData";
import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData";
import { INullResponseData } from "../models/eft/httpResponse/INullResponseData"; import { INullResponseData } from "../models/eft/httpResponse/INullResponseData";
import { SaveServer } from "../servers/SaveServer";
import { HttpResponseUtil } from "../utils/HttpResponseUtil"; import { HttpResponseUtil } from "../utils/HttpResponseUtil";
import { Watermark } from "../utils/Watermark"; import { Watermark } from "../utils/Watermark";
@ -22,6 +23,7 @@ class GameCallbacks
constructor( constructor(
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil, @inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
@inject("Watermark") protected watermark: Watermark, @inject("Watermark") protected watermark: Watermark,
@inject("SaveServer") protected saveServer: SaveServer,
@inject("GameController") protected gameController: GameController @inject("GameController") protected gameController: GameController
) )
{} {}
@ -53,11 +55,13 @@ class GameCallbacks
/** /**
* Handle client/game/logout * Handle client/game/logout
* Save profiles on game close
* @returns IGameLogoutResponseData * @returns IGameLogoutResponseData
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars // eslint-disable-next-line @typescript-eslint/no-unused-vars
public gameLogout(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IGameLogoutResponseData> public gameLogout(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IGameLogoutResponseData>
{ {
this.saveServer.save();
return this.httpResponse.getBody({ return this.httpResponse.getBody({
status: "ok" status: "ok"
}); });
@ -123,3 +127,4 @@ class GameCallbacks
} }
export { GameCallbacks }; export { GameCallbacks };

View File

@ -26,6 +26,7 @@ export class ApplicationContext
{ {
return this.variables.get(type)?.getTail()?.getValue(); return this.variables.get(type)?.getTail()?.getValue();
} }
return undefined; return undefined;
} }
@ -35,6 +36,7 @@ export class ApplicationContext
{ {
return this.variables.get(type).toList(); return this.variables.get(type).toList();
} }
return undefined; return undefined;
} }
@ -45,8 +47,10 @@ export class ApplicationContext
list = this.variables.get(type); list = this.variables.get(type);
else else
list = new LinkedList<ContextVariable>(); list = new LinkedList<ContextVariable>();
if (list.getSize() >= ApplicationContext.holderMaxSize) if (list.getSize() >= ApplicationContext.holderMaxSize)
list.removeFirst(); list.removeFirst();
list.add(new ContextVariable(value, type)); list.add(new ContextVariable(value, type));
this.variables.set(type, list); this.variables.set(type, list);
} }