From 1c0564b3f4f5525d47b156d4acd541a38a7c7e96 Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Fri, 2 Sep 2022 15:37:53 +0200 Subject: [PATCH] some more work moving settings around --- .../Configuration/PluginConfiguration.cs | 123 ++++++++++-------- .../Configuration/PluginConfigurationUI.cs | 97 ++++++++------ PlayerTags/Data/ActivityContext.cs | 4 +- PlayerTags/Features/ChatTagTargetFeature.cs | 2 +- PlayerTags/Features/LinkSelfInChatFeature.cs | 2 +- .../Features/NameplateTagTargetFeature.cs | 12 +- 6 files changed, 133 insertions(+), 107 deletions(-) diff --git a/PlayerTags/Configuration/PluginConfiguration.cs b/PlayerTags/Configuration/PluginConfiguration.cs index 288d169..aa5e778 100644 --- a/PlayerTags/Configuration/PluginConfiguration.cs +++ b/PlayerTags/Configuration/PluginConfiguration.cs @@ -17,63 +17,14 @@ namespace PlayerTags.Configuration private const NameplateFreeCompanyVisibility DefaultNameplateFreeCompanyVisibility = Data.NameplateFreeCompanyVisibility.Default; private const NameplateTitleVisibility DefaultNameplateTitleVisibility = Data.NameplateTitleVisibility.WhenHasTags; private const NameplateTitlePosition DefaultNameplateTitlePosition = Data.NameplateTitlePosition.AlwaysAboveName; + private const bool DefaultIsApplyTagsToAllChatMessagesEnabled = true; - [JsonProperty("NameplateFreeCompanyVisibilityV2")] - public Dictionary NameplateFreeCompanyVisibility = new Dictionary() + public Dictionary GeneralOptions = new Dictionary() { - { ActivityContext.None, DefaultNameplateFreeCompanyVisibility }, - { ActivityContext.PveDuty, DefaultNameplateFreeCompanyVisibility }, - { ActivityContext.PvpDuty, DefaultNameplateFreeCompanyVisibility } + { ActivityContext.None, new GeneralOptionsClass() }, + { ActivityContext.PveDuty, new GeneralOptionsClass() }, + { ActivityContext.PvpDuty, new GeneralOptionsClass() } }; - [JsonProperty("NameplateTitleVisibilityV2")] - public Dictionary NameplateTitleVisibility = new Dictionary() - { - { ActivityContext.None, DefaultNameplateTitleVisibility }, - { ActivityContext.PveDuty, DefaultNameplateTitleVisibility }, - { ActivityContext.PvpDuty, DefaultNameplateTitleVisibility } - }; - [JsonProperty("NameplateTitlePositionV2")] - public Dictionary NameplateTitlePosition = new Dictionary() - { - { ActivityContext.None, DefaultNameplateTitlePosition }, - { ActivityContext.PveDuty, DefaultNameplateTitlePosition }, - { ActivityContext.PvpDuty, DefaultNameplateTitlePosition } - }; - - #region Obsulate Properties - - [JsonProperty("NameplateFreeCompanyVisibility"), Obsolete] - private NameplateFreeCompanyVisibility NameplateFreeCompanyVisibilityV1 - { - set - { - NameplateFreeCompanyVisibility[ActivityContext.None] = value; - NameplateFreeCompanyVisibility[ActivityContext.PveDuty] = value; - NameplateFreeCompanyVisibility[ActivityContext.PvpDuty] = value; - } - } - [JsonProperty("NameplateTitleVisibility"), Obsolete] - public NameplateTitleVisibility NameplateTitleVisibilityV1 - { - set - { - NameplateTitleVisibility[ActivityContext.None] = value; - NameplateTitleVisibility[ActivityContext.PveDuty] = value; - NameplateTitleVisibility[ActivityContext.PvpDuty] = value; - } - } - [JsonProperty("NameplateTitlePosition"), Obsolete] - public NameplateTitlePosition NameplateTitlePositionV1 - { - set - { - NameplateTitlePosition[ActivityContext.None] = value; - NameplateTitlePosition[ActivityContext.PveDuty] = value; - NameplateTitlePosition[ActivityContext.PvpDuty] = value; - } - } - - #endregion public bool IsPlayerNameRandomlyGenerated = false; public bool IsCustomTagsContextMenuEnabled = true; @@ -85,8 +36,6 @@ namespace PlayerTags.Configuration public bool IsPlayersTabAllianceVisible = true; public bool IsPlayersTabEnemiesVisible = true; public bool IsPlayersTabOthersVisible = false; - public bool IsLinkSelfInChatEnabled = false; - public bool IsApplyTagsToAllChatMessagesEnabled = true; [JsonProperty(TypeNameHandling = TypeNameHandling.None, ItemTypeNameHandling = TypeNameHandling.None)] public Dictionary AllTagsChanges = new Dictionary(); @@ -118,6 +67,58 @@ namespace PlayerTags.Configuration [JsonProperty(TypeNameHandling = TypeNameHandling.None, ItemTypeNameHandling = TypeNameHandling.None)] public List Identities = new List(); + #region Obsulate Properties + + [JsonProperty("NameplateFreeCompanyVisibility"), Obsolete] + private NameplateFreeCompanyVisibility NameplateFreeCompanyVisibilityV1 + { + set + { + foreach (var key in GeneralOptions.Keys) + GeneralOptions[key].NameplateFreeCompanyVisibility = value; + } + } + [JsonProperty("NameplateTitleVisibility"), Obsolete] + public NameplateTitleVisibility NameplateTitleVisibilityV1 + { + set + { + foreach (var key in GeneralOptions.Keys) + GeneralOptions[key].NameplateTitleVisibility = value; + } + } + [JsonProperty("NameplateTitlePosition"), Obsolete] + public NameplateTitlePosition NameplateTitlePositionV1 + { + set + { + foreach (var key in GeneralOptions.Keys) + GeneralOptions[key].NameplateTitlePosition = value; + } + } + + [JsonProperty("IsApplyTagsToAllChatMessagesEnabled"), Obsolete] + private bool IsApplyTagsToAllChatMessagesEnabledV1 + { + set + { + foreach (var key in GeneralOptions.Keys) + GeneralOptions[key].IsApplyTagsToAllChatMessagesEnabled = value; + } + } + + [JsonProperty("IsLinkSelfInChatEnabled"), Obsolete] + private bool IsLinkSelfInChatEnabledV1 + { + set + { + foreach (var key in GeneralOptions.Keys) + GeneralOptions[key].IsLinkSelfInChatEnabled = value; + } + } + + #endregion + public event System.Action? Saved; public void Save(PluginData pluginData) @@ -219,4 +220,14 @@ namespace PlayerTags.Configuration Saved?.Invoke(); } } + + public class GeneralOptionsClass + { + public NameplateFreeCompanyVisibility NameplateFreeCompanyVisibility = NameplateFreeCompanyVisibility.Default; + public NameplateTitleVisibility NameplateTitleVisibility = NameplateTitleVisibility.WhenHasTags; + public NameplateTitlePosition NameplateTitlePosition = NameplateTitlePosition.AlwaysAboveName; + + public bool IsApplyTagsToAllChatMessagesEnabled = true; + public bool IsLinkSelfInChatEnabled = false; + } } diff --git a/PlayerTags/Configuration/PluginConfigurationUI.cs b/PlayerTags/Configuration/PluginConfigurationUI.cs index f5e3a10..ef4fd27 100644 --- a/PlayerTags/Configuration/PluginConfigurationUI.cs +++ b/PlayerTags/Configuration/PluginConfigurationUI.cs @@ -48,6 +48,8 @@ namespace PlayerTags.Configuration if (ImGui.Begin(Strings.Loc_Static_PluginName, ref m_PluginConfiguration.IsVisible)) { + propertyProxy.LoadData(); + ImGui.PushStyleColor(ImGuiCol.Text, new Vector4(1, 0.8f, 0.5f, 1)); ImGui.TextWrapped(Strings.Loc_Static_WarningMessage); ImGui.PopStyleColor(); @@ -60,23 +62,23 @@ namespace PlayerTags.Configuration { ImGui.Spacing(); ImGui.Spacing(); - DrawCheckbox(nameof(m_PluginConfiguration.IsCustomTagsContextMenuEnabled), true, ref m_PluginConfiguration.IsCustomTagsContextMenuEnabled, () => m_PluginConfiguration.Save(m_PluginData)); + DrawCheckbox(nameof(m_PluginConfiguration.IsCustomTagsContextMenuEnabled), true, ref m_PluginConfiguration.IsCustomTagsContextMenuEnabled, () => SaveSettings()); ImGui.Spacing(); ImGui.Spacing(); DrawHeading(Strings.Loc_Static_Nameplates); - DrawComboBox(true, true, false, ref propertyProxy.NameplateFreeCompanyVisibility, () => m_PluginConfiguration.Save(m_PluginData)); - DrawComboBox(true, true, false, ref propertyProxy.NameplateTitleVisibility, () => m_PluginConfiguration.Save(m_PluginData)); - DrawComboBox(true, true, false, ref propertyProxy.NameplateTitlePosition, () => m_PluginConfiguration.Save(m_PluginData)); + DrawComboBox(true, true, false, ref propertyProxy.NameplateFreeCompanyVisibility, () => SaveSettings(true)); + DrawComboBox(true, true, false, ref propertyProxy.NameplateTitleVisibility, () => SaveSettings(true)); + DrawComboBox(true, true, false, ref propertyProxy.NameplateTitlePosition, () => SaveSettings(true)); ImGui.Spacing(); ImGui.Spacing(); DrawHeading(Strings.Loc_Static_Experimental); - DrawCheckbox(nameof(m_PluginConfiguration.IsPlayerNameRandomlyGenerated), true, ref m_PluginConfiguration.IsPlayerNameRandomlyGenerated, () => m_PluginConfiguration.Save(m_PluginData)); - DrawCheckbox(nameof(m_PluginConfiguration.IsLinkSelfInChatEnabled), true, ref m_PluginConfiguration.IsLinkSelfInChatEnabled, () => m_PluginConfiguration.Save(m_PluginData)); - DrawCheckbox(nameof(m_PluginConfiguration.IsApplyTagsToAllChatMessagesEnabled), true, ref m_PluginConfiguration.IsApplyTagsToAllChatMessagesEnabled, () => m_PluginConfiguration.Save(m_PluginData)); + DrawCheckbox(nameof(m_PluginConfiguration.IsPlayerNameRandomlyGenerated), true, ref m_PluginConfiguration.IsPlayerNameRandomlyGenerated, () => SaveSettings()); + DrawCheckbox(nameof(propertyProxy.IsLinkSelfInChatEnabled), true, ref propertyProxy.IsLinkSelfInChatEnabled, () => SaveSettings(true)); + DrawCheckbox(nameof(propertyProxy.IsApplyTagsToAllChatMessagesEnabled), true, ref propertyProxy.IsApplyTagsToAllChatMessagesEnabled, () => SaveSettings(true)); ImGui.EndTabItem(); } @@ -85,7 +87,7 @@ namespace PlayerTags.Configuration { ImGui.Spacing(); ImGui.Spacing(); - DrawCheckbox(nameof(m_PluginConfiguration.IsShowInheritedPropertiesEnabled), true, ref m_PluginConfiguration.IsShowInheritedPropertiesEnabled, () => m_PluginConfiguration.Save(m_PluginData)); + DrawCheckbox(nameof(m_PluginConfiguration.IsShowInheritedPropertiesEnabled), true, ref m_PluginConfiguration.IsShowInheritedPropertiesEnabled, () => SaveSettings()); ImGui.BeginGroup(); ImGui.Columns(2); @@ -112,13 +114,13 @@ namespace PlayerTags.Configuration { ImGui.Spacing(); ImGui.Spacing(); - DrawCheckbox(nameof(m_PluginConfiguration.IsPlayersTabOrderedByProximity), true, ref m_PluginConfiguration.IsPlayersTabOrderedByProximity, () => m_PluginConfiguration.Save(m_PluginData)); - DrawCheckbox(nameof(m_PluginConfiguration.IsPlayersTabSelfVisible), true, ref m_PluginConfiguration.IsPlayersTabSelfVisible, () => m_PluginConfiguration.Save(m_PluginData)); - DrawCheckbox(nameof(m_PluginConfiguration.IsPlayersTabFriendsVisible), true, ref m_PluginConfiguration.IsPlayersTabFriendsVisible, () => m_PluginConfiguration.Save(m_PluginData)); - DrawCheckbox(nameof(m_PluginConfiguration.IsPlayersTabPartyVisible), true, ref m_PluginConfiguration.IsPlayersTabPartyVisible, () => m_PluginConfiguration.Save(m_PluginData)); - DrawCheckbox(nameof(m_PluginConfiguration.IsPlayersTabAllianceVisible), true, ref m_PluginConfiguration.IsPlayersTabAllianceVisible, () => m_PluginConfiguration.Save(m_PluginData)); - DrawCheckbox(nameof(m_PluginConfiguration.IsPlayersTabEnemiesVisible), true, ref m_PluginConfiguration.IsPlayersTabEnemiesVisible, () => m_PluginConfiguration.Save(m_PluginData)); - DrawCheckbox(nameof(m_PluginConfiguration.IsPlayersTabOthersVisible), true, ref m_PluginConfiguration.IsPlayersTabOthersVisible, () => m_PluginConfiguration.Save(m_PluginData)); + DrawCheckbox(nameof(m_PluginConfiguration.IsPlayersTabOrderedByProximity), true, ref m_PluginConfiguration.IsPlayersTabOrderedByProximity, () => SaveSettings()); + DrawCheckbox(nameof(m_PluginConfiguration.IsPlayersTabSelfVisible), true, ref m_PluginConfiguration.IsPlayersTabSelfVisible, () => SaveSettings()); + DrawCheckbox(nameof(m_PluginConfiguration.IsPlayersTabFriendsVisible), true, ref m_PluginConfiguration.IsPlayersTabFriendsVisible, () => SaveSettings()); + DrawCheckbox(nameof(m_PluginConfiguration.IsPlayersTabPartyVisible), true, ref m_PluginConfiguration.IsPlayersTabPartyVisible, () => SaveSettings()); + DrawCheckbox(nameof(m_PluginConfiguration.IsPlayersTabAllianceVisible), true, ref m_PluginConfiguration.IsPlayersTabAllianceVisible, () => SaveSettings()); + DrawCheckbox(nameof(m_PluginConfiguration.IsPlayersTabEnemiesVisible), true, ref m_PluginConfiguration.IsPlayersTabEnemiesVisible, () => SaveSettings()); + DrawCheckbox(nameof(m_PluginConfiguration.IsPlayersTabOthersVisible), true, ref m_PluginConfiguration.IsPlayersTabOthersVisible, () => SaveSettings()); ImGui.Spacing(); ImGui.Spacing(); @@ -234,7 +236,7 @@ namespace PlayerTags.Configuration if (!m_PluginConfiguration.IsVisible) { - m_PluginConfiguration.Save(m_PluginData); + SaveSettings(); } } @@ -275,12 +277,12 @@ namespace PlayerTags.Configuration if (isTagAssigned) { m_PluginData.AddCustomTagToIdentity(customTag, identity); - m_PluginConfiguration.Save(m_PluginData); + SaveSettings(); } else { m_PluginData.RemoveCustomTagFromIdentity(customTag, identity); - m_PluginConfiguration.Save(m_PluginData); + SaveSettings(); } }); @@ -316,7 +318,7 @@ namespace PlayerTags.Configuration } tag.IsSelected.Value = true; - m_PluginConfiguration.Save(m_PluginData); + SaveSettings(); } public void DrawTree(Tag tag) @@ -422,7 +424,7 @@ namespace PlayerTags.Configuration m_PluginData.RemoveCustomTagFromIdentities(tag); m_PluginData.AllCustomTags.Children.Remove(tag); m_PluginData.CustomTags.Remove(tag); - m_PluginConfiguration.Save(m_PluginData); + SaveSettings(); Select(m_PluginData.AllCustomTags); } @@ -444,12 +446,12 @@ namespace PlayerTags.Configuration if (isOpened && tag.Children.Any() && !tag.IsExpanded.Value) { tag.IsExpanded.Value = true; - m_PluginConfiguration.Save(m_PluginData); + SaveSettings(); } else if (!isOpened && tag.IsExpanded.Value) { tag.IsExpanded.Value = false; - m_PluginConfiguration.Save(m_PluginData); + SaveSettings(); } @@ -552,7 +554,7 @@ namespace PlayerTags.Configuration inheritableBool.Value = true; } - m_PluginConfiguration.Save(m_PluginData); + SaveSettings(); ImGui.CloseCurrentPopup(); } @@ -692,7 +694,7 @@ namespace PlayerTags.Configuration if (ImGui.Button(FontAwesomeIcon.TrashAlt.ToIconString(), new Vector2(23, 23))) { inheritable.Behavior = InheritableBehavior.Inherit; - m_PluginConfiguration.Save(m_PluginData); + SaveSettings(); } ImGui.PopFont(); ImGui.PopStyleColor(); @@ -741,7 +743,7 @@ namespace PlayerTags.Configuration { DrawCheckbox("IsEnabled", false, ref inheritable.Value, () => { - m_PluginConfiguration.Save(m_PluginData); + SaveSettings(); }); ImGui.SameLine(); @@ -811,7 +813,7 @@ namespace PlayerTags.Configuration { inheritable.Behavior = InheritableBehavior.Disabled; } - m_PluginConfiguration.Save(m_PluginData); + SaveSettings(); }); if (isEnabled) @@ -819,7 +821,7 @@ namespace PlayerTags.Configuration ImGui.SameLine(); ImGui.SetNextItemWidth(200); ImGui.BeginChild(inheritable.GetHashCode().ToString(), new Vector2(200, 0)); - DrawComboBox(false, shouldLocalizeNames, shouldOrderNames, ref inheritable.Value, () => { m_PluginConfiguration.Save(m_PluginData); }); + DrawComboBox(false, shouldLocalizeNames, shouldOrderNames, ref inheritable.Value, () => { SaveSettings(); }); ImGui.EndChild(); } @@ -886,7 +888,7 @@ namespace PlayerTags.Configuration { inheritable.Behavior = InheritableBehavior.Disabled; } - m_PluginConfiguration.Save(m_PluginData); + SaveSettings(); }); if (isEnabled) @@ -917,7 +919,7 @@ namespace PlayerTags.Configuration { m_ColorPickerPopupDataContext.Value = (ushort)value.RowId; m_ColorPickerPopupDataContext = null; - m_PluginConfiguration.Save(m_PluginData); + SaveSettings(); } ImGui.CloseCurrentPopup(); @@ -998,7 +1000,7 @@ namespace PlayerTags.Configuration { inheritable.Behavior = InheritableBehavior.Disabled; } - m_PluginConfiguration.Save(m_PluginData); + SaveSettings(); }); if (isEnabled) @@ -1006,7 +1008,7 @@ namespace PlayerTags.Configuration ImGui.SameLine(); ImGui.SetNextItemWidth(200); ImGui.BeginChild(inheritable.GetHashCode().ToString(), new Vector2(200, 0)); - DrawTextBox(localizedStringName, ref inheritable.Value, () => { m_PluginConfiguration.Save(m_PluginData); }); + DrawTextBox(localizedStringName, ref inheritable.Value, () => { SaveSettings(); }); ImGui.EndChild(); } @@ -1163,6 +1165,13 @@ namespace PlayerTags.Configuration } } + private void SaveSettings(bool saveProxy = false) + { + if (saveProxy) + propertyProxy.SaveData(); + m_PluginConfiguration.Save(m_PluginData); + } + private class PropertyProxy { private PluginConfiguration pluginConfig; @@ -1170,6 +1179,8 @@ namespace PlayerTags.Configuration public NameplateFreeCompanyVisibility NameplateFreeCompanyVisibility; public NameplateTitleVisibility NameplateTitleVisibility; public NameplateTitlePosition NameplateTitlePosition; + public bool IsApplyTagsToAllChatMessagesEnabled; + public bool IsLinkSelfInChatEnabled; public PropertyProxy(PluginConfiguration config) { @@ -1178,21 +1189,23 @@ namespace PlayerTags.Configuration public void LoadData() { - NameplateFreeCompanyVisibility = pluginConfig.NameplateFreeCompanyVisibility[ActivityContext.None]; - NameplateTitleVisibility = pluginConfig.NameplateTitleVisibility[ActivityContext.None]; - NameplateTitlePosition = pluginConfig.NameplateTitlePosition[ActivityContext.None]; + NameplateFreeCompanyVisibility = pluginConfig.GeneralOptions[ActivityContext.None].NameplateFreeCompanyVisibility; + NameplateTitleVisibility = pluginConfig.GeneralOptions[ActivityContext.None].NameplateTitleVisibility; + NameplateTitlePosition = pluginConfig.GeneralOptions[ActivityContext.None].NameplateTitlePosition; + IsApplyTagsToAllChatMessagesEnabled = pluginConfig.GeneralOptions[ActivityContext.None].IsApplyTagsToAllChatMessagesEnabled; + IsLinkSelfInChatEnabled = pluginConfig.GeneralOptions[ActivityContext.None].IsLinkSelfInChatEnabled; } public void SaveData() { - foreach (var key in pluginConfig.NameplateFreeCompanyVisibility.Keys) - pluginConfig.NameplateFreeCompanyVisibility[key] = NameplateFreeCompanyVisibility; - - foreach (var key in pluginConfig.NameplateTitleVisibility.Keys) - pluginConfig.NameplateTitleVisibility[key] = NameplateTitleVisibility; - - foreach (var key in pluginConfig.NameplateTitlePosition.Keys) - pluginConfig.NameplateTitlePosition[key] = NameplateTitlePosition; + foreach (var key in pluginConfig.GeneralOptions.Keys) + { + pluginConfig.GeneralOptions[key].NameplateFreeCompanyVisibility = NameplateFreeCompanyVisibility; + pluginConfig.GeneralOptions[key].NameplateTitleVisibility = NameplateTitleVisibility; + pluginConfig.GeneralOptions[key].NameplateTitlePosition = NameplateTitlePosition; + pluginConfig.GeneralOptions[key].IsApplyTagsToAllChatMessagesEnabled = IsApplyTagsToAllChatMessagesEnabled; + pluginConfig.GeneralOptions[key].IsLinkSelfInChatEnabled = IsLinkSelfInChatEnabled; + } } } } diff --git a/PlayerTags/Data/ActivityContext.cs b/PlayerTags/Data/ActivityContext.cs index 91ae10a..6b5ef7c 100644 --- a/PlayerTags/Data/ActivityContext.cs +++ b/PlayerTags/Data/ActivityContext.cs @@ -1,8 +1,10 @@ -using System; +using Newtonsoft.Json; +using System; namespace PlayerTags.Data { [Flags] + [JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] public enum ActivityContext { None = 0x0, diff --git a/PlayerTags/Features/ChatTagTargetFeature.cs b/PlayerTags/Features/ChatTagTargetFeature.cs index ad3de03..3300cca 100644 --- a/PlayerTags/Features/ChatTagTargetFeature.cs +++ b/PlayerTags/Features/ChatTagTargetFeature.cs @@ -103,7 +103,7 @@ namespace PlayerTags.Features private void Chat_ChatMessage(XivChatType type, uint senderId, ref SeString sender, ref SeString message, ref bool isHandled) { - if (m_PluginConfiguration.IsApplyTagsToAllChatMessagesEnabled || Enum.IsDefined(type)) + if (m_PluginConfiguration.GeneralOptions[ActivityContextManager.CurrentActivityContext].IsApplyTagsToAllChatMessagesEnabled || Enum.IsDefined(type)) { AddTagsToChat(sender); AddTagsToChat(message); diff --git a/PlayerTags/Features/LinkSelfInChatFeature.cs b/PlayerTags/Features/LinkSelfInChatFeature.cs index 3ff938a..e822cc2 100644 --- a/PlayerTags/Features/LinkSelfInChatFeature.cs +++ b/PlayerTags/Features/LinkSelfInChatFeature.cs @@ -31,7 +31,7 @@ namespace PlayerTags.Features private void Chat_ChatMessage(XivChatType type, uint senderId, ref SeString sender, ref SeString message, ref bool isHandled) { - if (m_PluginConfiguration.IsLinkSelfInChatEnabled) + if (m_PluginConfiguration.GeneralOptions[activityContextManager.CurrentActivityContext].IsLinkSelfInChatEnabled) { ParsePayloads(sender); ParsePayloads(message); diff --git a/PlayerTags/Features/NameplateTagTargetFeature.cs b/PlayerTags/Features/NameplateTagTargetFeature.cs index 6152244..122eb0d 100644 --- a/PlayerTags/Features/NameplateTagTargetFeature.cs +++ b/PlayerTags/Features/NameplateTagTargetFeature.cs @@ -102,22 +102,22 @@ namespace PlayerTags.Features var beforeTitleBytes = args.Title.Encode(); AddTagsToNameplate(args.PlayerCharacter, args.Name, args.Title, args.FreeCompany); - if (m_PluginConfiguration.NameplateTitlePosition[ActivityContextManager.CurrentActivityContext] == NameplateTitlePosition.AlwaysAboveName) + if (m_PluginConfiguration.GeneralOptions[ActivityContextManager.CurrentActivityContext].NameplateTitlePosition == NameplateTitlePosition.AlwaysAboveName) args.IsTitleAboveName = true; - else if (m_PluginConfiguration.NameplateTitlePosition[ActivityContextManager.CurrentActivityContext] == NameplateTitlePosition.AlwaysBelowName) + else if (m_PluginConfiguration.GeneralOptions[ActivityContextManager.CurrentActivityContext].NameplateTitlePosition == NameplateTitlePosition.AlwaysBelowName) args.IsTitleAboveName = false; - if (m_PluginConfiguration.NameplateTitleVisibility[ActivityContextManager.CurrentActivityContext] == NameplateTitleVisibility.Always) + if (m_PluginConfiguration.GeneralOptions[ActivityContextManager.CurrentActivityContext].NameplateTitleVisibility == NameplateTitleVisibility.Always) args.IsTitleVisible = true; - else if (m_PluginConfiguration.NameplateTitleVisibility[ActivityContextManager.CurrentActivityContext] == NameplateTitleVisibility.Never) + else if (m_PluginConfiguration.GeneralOptions[ActivityContextManager.CurrentActivityContext].NameplateTitleVisibility == NameplateTitleVisibility.Never) args.IsTitleVisible = false; - else if (m_PluginConfiguration.NameplateTitleVisibility[ActivityContextManager.CurrentActivityContext] == NameplateTitleVisibility.WhenHasTags) + else if (m_PluginConfiguration.GeneralOptions[ActivityContextManager.CurrentActivityContext].NameplateTitleVisibility == NameplateTitleVisibility.WhenHasTags) { bool hasTitleChanged = !beforeTitleBytes.SequenceEqual(args.Title.Encode()); args.IsTitleVisible = hasTitleChanged; } - if (m_PluginConfiguration.NameplateFreeCompanyVisibility[ActivityContextManager.CurrentActivityContext] == NameplateFreeCompanyVisibility.Never) + if (m_PluginConfiguration.GeneralOptions[ActivityContextManager.CurrentActivityContext].NameplateFreeCompanyVisibility == NameplateFreeCompanyVisibility.Never) args.FreeCompany.Payloads.Clear(); }