From b39f62161758cb9c81e590bf24c432f0eb18f829 Mon Sep 17 00:00:00 2001 From: Anna Date: Tue, 25 Aug 2020 07:50:23 -0400 Subject: [PATCH] refactor: short-circuit for faster matching --- NoSoliciting/Filter.cs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/NoSoliciting/Filter.cs b/NoSoliciting/Filter.cs index d66768b..9db1436 100644 --- a/NoSoliciting/Filter.cs +++ b/NoSoliciting/Filter.cs @@ -47,16 +47,17 @@ namespace NoSoliciting { bool filter = false; + filter = filter || (this.plugin.Config.FilterHugeItemLevelPFs && listing.minimumItemLevel > FilterUtil.MaxItemLevelAttainable(this.plugin.Interface.Data)); + foreach (Definition def in this.plugin.Definitions.PartyFinder.Values) { - filter |= this.plugin.Config.FilterStatus.TryGetValue(def.Id, out bool enabled) + filter = filter || (this.plugin.Config.FilterStatus.TryGetValue(def.Id, out bool enabled) && enabled - && def.Matches(XivChatType.None, desc); + && def.Matches(XivChatType.None, desc)); } - filter |= this.plugin.Config.FilterHugeItemLevelPFs && listing.minimumItemLevel > FilterUtil.MaxItemLevelAttainable(this.plugin.Interface.Data); // check for custom filters if enabled - filter |= this.plugin.Config.CustomPFFilter && PartyFinder.MatchesCustomFilters(desc, this.plugin.Config); + filter = filter || (this.plugin.Config.CustomPFFilter && PartyFinder.MatchesCustomFilters(desc, this.plugin.Config)); if (!filter) { continue; @@ -98,13 +99,13 @@ namespace NoSoliciting { bool filter = false; foreach (Definition def in this.plugin.Definitions.Chat.Values) { - filter |= this.plugin.Config.FilterStatus.TryGetValue(def.Id, out bool enabled) + filter = filter || (this.plugin.Config.FilterStatus.TryGetValue(def.Id, out bool enabled) && enabled - && def.Matches(type, text); + && def.Matches(type, text)); } // check for custom filters if enabled - filter |= this.plugin.Config.CustomChatFilter && Chat.MatchesCustomFilters(text, this.plugin.Config); + filter = filter || (this.plugin.Config.CustomChatFilter && Chat.MatchesCustomFilters(text, this.plugin.Config)); if (!filter) { return;