aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/app/main.js19
-rw-r--r--src/app/toast.js6
-rw-r--r--src/index.js5
-rw-r--r--src/lang/de.json6
-rw-r--r--src/lang/en.json2
-rw-r--r--src/lang/es.json6
-rw-r--r--src/lang/fr.json4
7 files changed, 42 insertions, 6 deletions
diff --git a/src/app/main.js b/src/app/main.js
index bd25071..9d59cbc 100644
--- a/src/app/main.js
+++ b/src/app/main.js
@@ -138,6 +138,25 @@ ipcRenderer.on("ns-update-event", (event, key) => {
}
});
+ipcRenderer.on("unknown-error", (event, err) => {
+ new Toast({
+ timeout: 10000,
+ scheme: "error",
+ title: lang("gui.toast.title.unknown_error"),
+ description: lang("gui.toast.desc.unknown_error"),
+ callback: () => {
+ new Toast({
+ timeout: 15000,
+ scheme: "error",
+ title: "",
+ description: err.stack.replaceAll("\n", "<br>")
+ })
+ }
+ })
+
+ console.error(err.stack)
+})
+
let lastselected = "";
function select(entry) {
let entries = document.querySelectorAll("#modsdiv .mod .modtext");
diff --git a/src/app/toast.js b/src/app/toast.js
index 9cb8996..3bc1745 100644
--- a/src/app/toast.js
+++ b/src/app/toast.js
@@ -3,6 +3,7 @@ function Toast(properties) {
fg: "#000000",
bg: "#FFFFFF",
timeout: 3000,
+ callback: () => {},
title: "Untitled Toast",
description: "No description provided for toast",
...properties
@@ -34,7 +35,10 @@ function Toast(properties) {
el.style.background = toast.bg;
el.id = id;
- el.setAttribute("onclick", `dismissToast(${id})`);
+ el.addEventListener("click", () => {
+ dismissToast(id);
+ toast.callback();
+ })
el.innerHTML = `
<div class="title">${toast.title}</div>
diff --git a/src/index.js b/src/index.js
index 02a7a60..ba08056 100644
--- a/src/index.js
+++ b/src/index.js
@@ -74,6 +74,11 @@ function start() {
ipcMain.on("installed-mod", (event, modname) => {send("installed-mod", modname)});
ipcMain.on("no-internet", () => {send("no-internet")});
+ process.on("uncaughtException", (err) => {
+ send("unknown-error", err);
+ console.error(err);
+ });
+
// install calls
ipcMain.on("install-from-path", (event, path) => {utils.mods.install(path)});
ipcMain.on("install-from-url", (event, url) => {utils.mods.installFromURL(url)});
diff --git a/src/lang/de.json b/src/lang/de.json
index c92982b..03ad0c4 100644
--- a/src/lang/de.json
+++ b/src/lang/de.json
@@ -134,11 +134,13 @@
"gui.toast.title.installed": "Mod installiert!",
"gui.toast.title.failed": "Fehler beim Installieren des Mods!",
"gui.toast.title.malformed": "Fehlerhafte Ordnerstruktur!",
- "gui.toast.title.duped": "Duplizierter Ordner name!",
+ "gui.toast.title.duped": "Duplizierter Ordner name!",
+ "gui.toast.title.unknown_error": "Unbekannter Fehler!",
"gui.toast.desc.installed": "wurde installiert!",
"gui.toast.desc.malformed": "hat eine fehlerhafte Ordnerstruktur, falls du der Entwickler bist, solltest du dies beheben.",
"gui.toast.desc.failed": "Ein unbekannter Fehler ist aufgetaucht beim Installieren, die Schuld kann beim Autor liegen oder bei Viper selbst!",
- "gui.toast.desc.duped": "hat mehrere Ordner in sich mit dem selben Namen, wodurch ein duplizierter Ordner ensteht! Falls du der Entwickler bist solltest du dies beheben!",
+ "gui.toast.desc.duped": "hat mehrere Ordner in sich mit dem selben Namen, wodurch ein duplizierter Ordner ensteht! Falls du der Entwickler bist solltest du dies beheben!",
+ "gui.toast.desc.unknown_error": "Ein unbekannter Fehler ist aufgetreten für mehr details drücken! Es wird empfohlen einen Screenshot von der detalierten Fehlernachricht zu machen wenn ein Bug-Report erstellt wird!",
"gui.toast.noInternet.title": "Kein Internet",
"gui.toast.noInternet.desc": "Viper funktioniert möglicherweise nicht korrekt",
diff --git a/src/lang/en.json b/src/lang/en.json
index aadcee0..4ba077a 100644
--- a/src/lang/en.json
+++ b/src/lang/en.json
@@ -136,10 +136,12 @@
"gui.toast.title.duped": "Duplicate folder names!",
"gui.toast.title.failed": "Failed to install",
"gui.toast.title.malformed": "Incorrect folder structure!",
+ "gui.toast.title.unknown_error": "Unknown Error!",
"gui.toast.desc.installed": "has been installed successfully!",
"gui.toast.desc.malformed": "has an incorrect folder structure, if you're the developer, you should fix this.",
"gui.toast.desc.failed": "An unknown error occurred while trying to install the mod. This may be the author's fault, and it may also be Viper's fault.",
"gui.toast.desc.duped": "has multiple mod folders in it, with the same name, causing duplicate folders, if you're the developer, you should fix this.",
+ "gui.toast.desc.unknown_error": "An unknown error occurred, click for more details. You may want to take a screenshot of the detailed error when filing a bug report.",
"gui.toast.noInternet.title": "No Internet",
"gui.toast.noInternet.desc": "Viper may not work properly.",
diff --git a/src/lang/es.json b/src/lang/es.json
index 68c15a4..bf109c1 100644
--- a/src/lang/es.json
+++ b/src/lang/es.json
@@ -130,11 +130,13 @@
"gui.toast.title.installed": "¡Modificación instalada!",
"gui.toast.title.failed": "¡Falló al instalar!",
"gui.toast.title.malformed": "¡Estructura de las carpetas incorrecta!",
- "gui.toast.title.duped": "tiene varias carpetas de la modificación con el mismo nombre, lo que genera carpetas duplicadas. Si eres el desarrollador, deberías arreglar esto.",
+ "gui.toast.title.duped": "tiene varias carpetas de la modificación con el mismo nombre, lo que genera carpetas duplicadas. Si eres el desarrollador, deberías arreglar esto.",
+ "gui.toast.title.unknown_error": "¡Error desconocido!",
"gui.toast.desc.installed": "¡Ha sido instalado exitosamente!",
"gui.toast.desc.malformed": "tiene una estructura de carpetas incorrecta, si usted es el desarrollador, debe corregir esto.",
"gui.toast.desc.failed": "Se produjo un error desconocido al intentar instalar la modificación. Esto puede ser culpa del autor de la modificación, y también puede ser culpa de Viper.",
- "gui.toast.desc.duped": "¡Nombres de las carpetas duplicados!",
+ "gui.toast.desc.duped": "¡Nombres de las carpetas duplicados!",
+ "gui.toast.desc.unknown_error": "Ha ocurrido un error desconocido, presiona para más detalles. Recomendamos que tomes una captura de pantalla del error con sus detalles cuando reportes un error.",
"gui.server.player": "jugador",
"gui.server.players": "jugadores",
diff --git a/src/lang/fr.json b/src/lang/fr.json
index 069c3d5..6481a8b 100644
--- a/src/lang/fr.json
+++ b/src/lang/fr.json
@@ -133,13 +133,15 @@
"gui.gamepath.lost": "Le chemin du jeu ne peut être trouvé / n'existe plus !\n\nVeuillez vérifier que votre disqué est correctement monté, ou, si vous avez déplacé votre jeu, que vous avez mis à jour le chemin du dossier.\n\nViper ne fonctionnera pas correctement jusqu'au prochain redémarrage.",
"gui.toast.title.installed": "Mod installé !",
+ "gui.toast.title.duped": "Nom de dossier dupliqué !",
"gui.toast.title.failed": "L'installation a échoué",
"gui.toast.title.malformed": "La structure du dossier du mod est incorrecte.",
- "gui.toast.title.duped": "Nom de dossier dupliqué !",
+ "gui.toast.title.unknown_error": "Erreur inconnue",
"gui.toast.desc.installed": "a été installé avec succès !",
"gui.toast.desc.malformed": "a une structure de dossier incorrecte ; si vous êtes son développeur, vous devriez réparer ça.",
"gui.toast.desc.failed": "Une erreur inconnue est survenue lors de l'installation du mod. Cela peut être du ressort de l'auteur du mod ou de Viper.",
"gui.toast.desc.duped": "contient plusieurs dossiers ayant le même nom ; si vous êtes le développer, vous devriez réparer ceci.",
+ "gui.toast.desc.unknown_error": "Une erreur inconnue est survenue, cliquez pour plus de détails. Vous devriez prendre une capture d'écran de l'erreur si vous comptez créer un ticket.",
"gui.toast.noInternet.title": "Pas de connexion Internet",
"gui.toast.noInternet.desc": "Viper ne fonctionnera pas correctement tant que la connexion n'est pas rétablie.",