From 8e28a60d4b994f7d87a873476f62e563f9679d8f Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Mon, 21 Nov 2022 06:27:23 +0100 Subject: [PATCH] finally fix config backward-compatibility --- PlayerTags/Data/Tag.cs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/PlayerTags/Data/Tag.cs b/PlayerTags/Data/Tag.cs index a688346..d802e8d 100644 --- a/PlayerTags/Data/Tag.cs +++ b/PlayerTags/Data/Tag.cs @@ -77,7 +77,7 @@ namespace PlayerTags.Data { m_Inheritables = new Dictionary(); - var inheritableFields = GetType().GetFields(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic).Where(field => typeof(IInheritable).IsAssignableFrom(field.FieldType)); + var inheritableFields = GetType().GetFields().Where(field => typeof(IInheritable).IsAssignableFrom(field.FieldType)); foreach (var inheritableField in inheritableFields) { IInheritable? inheritable = inheritableField.GetValue(this) as IInheritable; @@ -281,11 +281,25 @@ namespace PlayerTags.Data return true; } + private static readonly Dictionary ObsulteInheritableStringMap = new() + { + { "IsIconVisibleInChat", nameof(IsRoleIconVisibleInChat) }, + { "IsIconVisibleInNameplate", nameof(IsRoleIconVisibleInNameplates) } + }; + private static string FixObsuleteInheritableStringName(string name) + { + if (ObsulteInheritableStringMap.ContainsKey(name)) + return ObsulteInheritableStringMap[name]; + else + return name; + } + public void SetChanges(IEnumerable> changes) { foreach ((var name, var inheritableData) in changes) { - Inheritables[name].SetData(inheritableData); + var namefixed = FixObsuleteInheritableStringName(name); + Inheritables[namefixed].SetData(inheritableData); } }