summaryrefslogtreecommitdiff
path: root/src/main/manaplus/manaplus.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/manaplus/manaplus.ts')
-rw-r--r--src/main/manaplus/manaplus.ts57
1 files changed, 43 insertions, 14 deletions
diff --git a/src/main/manaplus/manaplus.ts b/src/main/manaplus/manaplus.ts
index dfa86a7..22e4ffd 100644
--- a/src/main/manaplus/manaplus.ts
+++ b/src/main/manaplus/manaplus.ts
@@ -1,6 +1,10 @@
import { ManaPlusApp } from './ManaApp/manaApp.interface';
import { ManaPlusAppWindows } from './ManaApp/windows';
import * as os from 'os';
+import * as path from 'path';
+import * as fs from 'fs-extra';
+import { app } from 'electron';
+import { Status } from '../status';
let ManaPlusInstance:ManaPlusApp;
@@ -23,9 +27,15 @@ export namespace ManaPlus{
return await ManaPlusInstance.update();
}
- export async function start(server: any,engine: any,port: any,username: any,password: any){
-
- const params = makeParams(server,engine,port,username,password);
+ export async function start(server: any,port: any,engine: any,username: any,password: any){
+ let params:string[];
+ try {
+ params = await makeParams(server,port,engine,username,password);
+ } catch (e){
+ console.log(e);
+ Status.showError("Launch Preperation Failed", e.message, "Launch preparation failed")
+ return;
+ }
let willUpdate:boolean=false;
// check if it is installed
willUpdate = !ManaPlusInstance.isInstalled();
@@ -47,15 +57,34 @@ function wasInitilized(){
return typeof(ManaPlusInstance) !== "undefined" && typeof(ManaPlusInstance) !== "undefined";
}
-function makeParams(server: any,engine: any,port: any,username: any,password: any):string[]{
- // TODO check if everything is there
- var parameters = [
- "-s"+server,
- "-y"+engine,
- "-p"+port,
- "-U"+username,
- "-P"+password,
- ];
- // TODO make this function real
- return [];
+async function makeParams(server: any,port: any,engine: any,username?: any,password?: any):Promise<string[]>{
+ let parameters:string[] = [];
+ if(server && engine && port){
+ parameters.push(...[
+ "-s", server,
+ "-y", engine,
+ "-p", port
+ ]);
+ if(username && password){
+ parameters.push(...[
+ "-U", username,
+ "-P", password
+ ]);
+ }
+ }
+ // Setup Paths and stuff
+ const configDir = path.normalize(app.getPath('userData')+"/mana_config");
+ const localDataDir = path.normalize(app.getPath('userData')+"/mana_local_data");
+ const screenshotsDir = path.normalize(app.getPath('userData')+`/screenshots/${server}`);
+ await fs.ensureDir(configDir);
+ await fs.ensureDir(localDataDir);
+ await fs.ensureDir(screenshotsDir);
+ parameters.push(...[
+ "-C", configDir,
+ "-L", localDataDir,
+ "--screenshot-dir", screenshotsDir
+ ]);
+ console.log(parameters);
+
+ return parameters;
}