Phase 6: Fix swallowed exceptions and cleanup unused usings
- Add debug logging to all empty catch blocks in DecalHarmonyClean.cs setup methods (prefix method catches intentionally stay silent to never break other plugins) - Add error logging to VtankControl.VtSetSetting catch - Add logging to DecalPatchMethods.ProcessInterceptedMessage catch - Remove unused usings from PluginCore.cs (System.Diagnostics, System.Drawing, System.Text, System.Text.RegularExpressions) - Flatten redundant nested try/catch in PatchPluginHost Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
0713e96a99
commit
64e690f625
4 changed files with 38 additions and 40 deletions
|
|
@ -62,9 +62,9 @@ namespace MosswartMassacre
|
||||||
// PATHWAY 2: Target Host.Actions.AddChatText (what our plugin uses)
|
// PATHWAY 2: Target Host.Actions.AddChatText (what our plugin uses)
|
||||||
PatchHostActions();
|
PatchHostActions();
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
// Only log if completely unable to apply any patches
|
AddDebugLog($"ApplyDecalPatches failed: {ex.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -92,13 +92,15 @@ namespace MosswartMassacre
|
||||||
{
|
{
|
||||||
ApplySinglePatch(method, prefixMethodName);
|
ApplySinglePatch(method, prefixMethodName);
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
AddDebugLog($"PatchHooksWrapper single patch failed ({prefixMethodName}): {ex.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
AddDebugLog($"PatchHooksWrapper failed: {ex.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -139,16 +141,18 @@ namespace MosswartMassacre
|
||||||
{
|
{
|
||||||
ApplySinglePatch(method, prefixMethodName);
|
ApplySinglePatch(method, prefixMethodName);
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
AddDebugLog($"PatchHostActions single patch failed ({prefixMethodName}): {ex.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// PATHWAY 3: Try to patch at PluginHost level
|
// PATHWAY 3: Try to patch at PluginHost level
|
||||||
PatchPluginHost();
|
PatchPluginHost();
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
AddDebugLog($"PatchHostActions failed: {ex.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -159,36 +163,31 @@ namespace MosswartMassacre
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Try to patch CoreManager.Current.Actions if it's different
|
var coreActions = CoreManager.Current?.Actions;
|
||||||
try
|
if (coreActions != null && coreActions != PluginCore.MyHost?.Actions)
|
||||||
{
|
{
|
||||||
var coreActions = CoreManager.Current?.Actions;
|
var coreActionsMethods = coreActions.GetType().GetMethods(BindingFlags.Public | BindingFlags.Instance)
|
||||||
if (coreActions != null && coreActions != PluginCore.MyHost?.Actions)
|
.Where(m => m.Name == "AddChatText" || m.Name == "AddChatTextRaw" || m.Name == "AddStatusText").ToArray();
|
||||||
|
|
||||||
|
foreach (var method in coreActionsMethods)
|
||||||
{
|
{
|
||||||
var coreActionsMethods = coreActions.GetType().GetMethods(BindingFlags.Public | BindingFlags.Instance)
|
var parameters = method.GetParameters();
|
||||||
.Where(m => m.Name == "AddChatText" || m.Name == "AddChatTextRaw" || m.Name == "AddStatusText").ToArray();
|
|
||||||
|
try
|
||||||
foreach (var method in coreActionsMethods)
|
|
||||||
{
|
{
|
||||||
var parameters = method.GetParameters();
|
string prefixMethodName = "AddChatTextPrefixCore" + parameters.Length;
|
||||||
|
ApplySinglePatch(method, prefixMethodName);
|
||||||
try
|
}
|
||||||
{
|
catch (Exception ex)
|
||||||
string prefixMethodName = "AddChatTextPrefixCore" + parameters.Length;
|
{
|
||||||
ApplySinglePatch(method, prefixMethodName);
|
AddDebugLog($"PatchPluginHost single patch failed: {ex.Message}");
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
AddDebugLog($"PatchPluginHost failed: {ex.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -200,9 +199,9 @@ namespace MosswartMassacre
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Get our prefix method
|
// Get our prefix method
|
||||||
var prefixMethod = typeof(DecalPatchMethods).GetMethod(prefixMethodName,
|
var prefixMethod = typeof(DecalPatchMethods).GetMethod(prefixMethodName,
|
||||||
BindingFlags.Static | BindingFlags.Public);
|
BindingFlags.Static | BindingFlags.Public);
|
||||||
|
|
||||||
if (prefixMethod != null)
|
if (prefixMethod != null)
|
||||||
{
|
{
|
||||||
// Use UtilityBelt's exact approach
|
// Use UtilityBelt's exact approach
|
||||||
|
|
@ -210,8 +209,9 @@ namespace MosswartMassacre
|
||||||
patchesApplied = true;
|
patchesApplied = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
AddDebugLog($"ApplySinglePatch failed ({prefixMethodName}): {ex.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -244,8 +244,9 @@ namespace MosswartMassacre
|
||||||
}
|
}
|
||||||
patchesApplied = false;
|
patchesApplied = false;
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
AddDebugLog($"Cleanup failed: {ex.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -390,8 +391,9 @@ namespace MosswartMassacre
|
||||||
Task.Run(() => WebSocket.SendChatTextAsync(color, text));
|
Task.Run(() => WebSocket.SendChatTextAsync(color, text));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
DecalHarmonyClean.AddDebugLog($"ProcessInterceptedMessage failed: {ex.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,9 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
|
||||||
using System.Drawing;
|
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Text;
|
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Timers;
|
using System.Timers;
|
||||||
using Decal.Adapter;
|
using Decal.Adapter;
|
||||||
|
|
|
||||||
|
|
@ -72,9 +72,9 @@ namespace MosswartMassacre
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
// Swallow any errors and signal failure
|
PluginCore.WriteToChat($"[VTank] SetSetting error ({setting}): {ex.Message}");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue