aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/app/browser.js41
-rw-r--r--src/app/lang.js2
-rw-r--r--src/app/launcher.js9
-rw-r--r--src/app/main.js47
-rw-r--r--src/app/settings.js14
-rw-r--r--src/extras/findgame.js12
-rw-r--r--src/index.js156
-rw-r--r--src/utils.js108
8 files changed, 206 insertions, 183 deletions
diff --git a/src/app/browser.js b/src/app/browser.js
index a292cf6..4b9f2e3 100644
--- a/src/app/browser.js
+++ b/src/app/browser.js
@@ -18,7 +18,6 @@ var Browser = {
}
}
- console.log(other)
return pkgs;
},
get: () => {
@@ -88,8 +87,8 @@ var Browser = {
toggle: (state) => {
if (state) {
browser.scrollTo(0, 0);
- overlay.classList.add("shown")
- browser.classList.add("shown")
+ overlay.classList.add("shown");
+ browser.classList.add("shown");
if (browserEntries.querySelectorAll(".el").length == 0) {
Browser.loadfront();
@@ -98,16 +97,16 @@ var Browser = {
} else if (! state) {
if (state != undefined) {
Browser.filters.toggle(false);
- overlay.classList.remove("shown")
- browser.classList.remove("shown")
- preview.classList.remove("shown")
+ overlay.classList.remove("shown");
+ browser.classList.remove("shown");
+ preview.classList.remove("shown");
return
}
}
browser.scrollTo(0, 0);
- overlay.classList.toggle("shown")
- browser.classList.toggle("shown")
+ overlay.classList.toggle("shown");
+ browser.classList.toggle("shown");
},
loadfront: async () => {
Browser.loading();
@@ -162,11 +161,11 @@ var Browser = {
}
if (pkgs.length == 0 || isEnd) {
- Browser.msg(`${lang('gui.browser.endoflist')}`)
+ Browser.msg(`${lang('gui.browser.endoflist')}`);
return
}
- Browser.msg(`<button id="loadmore">${lang("gui.browser.loadmore")}</button>`)
+ Browser.msg(`<button id="loadmore">${lang("gui.browser.loadmore")}</button>`);
loadmore.addEventListener("click", () => {
Browser.loadpkgs(pkgs);
Browser.endoflist(pkgs);
@@ -177,7 +176,7 @@ var Browser = {
let res = fuse.search(string);
if (res.length < 1) {
- Browser.loading(lang("gui.browser.noresults"))
+ Browser.loading(lang("gui.browser.noresults"));
return
}
@@ -244,12 +243,11 @@ var Browser = {
}
Browser.endoflist();
- console.log(pkgs)
break
}
try {
- new BrowserElFromObj(pkgs[i])
+ new BrowserElFromObj(pkgs[i]);
}catch(e) {}
count++;
@@ -375,7 +373,7 @@ function BrowserEl(properties) {
browserEntries.appendChild(entry);
}
-ipcRenderer.on("removedmod", (event, mod) => {
+ipcRenderer.on("removed-mod", (event, mod) => {
setButtons(true);
Browser.setbutton(mod.name, lang("gui.browser.install"));
if (mod.manifestname) {
@@ -383,7 +381,7 @@ ipcRenderer.on("removedmod", (event, mod) => {
}
})
-ipcRenderer.on("failedmod", (event, modname) => {
+ipcRenderer.on("failed-mod", (event, modname) => {
setButtons(true);
new Toast({
timeout: 10000,
@@ -393,7 +391,7 @@ ipcRenderer.on("failedmod", (event, modname) => {
})
})
-ipcRenderer.on("installedmod", (event, mod) => {
+ipcRenderer.on("installed-mod", (event, mod) => {
setButtons(true);
Browser.setbutton(mod.name, lang("gui.browser.reinstall"));
@@ -420,10 +418,12 @@ ipcRenderer.on("installedmod", (event, mod) => {
function normalize(items) {
let main = (string) => {
- return string.replaceAll(" ", "").replaceAll(".", "").replaceAll("-", "").replaceAll("_", "").toLowerCase()
+ return string.replaceAll(" ", "")
+ .replaceAll(".", "").replaceAll("-", "")
+ .replaceAll("_", "").toLowerCase();
}
if (typeof items == "string") {
- return main(items)
+ return main(items);
} else {
let newArray = [];
for (let i = 0; i < items.length; i++) {
@@ -462,7 +462,6 @@ events.forEach((event) => {
let mouseAt = document.elementsFromPoint(mouseX, mouseY);
if (! mouseAt.includes(document.querySelector("#filter"))
&& ! mouseAt.includes(document.querySelector(".overlay"))) {
- console.log(mouseAt)
Browser.filters.toggle(false);
}
})
@@ -498,5 +497,7 @@ browser.addEventListener("mousemove", (event) => {
let checks = document.querySelectorAll(".check");
for (let i = 0; i < checks.length; i++) {
- checks[i].setAttribute("onclick", "this.classList.toggle('checked');Browser.loadfront();search.value = ''")
+ checks[i].setAttribute("onclick",
+ "this.classList.toggle('checked');Browser.loadfront();search.value = ''"
+ )
}
diff --git a/src/app/lang.js b/src/app/lang.js
index 6fdcd8d..f1c31d3 100644
--- a/src/app/lang.js
+++ b/src/app/lang.js
@@ -10,7 +10,7 @@ function setlang() {
if (html[i][0] != " " &&
html[i][html[i].length - 1] != " ") {
// Replaces it with it's string
- html[i] = lang(html[i])
+ html[i] = lang(html[i]);
}
}
diff --git a/src/app/launcher.js b/src/app/launcher.js
index 569d0fe..fbeb703 100644
--- a/src/app/launcher.js
+++ b/src/app/launcher.js
@@ -7,8 +7,8 @@ var masterserver;
// Changes the main page
// This is the tabs in the sidebar
function page(page) {
- let pages = document.querySelectorAll(".mainContainer .contentContainer")
- let btns = document.querySelectorAll(".gamesContainer button")
+ let btns = document.querySelectorAll(".gamesContainer button");
+ let pages = document.querySelectorAll(".mainContainer .contentContainer");
for (let i = 0; i < pages.length; i++) {
pages[i].classList.add("hidden");
@@ -86,7 +86,10 @@ function showVpSection(section) {
}
function showNsSection(section) {
- if (!["main", "release", "mods"].includes(section)) throw new Error("unknown ns section");
+ if (!["main", "release", "mods"].includes(section)) {
+ throw new Error("unknown ns section");
+ }
+
nsMainBtn.removeAttribute("active");
nsModsBtn.removeAttribute("active");
nsReleaseBtn.removeAttribute("active");
diff --git a/src/app/main.js b/src/app/main.js
index 362450a..647e5cd 100644
--- a/src/app/main.js
+++ b/src/app/main.js
@@ -36,9 +36,9 @@ if (fs.existsSync("viper.json")) {
}catch (e) {
let reset = confirm(lang("general.invalidconfig", navigator.language) + e);
if (! reset) {
- ipcRenderer.send("exit")
+ ipcRenderer.send("exit");
} else {
- fs.writeFileSync("viper.json", "{}")
+ fs.writeFileSync("viper.json", "{}");
ipcRenderer.send("relaunch");
}
@@ -76,12 +76,12 @@ function launch() {
update();
shouldInstallNorthstar = false;
} else {
- ipcRenderer.send("launch");
+ ipcRenderer.send("launch-ns");
}
}
// Tells the main process to launch the vanilla game
-function launchVanilla() {ipcRenderer.send("launchVanilla")}
+function launchVanilla() {ipcRenderer.send("launch-vanilla")}
// In conjunction with utils.js' winLog(), it'll send log messages in
// the devTools from utils.js
@@ -100,13 +100,16 @@ function setButtons(state) {
}
}
- disablearray(document.querySelectorAll(".playBtnContainer .playBtn"))
- disablearray(document.querySelectorAll("#nsMods .buttons.modbtns button"))
- disablearray(document.querySelectorAll("#browser #browserEntries .text button"))
+ disablearray(document.querySelectorAll(".playBtnContainer .playBtn"));
+ disablearray(document.querySelectorAll("#nsMods .buttons.modbtns button"));
+ disablearray(document.querySelectorAll("#browser #browserEntries .text button"));
}
-ipcRenderer.on("setbuttons", (event, state) => {setButtons(state)})
-ipcRenderer.on("gamepathlost", (event, state) => {
+ipcRenderer.on("set-buttons", (event, state) => {
+ setButtons(state);
+})
+
+ipcRenderer.on("gamepath-lost", (event, state) => {
page(0);
setButtons(false);
alert(lang("gui.gamepath.lost"));
@@ -172,7 +175,7 @@ function selected(all) {
}
}
- ipcRenderer.send("removemod", selected)
+ ipcRenderer.send("remove-mod", selected);
},
toggle: () => {
if (selected.match(/^Northstar\./)) {
@@ -185,7 +188,7 @@ function selected(all) {
}
}
- ipcRenderer.send("togglemod", selected)
+ ipcRenderer.send("toggle-mod", selected);
}
}
}
@@ -195,19 +198,18 @@ let installqueue = [];
// Tells the main process to install a mod through the file selector
function installmod() {
setButtons(false);
- ipcRenderer.send("installmod")
+ ipcRenderer.send("install-mod");
}
// Tells the main process to directly install a mod from this path
function installFromPath(path) {
setButtons(false);
- ipcRenderer.send("installfrompath", path)
+ ipcRenderer.send("install-from-path", path);
}
// Tells the main process to install a mod from a URL
function installFromURL(url, dependencies, clearqueue) {
if (clearqueue) {installqueue = []};
- console.log(installqueue)
let prettydepends = [];
@@ -215,7 +217,6 @@ function installFromURL(url, dependencies, clearqueue) {
let newdepends = [];
for (let i = 0; i < dependencies.length; i++) {
let depend = dependencies[i].toLowerCase();
- console.log(depend)
if (! depend.match(/northstar-northstar-.*/)) {
depend = dependencies[i].replaceAll("-", "/");
let pkg = depend.split("/");
@@ -237,7 +238,7 @@ function installFromURL(url, dependencies, clearqueue) {
}
setButtons(false);
- ipcRenderer.send("installfromurl", url, dependencies)
+ ipcRenderer.send("install-from-url", url, dependencies);
if (dependencies) {
installqueue = dependencies;
@@ -262,7 +263,7 @@ function isModInstalled(modname) {
// Frontend part of settings a new game path
ipcRenderer.on("newpath", (event, newpath) => {
settings.gamepath = newpath;
- ipcRenderer.send("guigetmods");
+ ipcRenderer.send("gui-getmods");
})
// Continuation of log()
@@ -310,23 +311,23 @@ ipcRenderer.on("version", (event, versions) => {
shouldInstallNorthstar = true;
playNsBtn.innerText = lang("gui.installnorthstar");
}
-}); ipcRenderer.send("getversion");
+}); ipcRenderer.send("get-version");
// When an update is available it'll ask the user about it
-ipcRenderer.on("updateavailable", () => {
+ipcRenderer.on("update-available", () => {
if (confirm(lang("gui.update.available"))) {
- ipcRenderer.send("updatenow");
+ ipcRenderer.send("update-now");
}
})
// Error out when no game path is set
-ipcRenderer.on("nopathselected", () => {
+ipcRenderer.on("no-path-selected", () => {
alert(lang("gui.gamepath.must"));
exit();
});
// Error out when game path is wrong
-ipcRenderer.on("wrongpath", () => {
+ipcRenderer.on("wrong-path", () => {
alert(lang("gui.gamepath.wrong"));
setpath(false);
});
@@ -355,7 +356,7 @@ document.addEventListener("drop", (e) => {
event.stopPropagation();
dragUI.classList.remove("shown");
- installFromPath(event.dataTransfer.files[0].path)
+ installFromPath(event.dataTransfer.files[0].path);
});
document.body.addEventListener("keyup", (e) => {
diff --git a/src/app/settings.js b/src/app/settings.js
index 23b38c9..63b4b99 100644
--- a/src/app/settings.js
+++ b/src/app/settings.js
@@ -3,26 +3,26 @@ var Settings = {
if (state) {
Settings.load();
options.scrollTo(0, 0);
- overlay.classList.add("shown")
- options.classList.add("shown")
+ overlay.classList.add("shown");
+ options.classList.add("shown");
return
} else if (! state) {
if (state != undefined) {
- overlay.classList.remove("shown")
- options.classList.remove("shown")
+ overlay.classList.remove("shown");
+ options.classList.remove("shown");
return
}
}
Settings.load();
options.scrollTo(0, 0);
- overlay.classList.toggle("shown")
- options.classList.toggle("shown")
+ overlay.classList.toggle("shown");
+ options.classList.toggle("shown");
},
apply: () => {
settings = {...settings, ...Settings.get()};
- ipcRenderer.send("savesettings", Settings.get());
+ ipcRenderer.send("save-settings", Settings.get());
},
reloadSwitches: () => {
let switches = document.querySelectorAll(".switch");
diff --git a/src/extras/findgame.js b/src/extras/findgame.js
index 3beca23..615c5b4 100644
--- a/src/extras/findgame.js
+++ b/src/extras/findgame.js
@@ -38,13 +38,13 @@ module.exports = async () => {
// `.length - 1` This is because the last value is `contentstatsid`
for (let i = 0; i < values.length; i++) {
- let data_array = Object.values(values[i])
+ let data_array = Object.values(values[i]);
if (fs.existsSync(data_array[0] + "/steamapps/common/Titanfall2/Titanfall2.exe")) {
- console.log("Found game in:", data_array[0])
+ console.log("Found game in:", data_array[0]);
return data_array[0] + "/steamapps/common/Titanfall2";
} else {
- console.log("Game not in:", data_array[0])
+ console.log("Game not in:", data_array[0]);
}
}
}
@@ -69,10 +69,10 @@ module.exports = async () => {
if (folders.length > 0) {
for (let i = 0; i < folders.length; i++) {
if (! fs.existsSync(folders[i])) {continue}
- console.log("Searching VDF file at:", folders[i])
+ console.log("Searching VDF file at:", folders[i]);
- let data = fs.readFileSync(folders[i])
- let read_vdf = readvdf(data.toString())
+ let data = fs.readFileSync(folders[i]);
+ let read_vdf = readvdf(data.toString());
if (read_vdf) {return read_vdf}
}
}
diff --git a/src/index.js b/src/index.js
index e718ef9..96976b7 100644
--- a/src/index.js
+++ b/src/index.js
@@ -3,30 +3,30 @@ const path = require("path");
const { autoUpdater } = require("electron-updater");
const { app, ipcMain, BrowserWindow, dialog } = require("electron");
-const Emitter = require("events");
-const events = new Emitter();
-
const utils = require("./utils");
const cli = require("./cli");
const requests = require("./extras/requests");
+var log = console.log;
+
// Starts the actual BrowserWindow, which is only run when using the
// GUI, for the CLI this function is never called.
function start() {
win = new BrowserWindow({
width: 1000,
height: 600,
+ title: "Viper",
// Hides the window initially, it'll be shown when the DOM is
// loaded, as to not cause visual issues.
show: false,
- title: "Viper",
// In the future we may want to allow the user to resize the window,
// as it's fairly responsive, but for now we won't allow that.
resizable: false,
- titleBarStyle: "hidden",
+
frame: false,
+ titleBarStyle: "hidden",
icon: path.join(__dirname, "assets/icons/512x512.png"),
webPreferences: {
webviewTag: true,
@@ -35,47 +35,59 @@ function start() {
},
});
- // When --debug is added it'll open the dev tools
+ // when --debug is added it'll open the dev tools
if (cli.hasParam("debug")) {win.openDevTools()}
- // General setup
+ // general setup
win.removeMenu();
win.loadFile(__dirname + "/app/index.html");
+ win.send = (channel, data) => {
+ win.webContents.send(channel, data);
+ }; send = win.send;
+
+ ipcMain.on("exit", () => {process.exit(0)});
+ ipcMain.on("minimize", () => {win.minimize()});
+ ipcMain.on("relaunch", () => {app.relaunch();app.exit()});
+
+ // passthrough to renderer from main
+ ipcMain.on("win-log", (event, ...args) => {send("log", ...args)});
+ ipcMain.on("win-alert", (event, ...args) => {send("alert", ...args)});
- ipcMain.on("exit", () => {process.exit(0)})
- ipcMain.on("minimize", () => {win.minimize()})
- ipcMain.on("relaunch", () => {app.relaunch();app.exit()})
- ipcMain.on("installfrompath", (event, path) => {utils.mods.install(path)})
- ipcMain.on("installfromurl", (event, url) => {utils.mods.installFromURL(url)})
- ipcMain.on("winLog", (event, ...args) => {win.webContents.send("log", ...args)});
- ipcMain.on("winAlert", (event, ...args) => {win.webContents.send("alert", ...args)});
- ipcMain.on("ns-update-event", (event) => win.webContents.send("ns-update-event", event));
- ipcMain.on("failedmod", (event, modname) => {win.webContents.send("failedmod", modname)});
- ipcMain.on("removedmod", (event, modname) => {win.webContents.send("removedmod", modname)});
- ipcMain.on("installedmod", (event, modname) => {win.webContents.send("installedmod", modname)});
- ipcMain.on("guigetmods", (event, ...args) => {win.webContents.send("mods", utils.mods.list())});
+ // mod states
+ ipcMain.on("failed-mod", (event, modname) => {send("failed-mod", modname)});
+ ipcMain.on("removed-mod", (event, modname) => {send("removed-mod", modname)});
+ ipcMain.on("gui-getmods", (event, ...args) => {send("mods", utils.mods.list())});
+ ipcMain.on("installed-mod", (event, modname) => {send("installed-mod", modname)});
+ // install calls
+ ipcMain.on("install-from-path", (event, path) => {utils.mods.install(path)});
+ ipcMain.on("install-from-url", (event, url) => {utils.mods.installFromURL(url)});
+
+ win.webContents.on("dom-ready", () => {
+ send("mods", utils.mods.list());
+ });
+
+ // ensures gamepath still exists and is valid on startup
let gamepathlost = false;
- ipcMain.on("gamepathlost", (event, ...args) => {
+ ipcMain.on("gamepath-lost", (event, ...args) => {
if (! gamepathlost) {
gamepathlost = true;
- win.webContents.send("gamepathlost");
+ send("gamepath-lost");
}
});
- ipcMain.on("savesettings", (event, obj) => {utils.saveSettings(obj)})
+ ipcMain.on("save-settings", (event, obj) => {utils.saveSettings(obj)});
- ipcMain.on("can-autoupdate", (event) => {
- if (! require("electron-updater").autoUpdater.isUpdaterActive() || cli.hasParam("no-vp-updates")) {
- win.webContents.send("cant-autoupdate")
+ // allows renderer to check for updates
+ ipcMain.on("ns-update-event", (event) => {send("ns-update-event", event)});
+ ipcMain.on("can-autoupdate", () => {
+ if (! autoUpdater.isUpdaterActive() || cli.hasParam("no-vp-updates")) {
+ send("cant-autoupdate");
}
})
- win.webContents.on("dom-ready", () => {
- win.webContents.send("mods", utils.mods.list());
- });
-
+ // start auto-update process
if (utils.settings.autoupdate) {
if (cli.hasParam("no-vp-updates")) {
utils.handleNorthstarUpdating();
@@ -87,41 +99,42 @@ function start() {
}
autoUpdater.on("update-downloaded", () => {
- win.webContents.send("updateavailable")
+ send("update-available");
});
- // Updates and restarts Viper, if user says yes to do so.
- // Otherwise it'll do it on the next start up.
- ipcMain.on("updatenow", () => {
+ // updates and restarts Viper, if user says yes to do so.
+ // otherwise it'll do it on the next start up.
+ ipcMain.on("update-now", () => {
autoUpdater.quitAndInstall();
})
}
// General events used to handle utils.js stuff without requiring the
// module inside the file that sent the event. {
-ipcMain.on("installmod", () => {
+ipcMain.on("install-mod", () => {
if (cli.hasArgs()) {
- utils.mods.install(cli.param("installmod"))
+ utils.mods.install(cli.param("installmod"));
} else {
dialog.showOpenDialog({properties: ["openFile"]}).then(res => {
if (res.filePaths.length != 0) {
utils.mods.install(res.filePaths[0]);
} else {
- win.webContents.send("setbuttons", true);
+ send("set-buttons", true);
}
- }).catch(err => {console.error(err)})
+ }).catch(err => {error(err)});
}
})
-ipcMain.on("removemod", (event, mod) => {utils.mods.remove(mod)})
-ipcMain.on("togglemod", (event, mod) => {utils.mods.toggle(mod)})
+ipcMain.on("remove-mod", (event, mod) => {utils.mods.remove(mod)});
+ipcMain.on("toggle-mod", (event, mod) => {utils.mods.toggle(mod)});
+
+ipcMain.on("launch-ns", () => {utils.launch()});
+ipcMain.on("launch-vanilla", () => {utils.launch("vanilla")});
-ipcMain.on("launch", (event) => {utils.launch()})
-ipcMain.on("setlang", (event, lang) => {utils.setlang(lang)})
-ipcMain.on("launchVanilla", (event) => {utils.launch("vanilla")})
+ipcMain.on("setlang", (event, lang) => {utils.setlang(lang)});
-ipcMain.on("update", (event) => {utils.update()})
-ipcMain.on("setpathcli", (event) => {utils.setpath()});
+ipcMain.on("update", () => {utils.update()})
+ipcMain.on("setpath-cli", () => {utils.setpath()});
ipcMain.on("setpath", (event, value) => {
if (! value) {
if (! win.isVisible()) {
@@ -134,66 +147,69 @@ ipcMain.on("setpath", (event, value) => {
}
});
-function _sendVersionsInfo() {
- win.webContents.send("version", {
+// retrieves various local version numbers
+function sendVersionsInfo() {
+ send("version", {
ns: utils.getNSVersion(),
tf2: utils.getTF2Version(),
vp: "v" + require("../package.json").version
});
}
-// Sends the version info back to the renderer
-ipcMain.on("getversion", () => {_sendVersionsInfo()});
+// sends the version info back to the renderer
+ipcMain.on("get-version", () => {sendVersionsInfo()});
-// Prints out version info for the CLI
-ipcMain.on("versioncli", () => {
- console.log("Viper: v" + require("../package.json").version);
- console.log("Northstar: " + utils.getNSVersion());
- console.log("Node: " + process.version);
- console.log("Electron: v" + process.versions.electron);
+// prints out version info for the CLI
+ipcMain.on("version-cli", () => {
+ log("Viper: v" + require("../package.json").version);
+ log("Northstar: " + utils.getNSVersion());
+ log("Node: " + process.version);
+ log("Electron: v" + process.versions.electron);
cli.exit();
})
-ipcMain.on("getmods", (event) => {
+// sends installed mods info to renderer
+ipcMain.on("getmods", () => {
let mods = utils.mods.list();
if (mods.all.length > 0) {
- console.log(`${utils.lang("general.mods.installed")} ${mods.all.length}`)
- console.log(`${utils.lang("general.mods.enabled")} ${mods.enabled.length}`)
+ log(`${utils.lang("general.mods.installed")} ${mods.all.length}`);
+ log(`${utils.lang("general.mods.enabled")} ${mods.enabled.length}`);
for (let i = 0; i < mods.enabled.length; i++) {
- console.log(` ${mods.enabled[i].Name} ${mods.enabled[i].Version}`)
+ log(` ${mods.enabled[i].Name} ${mods.enabled[i].Version}`);
}
if (mods.disabled.length > 0) {
- console.log(`${utils.lang("general.mods.disabled")} ${mods.disabled.length}`)
+ log(`${utils.lang("general.mods.disabled")} ${mods.disabled.length}`);
for (let i = 0; i < mods.disabled.length; i++) {
- console.log(` ${mods.disabled[i].Name} ${mods.disabled[i].Version}`)
+ log(` ${mods.disabled[i].Name} ${mods.disabled[i].Version}`);
}
}
cli.exit(0);
} else {
- console.log("No mods installed");
+ log("No mods installed");
cli.exit(0);
}
})
// }
+// allows renderer to set a new renderer
ipcMain.on("newpath", (event, newpath) => {
- if (newpath === false && !win.isVisible()) {
- win.webContents.send("nopathselected");
+ if (newpath === false && ! win.isVisible()) {
+ win.send("no-path-selected");
} else {
_sendVersionsInfo();
if (!win.isVisible()) {
win.show();
}
}
-}); ipcMain.on("wrongpath", (event) => {
- win.webContents.send("wrongpath");
+}); ipcMain.on("wrong-path", () => {
+ win.send("wrong-path");
});
-// Ensures ./ is the config folder where viper.json is located.
+// ensures PWD/CWD is the config folder where viper.json is located
process.chdir(app.getPath("appData"));
-// Starts the GUI or CLI
+// starts the GUI or CLI
if (cli.hasArgs()) {
if (cli.hasParam("updatevp")) {
utils.updatevp(true);
@@ -207,11 +223,11 @@ if (cli.hasArgs()) {
})
}
-// Returns cached requests
+// returns cached requests
ipcMain.on("get-ns-notes", async () => {
- win.webContents.send("ns-notes", await requests.getNsReleaseNotes());
+ win.send("ns-notes", await requests.getNsReleaseNotes());
});
ipcMain.on("get-vp-notes", async () => {
- win.webContents.send("vp-notes", await requests.getVpReleaseNotes());
+ win.send("vp-notes", await requests.getVpReleaseNotes());
});
diff --git a/src/utils.js b/src/utils.js
index e63297e..b69a9a2 100644
--- a/src/utils.js
+++ b/src/utils.js
@@ -42,12 +42,12 @@ var settings = {
// Logs into the dev tools of the renderer
function winLog(msg) {
- ipcMain.emit("winLog", msg, msg);
+ ipcMain.emit("win-log", msg, msg);
}
// Sends an alert to the renderer
function winAlert(msg) {
- ipcMain.emit("winAlert", msg, msg);
+ ipcMain.emit("win-alert", msg, msg);
}
// Creates the settings file with the base settings if it doesn't exist.
@@ -129,7 +129,7 @@ function handleNorthstarUpdating() {
update();
}
} else {
- console.log(lang("cli.autoupdates.noupdate"))
+ console.log(lang("cli.autoupdates.noupdate"));
}
setTimeout(
@@ -187,11 +187,11 @@ async function setpath(win, forcedialog) {
return;
}
if (! fs.existsSync(path.join(res.filePaths[0], "Titanfall2.exe"))) {
- ipcMain.emit("wrongpath");
+ ipcMain.emit("wrong-path");
return;
}
- setGamepath(res.filePaths[0])
+ setGamepath(res.filePaths[0]);
cli.exit();
return;
@@ -254,7 +254,7 @@ function restoreExcludedFiles() {
for (let i = 0; i < settings.excludes.length; i++) {
let exclude = path.join(settings.gamepath + "/" + settings.excludes[i]);
if (fs.existsSync(exclude + ".excluded")) {
- fs.renameSync(exclude + ".excluded", exclude)
+ fs.renameSync(exclude + ".excluded", exclude);
}
}
}
@@ -299,7 +299,7 @@ async function update() {
for (let i = 0; i < settings.excludes.length; i++) {
let exclude = path.join(settings.gamepath + "/" + settings.excludes[i]);
if (fs.existsSync(exclude)) {
- fs.renameSync(exclude, exclude + ".excluded")
+ fs.renameSync(exclude, exclude + ".excluded");
}
}
@@ -326,11 +326,11 @@ async function update() {
fs.createReadStream(settings.zip).pipe(unzip.Extract({path: settings.gamepath}))
.on("finish", () => {
fs.writeFileSync(path.join(settings.gamepath, "ns_version.txt"), latestAvailableVersion);
- ipcMain.emit("getversion");
+ ipcMain.emit("get-version");
restoreExcludedFiles();
- ipcMain.emit("guigetmods");
+ ipcMain.emit("gui-getmods");
ipcMain.emit("ns-update-event", "cli.update.uptodate.short");
winLog(lang("gui.update.finished"));
console.log(lang("cli.update.finished"));
@@ -380,19 +380,21 @@ function updatevp(autoinstall) {
// however it'll be added at some point.
function launch(version) {
if (process.platform == "linux") {
- console.error("error:", lang("cli.launch.linuxerror"))
+ winAlert(lang("cli.launch.linuxerror"));
+ console.error("error:", lang("cli.launch.linuxerror"));
cli.exit(1);
+ return;
}
process.chdir(settings.gamepath);
switch(version) {
case "vanilla":
- console.log(lang("general.launching"), "Vanilla...")
- run(path.join(settings.gamepath + "/Titanfall2.exe"))
+ console.log(lang("general.launching"), "Vanilla...");
+ run(path.join(settings.gamepath + "/Titanfall2.exe"));
break;
default:
- console.log(lang("general.launching"), "Northstar...")
- run(path.join(settings.gamepath + "/NorthstarLauncher.exe"))
+ console.log(lang("general.launching"), "Northstar...");
+ run(path.join(settings.gamepath + "/NorthstarLauncher.exe"));
break;
}
}
@@ -418,8 +420,8 @@ const mods = {
let modpath = path.join(settings.gamepath, "R2Northstar/mods");
if (getNSVersion() == "unknown") {
- winLog(lang("general.notinstalled"))
- console.log("error: " + lang("general.notinstalled"))
+ winLog(lang("general.notinstalled"));
+ console.log("error: " + lang("general.notinstalled"));
cli.exit(1);
return false;
}
@@ -428,7 +430,7 @@ const mods = {
let disabled = [];
if (! fs.existsSync(modpath)) {
- fs.mkdirSync(path.join(modpath), {recursive: true})
+ fs.mkdirSync(path.join(modpath), {recursive: true});
return {
enabled: [],
disabled: [],
@@ -436,7 +438,7 @@ const mods = {
};
}
- files = fs.readdirSync(modpath)
+ files = fs.readdirSync(modpath);
files.forEach((file) => {
if (fs.statSync(path.join(modpath, file)).isDirectory()) {
let modjson = path.join(modpath, file, "mod.json");
@@ -487,8 +489,8 @@ const mods = {
let modpath = path.join(settings.gamepath, "R2Northstar/mods");
if (getNSVersion() == "unknown") {
- winLog(lang("general.notinstalled"))
- console.log("error: " + lang("general.notinstalled"))
+ winLog(lang("general.notinstalled"));
+ console.log("error: " + lang("general.notinstalled"));
cli.exit(1);
return false;
}
@@ -513,11 +515,11 @@ const mods = {
let file = path.join(modpath, "..", "enabledmods.json");
if (! fs.existsSync(modpath)) {
- fs.mkdirSync(path.join(modpath), {recursive: true})
+ fs.mkdirSync(path.join(modpath), {recursive: true});
}
if (! fs.existsSync(file)) {
- fs.writeFileSync(file, "{}")
+ fs.writeFileSync(file, "{}");
}
return {
@@ -528,7 +530,7 @@ const mods = {
names[list[i].Name] = true
}
- fs.writeFileSync(file, JSON.stringify(names))
+ fs.writeFileSync(file, JSON.stringify(names));
},
disable: (mod) => {
let data = JSON.parse(repair(fs.readFileSync(file, "utf8")));
@@ -574,15 +576,15 @@ const mods = {
let modname = mod.replace(/^.*(\\|\/|\:)/, "");
if (getNSVersion() == "unknown") {
- winLog(lang("general.notinstalled"))
- console.log("error: " + lang("general.notinstalled"))
+ winLog(lang("general.notinstalled"));
+ console.log("error: " + lang("general.notinstalled"));
cli.exit(1);
return false;
}
let notamod = () => {
- winLog(lang("gui.mods.notamod"))
- console.log("error: " + lang("cli.mods.notamod"))
+ winLog(lang("gui.mods.notamod"));
+ console.log("error: " + lang("cli.mods.notamod"));
cli.exit(1);
return false;
}
@@ -591,28 +593,28 @@ const mods = {
console.log(lang("cli.mods.installed"));
cli.exit();
- winLog(lang("gui.mods.installedmod"))
+ winLog(lang("gui.mods.installedmod"));
if (modname == "mods") {
- let manifest = path.join(app.getPath("userData"), "Archives/manifest.json")
+ let manifest = path.join(app.getPath("userData"), "Archives/manifest.json");
if (fs.existsSync(manifest)) {
modname = require(manifest).name;
}
}
- ipcMain.emit("installedmod", "", {
+ ipcMain.emit("installed-mod", "", {
name: modname,
malformed: malformed,
});
- ipcMain.emit("guigetmods");
+ ipcMain.emit("gui-getmods");
return true;
}
if (! fs.existsSync(mod)) {return notamod()}
if (fs.statSync(mod).isDirectory()) {
- winLog(lang("gui.mods.installing"))
+ winLog(lang("gui.mods.installing"));
files = fs.readdirSync(mod);
if (fs.existsSync(path.join(mod, "mod.json")) &&
fs.statSync(path.join(mod, "mod.json")).isFile()) {
@@ -622,8 +624,8 @@ const mods = {
}
let copydest = path.join(modpath, modname);
if (typeof destname == "string") {copydest = path.join(modpath, destname)}
- copy(mod, copydest)
- copy(manifestfile, path.join(copydest, "manifest.json"))
+ copy(mod, copydest);
+ copy(manifestfile, path.join(copydest, "manifest.json"));
return installed();
} else {
@@ -634,7 +636,7 @@ const mods = {
if (fs.existsSync(path.join(mod, files[i], "mod.json")) &&
fs.statSync(path.join(mod, files[i], "mod.json")).isFile()) {
- mods.install(path.join(mod, files[i]))
+ mods.install(path.join(mod, files[i]));
if (mods.install(path.join(mod, files[i]))) {return true};
}
}
@@ -645,7 +647,7 @@ const mods = {
return notamod();
} else {
- winLog(lang("gui.mods.extracting"))
+ winLog(lang("gui.mods.extracting"));
let cache = path.join(app.getPath("userData"), "Archives");
if (fs.existsSync(cache)) {
fs.rmSync(cache, {recursive: true});
@@ -677,7 +679,7 @@ const mods = {
}
if (files.length == 0) {
- ipcMain.emit("failedmod");
+ ipcMain.emit("failed-mod");
return notamod();
}
}
@@ -708,12 +710,12 @@ const mods = {
if (fs.existsSync(tmp)) {
if (! fs.statSync(tmp).isDirectory()) {
- fs.rmSync(tmp)
+ fs.rmSync(tmp);
}
} else {
- fs.mkdirSync(tmp)
+ fs.mkdirSync(tmp);
if (fs.existsSync(modlocation)) {
- fs.rmSync(modlocation)
+ fs.rmSync(modlocation);
}
}
@@ -735,8 +737,8 @@ const mods = {
let modpath = path.join(settings.gamepath, "R2Northstar/mods");
if (getNSVersion() == "unknown") {
- winLog(lang("general.notinstalled"))
- console.log("error: " + lang("general.notinstalled"))
+ winLog(lang("general.notinstalled"));
+ console.log("error: " + lang("general.notinstalled"));
cli.exit(1);
return false;
}
@@ -744,19 +746,19 @@ const mods = {
if (mod == "allmods") {
let modlist = mods.list().all;
for (let i = 0; i < modlist.length; i++) {
- mods.remove(modlist[i].Name)
+ mods.remove(modlist[i].Name);
}
return
}
let disabled = path.join(modpath, "disabled");
if (! fs.existsSync(disabled)) {
- fs.mkdirSync(disabled)
+ fs.mkdirSync(disabled);
}
let modName = mods.get(mod).FolderName;
if (! modName) {
- console.log("error: " + lang("cli.mods.cantfind"))
+ console.log("error: " + lang("cli.mods.cantfind"));
cli.exit(1);
return;
}
@@ -776,8 +778,8 @@ const mods = {
fs.rmSync(modPath, {recursive: true});
console.log(lang("cli.mods.removed"));
cli.exit();
- ipcMain.emit("guigetmods");
- ipcMain.emit("removedmod", "", {
+ ipcMain.emit("gui-getmods");
+ ipcMain.emit("removed-mod", "", {
name: mod.replace(/^.*(\\|\/|\:)/, ""),
manifestname: manifestname
});
@@ -794,8 +796,8 @@ const mods = {
// function. However we currently have no need for that.
toggle: (mod, fork) => {
if (getNSVersion() == "unknown") {
- winLog(lang("general.notinstalled"))
- console.log("error: " + lang("general.notinstalled"))
+ winLog(lang("general.notinstalled"));
+ console.log("error: " + lang("general.notinstalled"));
cli.exit(1);
return false;
}
@@ -803,7 +805,7 @@ const mods = {
if (mod == "allmods") {
let modlist = mods.list().all;
for (let i = 0; i < modlist.length; i++) {
- mods.toggle(modlist[i].Name, true)
+ mods.toggle(modlist[i].Name, true);
}
console.log(lang("cli.mods.toggledall"));
@@ -816,17 +818,17 @@ const mods = {
console.log(lang("cli.mods.toggled"));
cli.exit();
}
- ipcMain.emit("guigetmods");
+ ipcMain.emit("gui-getmods");
}
};
setInterval(() => {
if (gamepathExists()) {
- ipcMain.emit("guigetmods");
+ ipcMain.emit("gui-getmods");
} else {
if (fs.existsSync("viper.json")) {
if (settings.gamepath != "") {
- ipcMain.emit("gamepathlost");
+ ipcMain.emit("gamepath-lost");
}
}
}