diff --git a/CringePlugins/Ui/PluginListComponent.cs b/CringePlugins/Ui/PluginListComponent.cs index 5a17c09..bd18104 100644 --- a/CringePlugins/Ui/PluginListComponent.cs +++ b/CringePlugins/Ui/PluginListComponent.cs @@ -5,6 +5,7 @@ using CringePlugins.Abstractions; using CringePlugins.Config; using CringePlugins.Loader; using CringePlugins.Resolver; +using CringePlugins.Utils; using ImGuiNET; using NLog; using NuGet; @@ -96,8 +97,18 @@ internal class PluginListComponent : IRenderComponent TableNextColumn(); BeginDisabled(!plugin.HasConfig); + if (plugin.WrappedInstance?.LastException is not null) + PushStyleColor(plugin.HasConfig ? ImGuiCol.Text : ImGuiCol.TextDisabled, + plugin.HasConfig ? Color.Red.ToFloat4() : Color.DarkRed.ToFloat4()); if (Selectable(plugin.Metadata.Name, false, ImGuiSelectableFlags.SpanAllColumns)) plugin.OpenConfig(); + if (plugin.WrappedInstance?.LastException is not null) + { + PopStyleColor(); + if (IsItemHovered(ImGuiHoveredFlags.ForTooltip)) + SetTooltip( + $"{plugin.WrappedInstance.LastException.GetType()}: {plugin.WrappedInstance.LastException.Message}"); + } EndDisabled(); TableNextColumn(); Text(plugin.Metadata.Version.ToString()); diff --git a/CringePlugins/Utils/ColorExtensions.cs b/CringePlugins/Utils/ColorExtensions.cs new file mode 100644 index 0000000..036ea90 --- /dev/null +++ b/CringePlugins/Utils/ColorExtensions.cs @@ -0,0 +1,9 @@ +using System.Numerics; + +namespace CringePlugins.Utils; + +public static class ColorExtensions +{ + public static Vector4 ToFloat4(this Color color) => + new((float)color.R / 255, (float)color.G / 255, (float)color.B / 255, (float)color.A / 255); +} \ No newline at end of file