import { mainWindow } from "../main"; import { dialog } from "electron"; type STATUS = { progress: number; activity: string; ActivityIsError: boolean; playing: boolean; gameRunning: boolean; gameStatus: { server: string; }; }; const status: STATUS = { progress: null, activity: null, playing: false, //Is manaplus starting or started ActivityIsError: false, gameRunning: false, gameStatus: { server: "Launcher", }, }; export namespace Status { export function setGameRunning(value: boolean) { status.gameRunning = value; updateStatus(); } export function setProgress(value: number) { status.progress = value; updateStatus(); } export function removeProgress() { status.progress = null; updateStatus(); } export function setActivity(value: string) { status.activity = value; status.ActivityIsError = false; updateStatus(); } export function removeActivity() { status.activity = null; status.ActivityIsError = false; updateStatus(); } export function showError( title: string, message: string, activityMsg: string = message ) { status.activity = activityMsg; status.ActivityIsError = true; updateStatus(); setTimeout(() => { dialog.showErrorBox(title, message); }, 300); } export function setPlaying(playing: boolean) { status.playing = playing; updateStatus(); } export function setGameStatus(gameStatus: { server: string }) { status.gameStatus = gameStatus; updateStatus(); } export function getStatus(): STATUS { return status; } } function updateStatus() { if (mainWindow && mainWindow !== null) { if (status.progress == null || status.progress < 0) mainWindow.setProgressBar(-1); else if (status.progress > 100) mainWindow.setProgressBar(2); else mainWindow.setProgressBar(status.progress / 100); mainWindow.webContents.send("status-update", status); } EventEmitter.emit("status", status); } import * as events from "events"; class MyEmitter extends events {} export const EventEmitter = new MyEmitter();