aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/crashHandler.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/crashHandler.ts')
-rw-r--r--src/plugins/crashHandler.ts19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/plugins/crashHandler.ts b/src/plugins/crashHandler.ts
index 6f030b1..79db782 100644
--- a/src/plugins/crashHandler.ts
+++ b/src/plugins/crashHandler.ts
@@ -41,6 +41,8 @@ const settings = definePluginSettings({
}
});
+let crashCount: number = 0;
+
export default definePlugin({
name: "CrashHandler",
description: "Utility plugin for handling and possibly recovering from Crashes without a restart",
@@ -69,8 +71,22 @@ export default definePlugin({
],
handleCrash(_this: ReactElement & { forceUpdate: () => void; }) {
+ if (++crashCount > 5) {
+ try {
+ showNotification({
+ color: "#eed202",
+ title: "Discord has crashed!",
+ body: "Awn :( Discord has crashed more than five times, not attempting to recover.",
+ });
+ } catch { }
+
+ return false;
+ }
+
+ setTimeout(() => crashCount--, 60_000);
+
try {
- maybePromptToUpdate("Uh oh, Discord has just crashed... but good news, there is a Vencord update available that might fix this issue! Would you like to update now?", true);
+ if (crashCount === 1) maybePromptToUpdate("Uh oh, Discord has just crashed... but good news, there is a Vencord update available that might fix this issue! Would you like to update now?", true);
if (settings.store.attemptToPreventCrashes) {
this.handlePreventCrash(_this);
@@ -80,6 +96,7 @@ export default definePlugin({
return false;
} catch (err) {
CrashHandlerLogger.error("Failed to handle crash", err);
+ return false;
}
},