From 903001aa689597d99c451c632d7c83756046da3f Mon Sep 17 00:00:00 2001 From: Chomp Date: Mon, 24 Feb 2025 16:29:06 +0000 Subject: [PATCH] Fixed blocking check failure --- Libraries/Core/Helpers/BotGeneratorHelper.cs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Libraries/Core/Helpers/BotGeneratorHelper.cs b/Libraries/Core/Helpers/BotGeneratorHelper.cs index 949f6cbd..42ca8e44 100644 --- a/Libraries/Core/Helpers/BotGeneratorHelper.cs +++ b/Libraries/Core/Helpers/BotGeneratorHelper.cs @@ -390,10 +390,9 @@ public class BotGeneratorHelper( } // Does an equipped item have a property that blocks the desired item - check for prop "BlocksX" .e.g BlocksEarpiece / BlocksFaceCover + var blockingPropertyName = $"blocks{equipmentSlot}"; var templateItems = equippedItemsDb.ToList(); - var blockingItem = templateItems.FirstOrDefault( - item => item?.Properties?.GetType().GetProperties().FirstOrDefault(x => string.Equals(x.Name.ToLower(), $"blocks{equipmentSlot}", StringComparison.OrdinalIgnoreCase))?.GetValue(item) is not null - ); + var blockingItem = templateItems.FirstOrDefault(item => HasBlockingProperty(item, blockingPropertyName)); if (blockingItem is not null) // this.logger.warning(`1 incompatibility found between - {itemToEquip[1]._name} and {blockingItem._name} - {equipmentSlot}`); { @@ -504,6 +503,14 @@ public class BotGeneratorHelper( }; } + protected bool HasBlockingProperty(TemplateItem? item, string blockingPropertyName) + { + return item?.Properties?.GetType().GetProperties() + .FirstOrDefault(x =>x.PropertyType == typeof(bool) + && x.Name.ToLower() == blockingPropertyName + && (bool)x.GetValue(item.Properties)) is not null; + } + /// /// Convert a bots role to the equipment role used in config/bot.json ///