From 2dcf94eae21a814f279400b148d79537f1ea783a Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Sun, 24 Sep 2023 16:41:15 +0200 Subject: [PATCH 1/5] some adjustments for API9 --- .../Configuration/PluginConfigurationUI.cs | 1 + .../Features/NameplateTagTargetFeature.cs | 4 ++-- PlayerTags/PluginServices.cs | 18 ++++++++++-------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/PlayerTags/Configuration/PluginConfigurationUI.cs b/PlayerTags/Configuration/PluginConfigurationUI.cs index 4b10c34..3feb61f 100644 --- a/PlayerTags/Configuration/PluginConfigurationUI.cs +++ b/PlayerTags/Configuration/PluginConfigurationUI.cs @@ -3,6 +3,7 @@ using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Game.Text; using Dalamud.Game.Text.SeStringHandling; using Dalamud.Interface; +using Dalamud.Interface.Utility; using Dalamud.Logging; using FFXIVClientStructs.FFXIV.Client.Game.UI; using FFXIVClientStructs.Havok; diff --git a/PlayerTags/Features/NameplateTagTargetFeature.cs b/PlayerTags/Features/NameplateTagTargetFeature.cs index 37c48ab..dc61f77 100644 --- a/PlayerTags/Features/NameplateTagTargetFeature.cs +++ b/PlayerTags/Features/NameplateTagTargetFeature.cs @@ -75,12 +75,12 @@ namespace PlayerTags.Features } } - private void ClientState_Login(object? sender, EventArgs e) + private void ClientState_Login() { Hook(); } - private void ClientState_Logout(object? sender, EventArgs e) + private void ClientState_Logout() { Unhook(); } diff --git a/PlayerTags/PluginServices.cs b/PlayerTags/PluginServices.cs index 7728766..2c96eee 100644 --- a/PlayerTags/PluginServices.cs +++ b/PlayerTags/PluginServices.cs @@ -7,20 +7,22 @@ using Dalamud.Game.Command; using Dalamud.Game.Gui; using Dalamud.IoC; using Dalamud.Plugin; +using Dalamud.Plugin.Services; namespace PlayerTags { public class PluginServices { - [PluginService] public static ChatGui ChatGui { get; set; } = null!; - [PluginService] public static ClientState ClientState { get; set; } = null!; - [PluginService] public static CommandManager CommandManager { get; set; } = null!; [PluginService] public static DalamudPluginInterface DalamudPluginInterface { get; set; } = null!; - [PluginService] public static DataManager DataManager { get; set; } = null!; - [PluginService] public static Framework Framework { get; set; } = null!; - [PluginService] public static GameGui GameGui { get; set; } = null!; - [PluginService] public static ObjectTable ObjectTable { get; set; } = null!; - [PluginService] public static PartyList PartyList { get; set; } = null!; + [PluginService] public static IChatGui ChatGui { get; set; } = null!; + [PluginService] public static IClientState ClientState { get; set; } = null!; + [PluginService] public static ICommandManager CommandManager { get; set; } = null!; + [PluginService] public static IDataManager DataManager { get; set; } = null!; + [PluginService] public static IFramework Framework { get; set; } = null!; + [PluginService] public static IGameGui GameGui { get; set; } = null!; + [PluginService] public static IObjectTable ObjectTable { get; set; } = null!; + [PluginService] public static IPartyList PartyList { get; set; } = null!; + [PluginService] public static IGameInteropProvider GameInteropProvider { get; set; } = null; public static void Initialize(DalamudPluginInterface pluginInterface) { From 1f1b08cd59c2ff5a7524833f74393901091afa75 Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Sun, 24 Sep 2023 16:41:58 +0200 Subject: [PATCH 2/5] update submodule --- Pilz.Dalamud | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Pilz.Dalamud b/Pilz.Dalamud index 8e7d49c..f9ab346 160000 --- a/Pilz.Dalamud +++ b/Pilz.Dalamud @@ -1 +1 @@ -Subproject commit 8e7d49ca01d48670bf10668290294be8186e0fd7 +Subproject commit f9ab3462ebb629d07cbc92d0f436b3595443bc07 From cc1bdc7e080b5492949b95f38222dc10575a68c8 Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Sun, 24 Sep 2023 16:53:58 +0200 Subject: [PATCH 3/5] update nuget packages --- .../Features/CustomTagsContextMenuFeature.cs | 5 +- PlayerTags/PlayerTags.csproj | 2 +- PlayerTags/Plugin.cs | 47 ++++++++++--------- PlayerTags/packages.lock.json | 6 +-- 4 files changed, 31 insertions(+), 29 deletions(-) diff --git a/PlayerTags/Features/CustomTagsContextMenuFeature.cs b/PlayerTags/Features/CustomTagsContextMenuFeature.cs index 9c7d524..a66532f 100644 --- a/PlayerTags/Features/CustomTagsContextMenuFeature.cs +++ b/PlayerTags/Features/CustomTagsContextMenuFeature.cs @@ -1,6 +1,7 @@ using Dalamud.ContextMenu; using Dalamud.Game.Text.SeStringHandling; using Dalamud.Logging; +using Dalamud.Plugin; using PlayerTags.Configuration; using PlayerTags.Data; using PlayerTags.Resources; @@ -33,9 +34,9 @@ namespace PlayerTags.Features private DalamudContextMenu? m_ContextMenu; - public CustomTagsContextMenuFeature(PluginConfiguration pluginConfiguration, PluginData pluginData) : base(pluginConfiguration, pluginData) + public CustomTagsContextMenuFeature(PluginConfiguration pluginConfiguration, PluginData pluginData, DalamudPluginInterface pluginInterface) : base(pluginConfiguration, pluginData) { - m_ContextMenu = new DalamudContextMenu(); + m_ContextMenu = new DalamudContextMenu(pluginInterface); m_ContextMenu.OnOpenGameObjectContextMenu += ContextMenuHooks_ContextMenuOpened; } diff --git a/PlayerTags/PlayerTags.csproj b/PlayerTags/PlayerTags.csproj index fa686b3..0a39332 100644 --- a/PlayerTags/PlayerTags.csproj +++ b/PlayerTags/PlayerTags.csproj @@ -24,7 +24,7 @@ - + diff --git a/PlayerTags/Plugin.cs b/PlayerTags/Plugin.cs index 5a8f01d..12a21d3 100644 --- a/PlayerTags/Plugin.cs +++ b/PlayerTags/Plugin.cs @@ -3,6 +3,7 @@ using Dalamud.Logging; using Dalamud.Plugin; using Dalamud.Plugin.Internal; using FFXIVClientStructs.FFXIV.Client.UI.Misc; +using Lumina.Excel.GeneratedSheets; using PlayerTags.Configuration; using PlayerTags.Data; using PlayerTags.Features; @@ -16,29 +17,29 @@ namespace PlayerTags { public sealed class Plugin : IDalamudPlugin { - public string Name => "Player Tags"; private const string c_CommandName = "/playertags"; private const string c_SubCommandName_EnableGlobal = "enableglobal"; private const string c_CommandArg_On = "on"; private const string c_CommandArg_Off = "off"; private const string c_CommandArg_toggle = "toggle"; - private PluginConfiguration m_PluginConfiguration; - private PluginData m_PluginData; - private PluginConfigurationUI m_PluginConfigurationUI; + private PluginConfiguration pluginConfiguration = null; + private PluginData pluginData = null; + private PluginConfigurationUI pluginConfigurationUI = null; + private DalamudPluginInterface pluginInterface = null; - private CustomTagsContextMenuFeature m_CustomTagsContextMenuFeature; - private NameplateTagTargetFeature m_NameplatesTagTargetFeature; - private ChatTagTargetFeature m_ChatTagTargetFeature; + private CustomTagsContextMenuFeature customTagsContextMenuFeature; + private NameplateTagTargetFeature nameplatesTagTargetFeature; + private ChatTagTargetFeature chatTagTargetFeature; public Plugin(DalamudPluginInterface pluginInterface) { PluginServices.Initialize(pluginInterface); Pilz.Dalamud.PluginServices.Initialize(pluginInterface); - m_PluginConfiguration = PluginConfiguration.LoadPluginConfig() ?? new PluginConfiguration(); - m_PluginData = new PluginData(m_PluginConfiguration); - m_PluginConfigurationUI = new PluginConfigurationUI(m_PluginConfiguration, m_PluginData); + pluginConfiguration = PluginConfiguration.LoadPluginConfig() ?? new PluginConfiguration(); + pluginData = new PluginData(pluginConfiguration); + pluginConfigurationUI = new PluginConfigurationUI(pluginConfiguration, pluginData); Localizer.SetLanguage(PluginServices.DalamudPluginInterface.UiLanguage); PluginServices.DalamudPluginInterface.LanguageChanged += DalamudPluginInterface_LanguageChanged; @@ -49,16 +50,16 @@ namespace PlayerTags { HelpMessage = Resources.Strings.Loc_Command_playertags_v2 }); - m_CustomTagsContextMenuFeature = new CustomTagsContextMenuFeature(m_PluginConfiguration, m_PluginData); - m_NameplatesTagTargetFeature = new NameplateTagTargetFeature(m_PluginConfiguration, m_PluginData); - m_ChatTagTargetFeature = new ChatTagTargetFeature(m_PluginConfiguration, m_PluginData); + customTagsContextMenuFeature = new CustomTagsContextMenuFeature(pluginConfiguration, pluginData, pluginInterface); + nameplatesTagTargetFeature = new NameplateTagTargetFeature(pluginConfiguration, pluginData); + chatTagTargetFeature = new ChatTagTargetFeature(pluginConfiguration, pluginData); } public void Dispose() { - m_ChatTagTargetFeature.Dispose(); - m_NameplatesTagTargetFeature.Dispose(); - m_CustomTagsContextMenuFeature.Dispose(); + chatTagTargetFeature.Dispose(); + nameplatesTagTargetFeature.Dispose(); + customTagsContextMenuFeature.Dispose(); PluginServices.DalamudPluginInterface.LanguageChanged -= DalamudPluginInterface_LanguageChanged; PluginServices.CommandManager.RemoveHandler(c_CommandName); PluginServices.DalamudPluginInterface.UiBuilder.OpenConfigUi -= UiBuilder_OpenConfigUi; @@ -90,13 +91,13 @@ namespace PlayerTags switch (lowerArgs[0]) { case c_CommandArg_On: - m_PluginConfiguration.EnabledGlobal = true; + pluginConfiguration.EnabledGlobal = true; break; case c_CommandArg_Off: - m_PluginConfiguration.EnabledGlobal = false; + pluginConfiguration.EnabledGlobal = false; break; case c_CommandArg_toggle: - m_PluginConfiguration.EnabledGlobal = !m_PluginConfiguration.EnabledGlobal; + pluginConfiguration.EnabledGlobal = !pluginConfiguration.EnabledGlobal; break; } } @@ -110,14 +111,14 @@ namespace PlayerTags private void UiBuilder_Draw() { - if (m_PluginConfiguration.IsVisible) - m_PluginConfigurationUI.Draw(); + if (pluginConfiguration.IsVisible) + pluginConfigurationUI.Draw(); } private void UiBuilder_OpenConfigUi() { - m_PluginConfiguration.IsVisible = true; - m_PluginConfiguration.Save(m_PluginData); + pluginConfiguration.IsVisible = true; + pluginConfiguration.Save(pluginData); } } } diff --git a/PlayerTags/packages.lock.json b/PlayerTags/packages.lock.json index 485dc74..05fbc4a 100644 --- a/PlayerTags/packages.lock.json +++ b/PlayerTags/packages.lock.json @@ -4,9 +4,9 @@ "net7.0-windows7.0": { "Dalamud.ContextMenu": { "type": "Direct", - "requested": "[1.2.3, )", - "resolved": "1.2.3", - "contentHash": "ydemplF7DNcA/LLeongDVzWUD/JV0Fw3EwA2+P0jYq3Le2ZYSt4U8qyJq4FyoChqt0lFG8BxYCAzfeWp4Jmnqw==" + "requested": "[1.3.1, )", + "resolved": "1.3.1", + "contentHash": "ptAxut5PiLnzZ4G/KQdHJVcyklC/BF3otHJ7zYVUPiKBjsOCoF0n/6h2jK7e+8ev2Y1yAY3Wtx2GuXLFQgt9Uw==" }, "DalamudPackager": { "type": "Direct", From 30794201f062902adb3bd815e92a7ecccbfe45d0 Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Sun, 24 Sep 2023 17:13:41 +0200 Subject: [PATCH 4/5] migrate to GameConfig & cleanup warnings --- PlayerTags.sln | 1 + .../GameConfig/GameConfigHelper.cs | 42 ++++--------------- .../Configuration/GameConfig/LogNameType.cs | 2 +- .../Configuration/PluginConfigurationUI.cs | 2 +- .../GameInterface/Nameplates/Nameplate.cs | 2 +- PlayerTags/Inheritables/InheritableValue.cs | 4 +- PlayerTags/Localizer.cs | 2 +- PlayerTags/Plugin.cs | 1 - PlayerTags/PluginServices.cs | 2 + PlayerTags/RandomNameGenerator.cs | 4 +- 10 files changed, 19 insertions(+), 43 deletions(-) diff --git a/PlayerTags.sln b/PlayerTags.sln index 9ce7dc5..74df2af 100644 --- a/PlayerTags.sln +++ b/PlayerTags.sln @@ -26,6 +26,7 @@ Global HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution + RESX_ShowErrorsInErrorList = False SolutionGuid = {B17E85B1-5F60-4440-9F9A-3DDE877E8CDF} EndGlobalSection EndGlobal diff --git a/PlayerTags/Configuration/GameConfig/GameConfigHelper.cs b/PlayerTags/Configuration/GameConfig/GameConfigHelper.cs index c10df56..f84a58d 100644 --- a/PlayerTags/Configuration/GameConfig/GameConfigHelper.cs +++ b/PlayerTags/Configuration/GameConfig/GameConfigHelper.cs @@ -30,45 +30,19 @@ namespace PlayerTags.Configuration.GameConfig } } - private int? GetIntValue(ConfigOption option) + private uint? GetIntValue(ConfigOption option) { - int? value = null; - - unsafe - { - var index = configModule->GetIndex(option); - if (index.HasValue) - value = configModule->GetIntValue(index.Value); - } - - return value; + if (PluginServices.GameConfig.UiConfig.TryGetUInt(nameof(ConfigOption.LogNameType), out var value)) + return value; + return null; } public LogNameType? GetLogNameType() { - LogNameType? logNameType = null; - int? value = GetIntValue(ConfigOption.LogNameType); - - if (value.HasValue) - { - switch (value) - { - case 0: - logNameType = LogNameType.FullName; - break; - case 1: - logNameType = LogNameType.LastNameShorted; - break; - case 2: - logNameType = LogNameType.FirstNameShorted; - break; - case 3: - logNameType = LogNameType.Initials; - break; - } - } - - return logNameType; + uint? value = GetIntValue(ConfigOption.LogNameType); + if (value != null) + return (LogNameType)value; + return null; } } } diff --git a/PlayerTags/Configuration/GameConfig/LogNameType.cs b/PlayerTags/Configuration/GameConfig/LogNameType.cs index 3605357..cc75bdf 100644 --- a/PlayerTags/Configuration/GameConfig/LogNameType.cs +++ b/PlayerTags/Configuration/GameConfig/LogNameType.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; namespace PlayerTags.Configuration.GameConfig { - public enum LogNameType + public enum LogNameType : uint { FullName, LastNameShorted, diff --git a/PlayerTags/Configuration/PluginConfigurationUI.cs b/PlayerTags/Configuration/PluginConfigurationUI.cs index 3feb61f..05fe348 100644 --- a/PlayerTags/Configuration/PluginConfigurationUI.cs +++ b/PlayerTags/Configuration/PluginConfigurationUI.cs @@ -803,7 +803,7 @@ namespace PlayerTags.Configuration } else { - PluginLog.Warning($"Rendering for inheritable option not implemented: {selectedInheritable.Inheritable.Key}"); + PluginServices.PluginLog.Warning($"Rendering for inheritable option not implemented: {selectedInheritable.Inheritable.Key}"); } } } diff --git a/PlayerTags/GameInterface/Nameplates/Nameplate.cs b/PlayerTags/GameInterface/Nameplates/Nameplate.cs index 62c5350..8e90611 100644 --- a/PlayerTags/GameInterface/Nameplates/Nameplate.cs +++ b/PlayerTags/GameInterface/Nameplates/Nameplate.cs @@ -58,7 +58,7 @@ namespace PlayerTags.GameInterface.Nameplates } catch (Exception ex) { - PluginLog.Error(ex, $"SetPlayerNameplateDetour"); + PluginServices.PluginLog.Error(ex, $"SetPlayerNameplateDetour"); } } } diff --git a/PlayerTags/Inheritables/InheritableValue.cs b/PlayerTags/Inheritables/InheritableValue.cs index f17e55a..4ac7422 100644 --- a/PlayerTags/Inheritables/InheritableValue.cs +++ b/PlayerTags/Inheritables/InheritableValue.cs @@ -68,7 +68,7 @@ namespace PlayerTags.Inheritables else if (inheritableData.Value == null) { // This should never happen - PluginLog.Error($"Expected value of type {Value.GetType()} but received null"); + PluginServices.PluginLog.Error($"Expected value of type {Value.GetType()} but received null"); } else if (typeof(T) == typeof(Guid) && inheritableData.Value is string strValue) { @@ -81,7 +81,7 @@ namespace PlayerTags.Inheritables } catch (Exception ex) { - PluginLog.Error(ex, $"Failed to convert {inheritableData.Value.GetType()} value '{inheritableData.Value}' to {Value.GetType()}"); + PluginServices.PluginLog.Error(ex, $"Failed to convert {inheritableData.Value.GetType()} value '{inheritableData.Value}' to {Value.GetType()}"); } } diff --git a/PlayerTags/Localizer.cs b/PlayerTags/Localizer.cs index fffc28d..18c8a51 100644 --- a/PlayerTags/Localizer.cs +++ b/PlayerTags/Localizer.cs @@ -55,7 +55,7 @@ namespace PlayerTags if (value != null) return value; - PluginLog.Error($"Failed to get localized string for id {localizedStringId}"); + PluginServices.PluginLog.Error($"Failed to get localized string for id {localizedStringId}"); return localizedStringId; } } diff --git a/PlayerTags/Plugin.cs b/PlayerTags/Plugin.cs index 12a21d3..e27090d 100644 --- a/PlayerTags/Plugin.cs +++ b/PlayerTags/Plugin.cs @@ -26,7 +26,6 @@ namespace PlayerTags private PluginConfiguration pluginConfiguration = null; private PluginData pluginData = null; private PluginConfigurationUI pluginConfigurationUI = null; - private DalamudPluginInterface pluginInterface = null; private CustomTagsContextMenuFeature customTagsContextMenuFeature; private NameplateTagTargetFeature nameplatesTagTargetFeature; diff --git a/PlayerTags/PluginServices.cs b/PlayerTags/PluginServices.cs index 2c96eee..8e270e1 100644 --- a/PlayerTags/PluginServices.cs +++ b/PlayerTags/PluginServices.cs @@ -14,6 +14,8 @@ namespace PlayerTags public class PluginServices { [PluginService] public static DalamudPluginInterface DalamudPluginInterface { get; set; } = null!; + [PluginService] public static IPluginLog PluginLog { get; set; } = null; + [PluginService] public static IGameConfig GameConfig { get; set; } = null; [PluginService] public static IChatGui ChatGui { get; set; } = null!; [PluginService] public static IClientState ClientState { get; set; } = null!; [PluginService] public static ICommandManager CommandManager { get; set; } = null!; diff --git a/PlayerTags/RandomNameGenerator.cs b/PlayerTags/RandomNameGenerator.cs index 54bebfb..430b025 100644 --- a/PlayerTags/RandomNameGenerator.cs +++ b/PlayerTags/RandomNameGenerator.cs @@ -24,7 +24,7 @@ namespace PlayerTags } catch (Exception ex) { - PluginLog.Error(ex, $"RandomNameGenerator failed to read adjectives"); + PluginServices.PluginLog.Error(ex, $"RandomNameGenerator failed to read adjectives"); } } @@ -50,7 +50,7 @@ namespace PlayerTags } catch (Exception ex) { - PluginLog.Error(ex, $"RandomNameGenerator failed to read nouns"); + PluginServices.PluginLog.Error(ex, $"RandomNameGenerator failed to read nouns"); } } From 5072246f6483809c39f410c372050227f4ddbdd7 Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Sun, 24 Sep 2023 17:13:54 +0200 Subject: [PATCH 5/5] update submodule --- Pilz.Dalamud | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Pilz.Dalamud b/Pilz.Dalamud index f9ab346..3715dcb 160000 --- a/Pilz.Dalamud +++ b/Pilz.Dalamud @@ -1 +1 @@ -Subproject commit f9ab3462ebb629d07cbc92d0f436b3595443bc07 +Subproject commit 3715dcb9ac3d1223644f4e9ad934f9cf8b5640b6