diff --git a/Dalamud/Plugin/PluginDefinition.cs b/Dalamud/Plugin/PluginDefinition.cs index be3ccd2fe..2c3346c89 100644 --- a/Dalamud/Plugin/PluginDefinition.cs +++ b/Dalamud/Plugin/PluginDefinition.cs @@ -43,6 +43,11 @@ namespace Dalamud.Plugin /// public string RepoUrl { get; set; } + /// + /// List of tanks defined on the plugin. + /// + public List Tags { get; set; } + /// /// Whether or not the plugin is hidden in the plugin installer. /// diff --git a/Dalamud/Plugin/PluginInstallerWindow.cs b/Dalamud/Plugin/PluginInstallerWindow.cs index 9bbdf4e09..db7fa089a 100644 --- a/Dalamud/Plugin/PluginInstallerWindow.cs +++ b/Dalamud/Plugin/PluginInstallerWindow.cs @@ -72,6 +72,7 @@ namespace Dalamud.Plugin } else { var didAny = false; + var didAnyWithSearch = false; var hasSearchString = !string.IsNullOrWhiteSpace(this.searchText); foreach (var pluginDefinition in this.dalamud.PluginRepository.PluginMaster) { @@ -85,13 +86,18 @@ namespace Dalamud.Plugin if (pluginDefinition.DalamudApiLevel != PluginManager.DALAMUD_API_LEVEL) continue; + didAny = true; + if (hasSearchString && !(pluginDefinition.Name.ToLowerInvariant().Contains(this.searchText.ToLowerInvariant()) || - string.Equals(pluginDefinition.Author, this.searchText, StringComparison.InvariantCultureIgnoreCase))) { + string.Equals(pluginDefinition.Author, this.searchText, StringComparison.InvariantCultureIgnoreCase) || + pluginDefinition.Tags != null && + pluginDefinition.Tags.Contains(this.searchText.ToLowerInvariant(), StringComparer.InvariantCultureIgnoreCase) + )) { continue; } - didAny = true; + didAnyWithSearch = true; ImGui.PushID(pluginDefinition.InternalName + pluginDefinition.AssemblyVersion); @@ -190,6 +196,8 @@ namespace Dalamud.Plugin if (!didAny) ImGui.TextColored(new Vector4(0.70f, 0.70f, 0.70f, 1.00f), Loc.Localize("InstallerNoCompatible", "No compatible plugins were found :( Please restart your game and try again.")); + else if (!didAnyWithSearch) + ImGui.TextColored(new Vector4(0.7f, 0.7f, 0.7f, 1.0f), Loc.Localize("InstallNoMatching", "No plugins were found matching your search.")); } ImGui.PopStyleVar();