diff --git a/src/AcDream.Core/Plugins/PluginDiscovery.cs b/src/AcDream.Core/Plugins/PluginDiscovery.cs index 616616c..16b524d 100644 --- a/src/AcDream.Core/Plugins/PluginDiscovery.cs +++ b/src/AcDream.Core/Plugins/PluginDiscovery.cs @@ -3,7 +3,7 @@ namespace AcDream.Core.Plugins; public sealed record PluginDiscoveryResult( string PluginDirectory, PluginManifest? Manifest, - string? Error) + Exception? Error) { public bool Success => Manifest is not null && Error is null; } @@ -16,7 +16,7 @@ public static class PluginDiscovery return Array.Empty(); var results = new List(); - foreach (var subdir in Directory.EnumerateDirectories(pluginsRootDirectory)) + foreach (var subdir in Directory.EnumerateDirectories(pluginsRootDirectory).OrderBy(p => p, StringComparer.Ordinal)) { var manifestPath = Path.Combine(subdir, "plugin.json"); if (!File.Exists(manifestPath)) @@ -30,7 +30,7 @@ public static class PluginDiscovery } catch (Exception ex) { - results.Add(new PluginDiscoveryResult(subdir, null, ex.Message)); + results.Add(new PluginDiscoveryResult(subdir, null, ex)); } } return results;