diff options
Diffstat (limited to 'src/main.ts')
-rw-r--r-- | src/main.ts | 157 |
1 files changed, 80 insertions, 77 deletions
diff --git a/src/main.ts b/src/main.ts index 9009b6f..2447253 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,19 +1,27 @@ -import * as path from 'path'; -import { app, BrowserWindow, ipcMain, remote, Tray, Menu, dialog } from 'electron'; +import * as path from "path"; +import { + app, + BrowserWindow, + ipcMain, + remote, + Tray, + Menu, + dialog, +} from "electron"; // Keep a global reference of the window object, if you don't, the window will // be closed automatically when the JavaScript object is garbage collected. export let mainWindow: BrowserWindow; const isSecondInstance = app.makeSingleInstance(() => { - // Someone tried to run a second instance, we should focus our window. - if (mainWindow) { - if (mainWindow.isMinimized()) mainWindow.restore() - mainWindow.focus() - } - }) + // Someone tried to run a second instance, we should focus our window. + if (mainWindow) { + if (mainWindow.isMinimized()) mainWindow.restore(); + mainWindow.focus(); + } +}); if (isSecondInstance) { - app.quit(); + app.quit(); } const createWindow = () => { // Create the browser window. @@ -23,14 +31,14 @@ const createWindow = () => { minHeight: 475, minWidth: 650, frame: false, - icon: path.join(__dirname,"../assets/media/icon.ico") + icon: path.join(__dirname, "../assets/media/icon.ico"), }); // and load the index.html of the app. mainWindow.loadURL(`file://${__dirname}/../assets/index.html`); // Emitted when the window is closed. - mainWindow.on('closed', () => { + mainWindow.on("closed", () => { // Dereference the window object, usually you would store windows // in an array if your app supports multi windows, this is the time // when you should delete the corresponding element. @@ -41,18 +49,18 @@ const createWindow = () => { // This method will be called when Electron has finished // initialization and is ready to create browser windows. // Some APIs can only be used after this event occurs. -app.on('ready', createWindow); +app.on("ready", createWindow); // Quit when all windows are closed. -app.on('window-all-closed', () => { +app.on("window-all-closed", () => { // On OS X it is common for applications and their menu bar // to stay active until the user quits explicitly with Cmd + Q - if (process.platform !== 'darwin' && !Status.getStatus().playing) { + if (process.platform !== "darwin" && !Status.getStatus().playing) { app.quit(); } }); -app.on('activate', () => { +app.on("activate", () => { // On OS X it's common to re-create a window in the app when the // dock icon is clicked and there are no other windows open. if (mainWindow === null) { @@ -60,126 +68,121 @@ app.on('activate', () => { } }); -ipcMain.on('quit', (event:any, arg:any)=> { - mainWindow.close(); +ipcMain.on("quit", (event: any, arg: any) => { + mainWindow.close(); }); -ipcMain.on('minimize', (event:any, arg:any)=> { +ipcMain.on("minimize", (event: any, arg: any) => { mainWindow.minimize(); }); -ipcMain.on('debug', (event:any, arg:any)=> { - if(mainWindow.webContents.isDevToolsOpened()) +ipcMain.on("debug", (event: any, arg: any) => { + if (mainWindow.webContents.isDevToolsOpened()) mainWindow.webContents.closeDevTools(); - else - mainWindow.webContents.openDevTools(); + else mainWindow.webContents.openDevTools(); - Status.setActivity("Debug menue Toggled") + Status.setActivity("Debug menue Toggled"); }); -import {Status, EventEmitter} from './main/status'; - +import { Status, EventEmitter } from "./main/status"; +import { quit as drpcQuit } from "./main/richpresence"; -import {quit as drpcQuit} from './main/richpresence'; - -app.on('quit', () => { +app.on("quit", () => { drpcQuit(); - if (appIcon) appIcon.destroy() + if (appIcon) appIcon.destroy(); }); -let appIcon:Tray = null; +let appIcon: Tray = null; -EventEmitter.on('openTray',()=>{ - if(!appIcon){ - const iconName = "../assets/media/plushmouboo.png"; - const iconPath = path.join(__dirname, iconName) - appIcon = new Tray(iconPath) +EventEmitter.on("openTray", () => { + if (!appIcon) { + const iconName = "../assets/media/plushmouboo.png"; + const iconPath = path.join(__dirname, iconName); + appIcon = new Tray(iconPath); - updateTrayIconMenue(); -} + updateTrayIconMenue(); + } }); -function updateTrayIconMenue(){ - if(appIcon && appIcon!==null){ - let menue:Electron.MenuItemConstructorOptions[] = []; - if(Status.getStatus().gameRunning){ +function updateTrayIconMenue() { + if (appIcon && appIcon !== null) { + let menue: Electron.MenuItemConstructorOptions[] = []; + if (Status.getStatus().gameRunning) { menue.push({ - label: 'Open screenshot folder', + label: "Open screenshot folder", click: () => { - EventEmitter.emit('Mana:openScreenshotDir'); - } + EventEmitter.emit("Mana:openScreenshotDir"); + }, }); menue.push({ - label: 'Kill ManaPlus', + label: "Kill ManaPlus", click: () => { //TODO Ask the user first to confirm const options = { - type: 'warning', - title: 'Kill ManaPlus', + type: "warning", + title: "Kill ManaPlus", message: "Are you sure?", - buttons: ['Yes', 'No'] - } + buttons: ["Yes", "No"], + }; dialog.showMessageBox(options, (index) => { - if(index===0){ - EventEmitter.emit('Mana:killMana'); + if (index === 0) { + EventEmitter.emit("Mana:killMana"); } - }) - } + }); + }, }); - }else{ + } else { menue.push({ - label: 'Close Tray Icon', + label: "Close Tray Icon", click: () => { - EventEmitter.emit('closeTray'); - } + EventEmitter.emit("closeTray"); + }, }); } - - appIcon.setToolTip('LawnCables Mana Launcher'); + appIcon.setToolTip("LawnCables Mana Launcher"); appIcon.setContextMenu(Menu.buildFromTemplate(menue)); } } -EventEmitter.on('status', updateTrayIconMenue); +EventEmitter.on("status", updateTrayIconMenue); -EventEmitter.on('closeTray',()=>{ +EventEmitter.on("closeTray", () => { if (appIcon) { appIcon.destroy(); appIcon = null; } }); - -import { ManaPlus } from './main/manaplus/manaplus'; +import { ManaPlus } from "./main/manaplus/manaplus"; ManaPlus.init(); -ipcMain.on('play', async (event:any, arg:any) => { - if(Status.getStatus().playing)return; - //console.log("play", arg); - Status.setGameStatus({server: arg.address}) - Status.setPlaying(true); - await ManaPlus.start(arg); - //Status.showError("Failed To Launch Mana Plus","Not implemented yet!","Launch Manaplus faild: Not Implemented"); - return false; +ipcMain.on("play", async (event: any, arg: any) => { + if (Status.getStatus().playing) return; + //console.log("play", arg); + Status.setGameStatus({ server: arg.address }); + Status.setPlaying(true); + await ManaPlus.start(arg); + //Status.showError("Failed To Launch Mana Plus","Not implemented yet!","Launch Manaplus faild: Not Implemented"); + return false; }); -ipcMain.on('dragFileOut', (event:any, filepath:any) => { +ipcMain.on("dragFileOut", (event: any, filepath: any) => { event.sender.startDrag({ file: filepath, - icon:path.join(__dirname, "../assets/media/screenshot.png") - }) -}) + icon: path.join(__dirname, "../assets/media/screenshot.png"), + }); +}); -EventEmitter.on('reopenWindow',()=>{ +EventEmitter.on("reopenWindow", () => { if (mainWindow === null) { createWindow(); } }); -EventEmitter.on('closeWindow',()=>{ +EventEmitter.on("closeWindow", () => { if (mainWindow !== null) { mainWindow.close(); } |