diff --git a/Il2CppInspector.CLI/Program.cs b/Il2CppInspector.CLI/Program.cs index 2e591d2..b51d978 100644 --- a/Il2CppInspector.CLI/Program.cs +++ b/Il2CppInspector.CLI/Program.cs @@ -234,7 +234,7 @@ namespace Il2CppInspector.CLI // Set plugin handlers PluginManager.ErrorHandler += (s, e) => { Console.Error.WriteLine($"The plugin {e.Error.Plugin.Name} encountered an error while executing {e.Error.Operation}: {e.Error.Exception.Message}." - + " The application will continue but may not behave as expected."); + + " Plugin has been disabled."); }; PluginManager.StatusHandler += (s, e) => { diff --git a/Il2CppInspector.Common/Plugins/PluginManager.cs b/Il2CppInspector.Common/Plugins/PluginManager.cs index 8864103..22a15eb 100644 --- a/Il2CppInspector.Common/Plugins/PluginManager.cs +++ b/Il2CppInspector.Common/Plugins/PluginManager.cs @@ -262,6 +262,10 @@ namespace Il2CppInspector break; } catch (Exception ex) { + // Disable failing plugin + Plugins[plugin.Id].Enabled = false; + + // Forward error to error handler eventInfo.Error = new PluginErrorEventArgs { Plugin = plugin, Exception = ex, Operation = typeof(I).Name }; ErrorHandler?.Invoke(AsInstance, eventInfo); }