1 files changed, 31 insertions, 0 deletions
diff --git a/ReferenceClientProxyImplementation/Patches/Implementations/JSPatches/DisableSentryPatch.cs b/ReferenceClientProxyImplementation/Patches/Implementations/JSPatches/DisableSentryPatch.cs
new file mode 100644
index 0000000..7424a32
--- /dev/null
+++ b/ReferenceClientProxyImplementation/Patches/Implementations/JSPatches/DisableSentryPatch.cs
@@ -0,0 +1,31 @@
+using System.Text;
+using System.Text.RegularExpressions;
+
+namespace ReferenceClientProxyImplementation.Patches.Implementations.JSPatches;
+
+public partial class DisableSentryPatch : IPatch {
+ public int GetOrder() => 0;
+
+ public string GetName() => "JS: Disable sentry";
+ public bool Applies(string relativeName, byte[] content) => relativeName.StartsWith("assets/sentry.") && relativeName.EndsWith(".js");
+
+ public async Task<byte[]> Execute(string _, byte[] content) {
+ var stringContent = Encoding.UTF8.GetString(content);
+
+ stringContent = SentryInitRegex().Replace(stringContent, "window.DiscordSentry = undefined;");
+ stringContent = SentryConsoleHookRegex().Replace(
+ stringContent,
+ m => m.Value.Replace(" &&", " && false &&")
+ );
+
+ return Encoding.UTF8.GetBytes(stringContent);
+ }
+
+ [GeneratedRegex(@"window\.DiscordSentry =", RegexOptions.Compiled)]
+ private static partial Regex SentryInitRegex();
+
+ // hopefully specific enough?
+ [GeneratedRegex(@"function ([a-zA-Z0-9]+)\(\) {\n\s+""console"" in ([a-zA-Z0-9]+) &&\n\s+([a-zA-Z0-9]+)\.forEach\(", RegexOptions.Compiled)]
+ private static partial Regex SentryConsoleHookRegex();
+
+}
\ No newline at end of file
|