aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitExample <git@example.com>2022-02-05 17:14:46 +0100
committerGitExample <git@example.com>2022-02-05 17:14:46 +0100
commit651c0b32d37dd03c581dc5c9cac8ec293816a636 (patch)
tree0905a44b87cc523c54cc5a1ca8b674bbdb2f2c24
parent633433e14f0e6d489090aac81cbb27d05284055c (diff)
downloadViper-651c0b32d37dd03c581dc5c9cac8ec293816a636.tar.gz
Viper-651c0b32d37dd03c581dc5c9cac8ec293816a636.zip
button now updates when mod is removed
I also fixed the archive not being extracted properly for some reason, the setTimeout() seems to solve it, no clue if it needs to be adjusted in the future or replaced with something that works 100% of the time, I'm not even quite sure why it happens in the first place.
-rw-r--r--src/app/browser.js23
-rw-r--r--src/index.js4
-rw-r--r--src/utils.js37
3 files changed, 42 insertions, 22 deletions
diff --git a/src/app/browser.js b/src/app/browser.js
index a9a36f9..ff9ec87 100644
--- a/src/app/browser.js
+++ b/src/app/browser.js
@@ -55,6 +55,17 @@ var Browser = {
for (let i = 0; i < res.length; i++) {
new BrowserElFromObj(res[i].item);
}
+ },
+ setbutton: (mod, string) => {
+ mod = normalize(mod);
+ console.log(mod)
+ if (document.getElementById(mod)) {
+ let elems = document.querySelectorAll(`#${mod}`);
+
+ for (let i = 0; i < elems.length; i++) {
+ elems[i].querySelector(".text button").innerHTML = string;
+ }
+ }
}
}; Browser.toggle()
Browser.loadfront()
@@ -123,13 +134,15 @@ function BrowserEl(properties) {
`
}
-ipcRenderer.on("installedmod", (event, modname) => {
+ipcRenderer.on("removedmod", (event, modname) => {
setButtons(true);
- modname = normalize(modname);
+ console.log("test" + modname)
+ Browser.setbutton(modname, lang("gui.browser.install"));
+})
- if (document.getElementById(modname)) {
- document.getElementById(modname).querySelector(".text button").innerHTML = lang("gui.browser.reinstall");
- }
+ipcRenderer.on("installedmod", (event, modname) => {
+ setButtons(true);
+ Browser.setbutton(modname, lang("gui.browser.reinstall"));
})
function normalize(items) {
diff --git a/src/index.js b/src/index.js
index a847020..a0cb4db 100644
--- a/src/index.js
+++ b/src/index.js
@@ -47,8 +47,10 @@ function start() {
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())});
- ipcMain.on("installedmod", (event, modname) => {console.log(modname);win.webContents.send("installedmod", modname)})
win.webContents.on("dom-ready", () => {
win.webContents.send("mods", utils.mods.list());
diff --git a/src/utils.js b/src/utils.js
index 1456467..39e86be 100644
--- a/src/utils.js
+++ b/src/utils.js
@@ -413,6 +413,8 @@ const mods = {
// inside the zip or folder to see if buried in another folder or
// not, as sometimes that's the case.
install: (mod) => {
+ let modname = mod.replace(/^.*(\\|\/|\:)/, "");
+
if (getNSVersion() == "unknown") {
winLog(lang("general.notinstalled"))
console.log("error: " + lang("general.notinstalled"))
@@ -432,6 +434,8 @@ const mods = {
cli.exit();
winLog(lang("gui.mods.installedmod"))
+
+ ipcMain.emit("installedmod", "", modname);
ipcMain.emit("guigetmods");
return true;
}
@@ -444,9 +448,7 @@ const mods = {
if (fs.existsSync(path.join(mod, "mod.json")) &&
fs.statSync(path.join(mod, "mod.json")).isFile()) {
- let modname = mod.replace(/^.*(\\|\/|\:)/, "");
copy(mod, path.join(modpath, modname))
- ipcMain.emit("installedmod", "", modname);
return installed();
} else {
@@ -479,23 +481,25 @@ const mods = {
try {
fs.createReadStream(mod).pipe(unzip.Extract({path: cache}))
.on("finish", () => {
- if (fs.existsSync(path.join(cache, "manifest.json"))) {
- files = fs.readdirSync(path.join(cache, "mods"));
-
- for (let i = 0; i < files.length; i++) {
- let mod = path.join(cache, "mods", files[i]);
- if (fs.statSync(mod).isDirectory()) {
- setTimeout(() => {
- if (mods.install(mod)) {return true};
- }, 1000)
+ setTimeout(() => {
+ if (fs.existsSync(path.join(cache, "manifest.json"))) {
+ files = fs.readdirSync(path.join(cache, "mods"));
+
+ for (let i = 0; i < files.length; i++) {
+ let mod = path.join(cache, "mods", files[i]);
+ if (fs.statSync(mod).isDirectory()) {
+ setTimeout(() => {
+ if (mods.install(mod)) {return true};
+ }, 1000)
+ }
}
+ return notamod();
}
- return notamod();
- }
- if (mods.install(cache)) {
- installed();
- } else {return notamod()}
+ if (mods.install(cache)) {
+ installed();
+ } else {return notamod()}
+ }, 1000)
});
}catch(err) {return notamod()}
}
@@ -582,6 +586,7 @@ const mods = {
console.log(lang("cli.mods.removed"));
cli.exit();
ipcMain.emit("guigetmods");
+ ipcMain.emit("removedmod", "", mod.replace(/^.*(\\|\/|\:)/, ""));
} else {
cli.exit(1);
}