From f8f98578ea237db9dffb28844b2e5e903e57e8e4 Mon Sep 17 00:00:00 2001 From: RaidMax Date: Thu, 4 May 2023 22:40:31 -0500 Subject: [PATCH] fix issue with help page not showing v2 commands --- WebfrontCore/Controllers/HomeController.cs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/WebfrontCore/Controllers/HomeController.cs b/WebfrontCore/Controllers/HomeController.cs index dc5187a93..12261bbc1 100644 --- a/WebfrontCore/Controllers/HomeController.cs +++ b/WebfrontCore/Controllers/HomeController.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using Microsoft.AspNetCore.Diagnostics; using Microsoft.AspNetCore.Mvc; using SharedLibraryCore; @@ -18,13 +19,17 @@ namespace WebfrontCore.Controllers private readonly ITranslationLookup _translationLookup; private readonly ILogger _logger; private readonly IServerDataViewer _serverDataViewer; + private readonly ILookup _pluginTypeNames; public HomeController(ILogger logger, IManager manager, ITranslationLookup translationLookup, - IServerDataViewer serverDataViewer) : base(manager) + IServerDataViewer serverDataViewer, IEnumerable v1Plugins, IEnumerable v2Plugins) : base(manager) { _logger = logger; _translationLookup = translationLookup; _serverDataViewer = serverDataViewer; + _pluginTypeNames = v1Plugins.Select(plugin => (plugin.GetType(), plugin.Name)) + .Concat(v2Plugins.Select(plugin => (plugin.GetType(), plugin.Name))) + .ToLookup(selector => selector.Item1, selector => selector.Name); } public async Task Index(Reference.Game? game = null, @@ -96,9 +101,9 @@ namespace WebfrontCore.Controllers } var pluginType = command.GetType().Assembly.GetTypes() - .FirstOrDefault(type => typeof(IPlugin).IsAssignableFrom(type)); - return Manager.Plugins.FirstOrDefault(plugin => plugin.GetType() == pluginType)?.Name ?? - _translationLookup["WEBFRONT_HELP_COMMAND_NATIVE"]; + .FirstOrDefault(type => typeof(IPlugin).IsAssignableFrom(type) || typeof(IPluginV2).IsAssignableFrom(type)); + + return _pluginTypeNames[pluginType].FirstOrDefault() ?? _translationLookup["WEBFRONT_HELP_COMMAND_NATIVE"]; }) .Select(group => (group.Key, group.AsEnumerable()));