Fix Crash Loops and prevent metrics (#580)

This commit is contained in:
Nuckyz 2023-03-06 18:54:01 -03:00 committed by GitHub
parent 36c27f1111
commit 7322c3af04
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 31 additions and 1 deletions

@ -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 {
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);
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 {
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;
}
},

@ -38,6 +38,19 @@ export default definePlugin({
match: /window\.DiscordSentry=function.+\}\(\)/,
replace: "",
}
},
{
find: ".METRICS,",
replacement: [
{
match: /this\._intervalId.+?12e4\)/,
replace: ""
},
{
match: /(?<=increment=function\(\i\){)/,
replace: "return;"
}
]
}
]
});