From 815ba1c1adfe9f0cc72eab68c84b8c648c514703 Mon Sep 17 00:00:00 2001 From: Anna Date: Sun, 25 Apr 2021 15:19:42 -0400 Subject: [PATCH] fix: no longer consider empty custom filters --- NoSoliciting/Filter.Chat.cs | 2 +- NoSoliciting/Filter.PartyFinder.cs | 2 +- NoSoliciting/Interface/Settings.cs | 13 ++++--------- NoSoliciting/PluginConfiguration.cs | 5 +++++ 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/NoSoliciting/Filter.Chat.cs b/NoSoliciting/Filter.Chat.cs index c3863ae..c59f2e7 100644 --- a/NoSoliciting/Filter.Chat.cs +++ b/NoSoliciting/Filter.Chat.cs @@ -16,7 +16,7 @@ namespace NoSoliciting { msg = NoSolUtil.Normalise(msg); - return config.ChatSubstrings.Any(needle => msg.ContainsIgnoreCase(needle)) + return config.ValidChatSubstrings.Any(needle => msg.ContainsIgnoreCase(needle)) || config.CompiledChatRegexes.Any(needle => needle.IsMatch(msg)); } } diff --git a/NoSoliciting/Filter.PartyFinder.cs b/NoSoliciting/Filter.PartyFinder.cs index f9ecb35..2c25309 100644 --- a/NoSoliciting/Filter.PartyFinder.cs +++ b/NoSoliciting/Filter.PartyFinder.cs @@ -16,7 +16,7 @@ namespace NoSoliciting { msg = NoSolUtil.Normalise(msg); - return config.PFSubstrings.Any(needle => msg.ContainsIgnoreCase(needle)) + return config.ValidPfSubstrings.Any(needle => msg.ContainsIgnoreCase(needle)) || config.CompiledPFRegexes.Any(needle => needle.IsMatch(msg)); } } diff --git a/NoSoliciting/Interface/Settings.cs b/NoSoliciting/Interface/Settings.cs index c4f273f..2dedf78 100755 --- a/NoSoliciting/Interface/Settings.cs +++ b/NoSoliciting/Interface/Settings.cs @@ -351,9 +351,7 @@ namespace NoSoliciting.Interface { for (var i = 0; i < substrings.Count; i++) { var input = substrings[i]; if (ImGui.InputText($"##{name}-substring-{i}", ref input, 1_000)) { - if (input.Length != 0) { - substrings[i] = input; - } + substrings[i] = input; } ImGui.SameLine(); @@ -382,15 +380,12 @@ namespace NoSoliciting.Interface { for (var i = 0; i < regexes.Count; i++) { var input = regexes[i]; if (ImGui.InputText($"##{name}-regex-{i}", ref input, 1_000)) { - var valid = true; try { _ = new Regex(input); - } catch (ArgumentException) { - valid = false; - } - - if (valid && input.Length != 0) { + // update if valid regexes[i] = input; + } catch (ArgumentException) { + // ignore } } diff --git a/NoSoliciting/PluginConfiguration.cs b/NoSoliciting/PluginConfiguration.cs index efd3810..53d0ae3 100644 --- a/NoSoliciting/PluginConfiguration.cs +++ b/NoSoliciting/PluginConfiguration.cs @@ -99,6 +99,9 @@ namespace NoSoliciting { public bool ConsiderPrivatePfs { get; set; } + public IEnumerable ValidChatSubstrings => this.ChatSubstrings.Where(needle => !string.IsNullOrWhiteSpace(needle)); + public IEnumerable ValidPfSubstrings => this.PFSubstrings.Where(needle => !string.IsNullOrWhiteSpace(needle)); + public void Initialise(DalamudPluginInterface pi) { this.Interface = pi; this.CompileRegexes(); @@ -110,9 +113,11 @@ namespace NoSoliciting { public void CompileRegexes() { this.CompiledChatRegexes = this.ChatRegexes + .Where(reg => !string.IsNullOrWhiteSpace(reg)) .Select(reg => new Regex(reg, RegexOptions.Compiled)) .ToList(); this.CompiledPFRegexes = this.PFRegexes + .Where(reg => !string.IsNullOrWhiteSpace(reg)) .Select(reg => new Regex(reg, RegexOptions.Compiled)) .ToList(); }