From 385e43eeefd70e592792c8e4d627aeb5cd645e47 Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Fri, 22 Nov 2024 21:57:04 +0100 Subject: [PATCH] update for API 11 --- Pilz.Dalamud | 2 +- .../Configuration/PluginConfigurationUI.cs | 2 +- PlayerTags/Data/DefaultPluginData.cs | 12 ++++++---- PlayerTags/Data/PluginData.cs | 10 ++++---- PlayerTags/Data/RoleHelper.cs | 24 +++++++++---------- PlayerTags/Data/WorldHelper.cs | 5 ++-- PlayerTags/Features/ChatTagTargetFeature.cs | 8 ++++--- .../Features/NameplateTagTargetFeature.cs | 11 +++++---- PlayerTags/PlayerTags.csproj | 2 +- PlayerTags/UIColorHelper.cs | 11 +++------ PlayerTags/packages.lock.json | 6 ++--- 11 files changed, 47 insertions(+), 46 deletions(-) diff --git a/Pilz.Dalamud b/Pilz.Dalamud index 0669b2c..5b75e30 160000 --- a/Pilz.Dalamud +++ b/Pilz.Dalamud @@ -1 +1 @@ -Subproject commit 0669b2cecb0cf5632b9cef76d2d15119dbc5f39c +Subproject commit 5b75e305eb748ceeeec9c007ebf59f9cfee715fd diff --git a/PlayerTags/Configuration/PluginConfigurationUI.cs b/PlayerTags/Configuration/PluginConfigurationUI.cs index aa05dab..b5a034a 100644 --- a/PlayerTags/Configuration/PluginConfigurationUI.cs +++ b/PlayerTags/Configuration/PluginConfigurationUI.cs @@ -4,7 +4,7 @@ using Dalamud.Game.Text.SeStringHandling; using Dalamud.Interface; using Dalamud.Interface.Utility; using ImGuiNET; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; using Pilz.Dalamud.ActivityContexts; using Pilz.Dalamud.Icons; using Pilz.Dalamud.Tools.NamePlates; diff --git a/PlayerTags/Data/DefaultPluginData.cs b/PlayerTags/Data/DefaultPluginData.cs index 445ec71..535ce0e 100644 --- a/PlayerTags/Data/DefaultPluginData.cs +++ b/PlayerTags/Data/DefaultPluginData.cs @@ -1,6 +1,7 @@ using Dalamud.Game.Text; using Dalamud.Game.Text.SeStringHandling; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; +using Pilz.Dalamud; using System; using System.Collections.Generic; using System.Linq; @@ -475,15 +476,16 @@ public class DefaultPluginData { foreach ((var role, var roleTagChanges) in RoleTags) { - foreach (var classJob in classJobs.Where(classJob => RoleHelper.RolesByRoleId[classJob.Role] == role && !string.IsNullOrEmpty(classJob.Abbreviation.RawString))) + foreach (var classJob in classJobs.Where(classJob => RoleHelper.RolesByRoleId[classJob.Role] == role && !string.IsNullOrEmpty(classJob.Abbreviation.ParseString()))) { - if (!JobTags.ContainsKey(classJob.Abbreviation.RawString)) + var abbrv = classJob.Abbreviation.ParseString(); + if (!JobTags.ContainsKey(abbrv)) { - JobTags[classJob.Abbreviation.RawString] = new Tag() + JobTags[abbrv] = new Tag() { IsSelected = false, IsExpanded = false, - Text = classJob.Abbreviation.RawString, + Text = abbrv, }; } } diff --git a/PlayerTags/Data/PluginData.cs b/PlayerTags/Data/PluginData.cs index ae5f056..c9ccebf 100644 --- a/PlayerTags/Data/PluginData.cs +++ b/PlayerTags/Data/PluginData.cs @@ -280,22 +280,22 @@ public class PluginData public Identity? GetIdentity(MenuTargetDefault taget) { if (string.IsNullOrEmpty(taget.TargetName) - || taget.TargetHomeWorld.Id == 0 - || taget.TargetHomeWorld.Id == 65535) + || taget.TargetHomeWorld.RowId == 0 + || taget.TargetHomeWorld.RowId == 65535) { return null; } - return GetIdentity(taget.TargetName, taget.TargetHomeWorld.Id); + return GetIdentity(taget.TargetName, taget.TargetHomeWorld.RowId); } public Identity GetIdentity(IPlayerCharacter playerCharacter) { - return GetIdentity(playerCharacter.Name.TextValue, playerCharacter.HomeWorld.Id); + return GetIdentity(playerCharacter.Name.TextValue, playerCharacter.HomeWorld.RowId); } public Identity GetIdentity(IPartyMember partyMember) { - return GetIdentity(partyMember.Name.TextValue, partyMember.World.Id); + return GetIdentity(partyMember.Name.TextValue, partyMember.World.RowId); } public Identity GetIdentity(PlayerPayload playerPayload) diff --git a/PlayerTags/Data/RoleHelper.cs b/PlayerTags/Data/RoleHelper.cs index 7b0ce7e..755f69b 100644 --- a/PlayerTags/Data/RoleHelper.cs +++ b/PlayerTags/Data/RoleHelper.cs @@ -1,4 +1,5 @@ -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; +using Pilz.Dalamud; using System.Collections.Generic; using System.Linq; @@ -39,11 +40,11 @@ public static class RoleHelper var classJobs = PluginServices.DataManager.GetExcelSheet(); if (classJobs != null) { - foreach (var classJob in classJobs.Where(classJob => !string.IsNullOrEmpty(classJob.Abbreviation.RawString))) + foreach (var classJob in classJobs.Where(classJob => !string.IsNullOrEmpty(classJob.Abbreviation.ParseString()))) { if (RolesByRoleId.TryGetValue(classJob.Role, out var role)) { - s_RolesByJobAbbreviation[classJob.Abbreviation] = role; + s_RolesByJobAbbreviation[classJob.Abbreviation.ParseString()] = role; } } } @@ -65,11 +66,11 @@ public static class RoleHelper var classJobs = PluginServices.DataManager.GetExcelSheet(); if (classJobs != null) { - foreach (var classJob in classJobs.Where(classJob => !string.IsNullOrEmpty(classJob.Abbreviation.RawString))) + foreach (var classJob in classJobs.Where(classJob => !string.IsNullOrEmpty(classJob.Abbreviation.ParseString()))) { if (DpsRolesByRoleId.TryGetValue(classJob.Role, out var dpsRole)) { - s_DpsRolesByJobAbbreviation[classJob.Abbreviation] = dpsRole; + s_DpsRolesByJobAbbreviation[classJob.Abbreviation.ParseString()] = dpsRole; } } } @@ -91,13 +92,13 @@ public static class RoleHelper var classJobs = PluginServices.DataManager.GetExcelSheet(); if (classJobs != null) { - foreach (var classJob in classJobs.Where(classJob => !string.IsNullOrEmpty(classJob.Abbreviation.RawString))) + foreach (var classJob in classJobs.Where(classJob => !string.IsNullOrEmpty(classJob.Abbreviation.ParseString()))) { - if (DpsRolesByJobAbbreviation.TryGetValue(classJob.Abbreviation, out var dpsRole) && dpsRole == DpsRole.Ranged) + if (DpsRolesByJobAbbreviation.TryGetValue(classJob.Abbreviation.ParseString(), out var dpsRole) && dpsRole == DpsRole.Ranged) { if (RangedDpsRolesByPrimaryStat.TryGetValue(classJob.PrimaryStat, out var rangedDPSRole)) { - s_RangedDpsRolesByJobAbbreviation[classJob.Abbreviation] = rangedDPSRole; + s_RangedDpsRolesByJobAbbreviation[classJob.Abbreviation.ParseString()] = rangedDPSRole; } } } @@ -123,10 +124,9 @@ public static class RoleHelper { var gatheringJobAbbreviations = gatheringSubCategories .Select(gatheringSubCategory => gatheringSubCategory.ClassJob.Value) - .Where(classJob => classJob != null) .Select(classJob => classJob!.Abbreviation).Distinct(); - foreach (var classJob in classJobs.Where(classJob => !string.IsNullOrEmpty(classJob.Abbreviation.RawString))) + foreach (var classJob in classJobs.Where(classJob => !string.IsNullOrEmpty(classJob.Abbreviation.ParseString()))) { if (RolesByRoleId.TryGetValue(classJob.Role, out var role)) { @@ -134,11 +134,11 @@ public static class RoleHelper { if (gatheringJobAbbreviations.Contains(classJob.Abbreviation)) { - s_LandHandRolesByJobAbbreviation[classJob.Abbreviation] = LandHandRole.Land; + s_LandHandRolesByJobAbbreviation[classJob.Abbreviation.ParseString()] = LandHandRole.Land; } else { - s_LandHandRolesByJobAbbreviation[classJob.Abbreviation] = LandHandRole.Hand; + s_LandHandRolesByJobAbbreviation[classJob.Abbreviation.ParseString()] = LandHandRole.Hand; } } } diff --git a/PlayerTags/Data/WorldHelper.cs b/PlayerTags/Data/WorldHelper.cs index 319df5d..c55f381 100644 --- a/PlayerTags/Data/WorldHelper.cs +++ b/PlayerTags/Data/WorldHelper.cs @@ -1,4 +1,5 @@ -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; +using Pilz.Dalamud; using System.Collections.Generic; namespace PlayerTags.Data; @@ -19,7 +20,7 @@ public static class WorldHelper { foreach (var world in worlds) { - s_WorldNames[world.RowId] = world.Name; + s_WorldNames[world.RowId] = world.Name.ParseString(); } } } diff --git a/PlayerTags/Features/ChatTagTargetFeature.cs b/PlayerTags/Features/ChatTagTargetFeature.cs index 1221c3d..eb6c7e1 100644 --- a/PlayerTags/Features/ChatTagTargetFeature.cs +++ b/PlayerTags/Features/ChatTagTargetFeature.cs @@ -3,6 +3,8 @@ using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Game.Text; using Dalamud.Game.Text.SeStringHandling; using Dalamud.Game.Text.SeStringHandling.Payloads; +using Lumina.Excel.Sheets; +using Pilz.Dalamud; using Pilz.Dalamud.Tools.Strings; using PlayerTags.Configuration; using PlayerTags.Data; @@ -273,7 +275,7 @@ public class ChatTagTargetFeature : TagTargetFeature // Fix displaying of abbreviated own player name as the game does this after the chat message handler playerTextPayload.Text = BuildPlayername(playerTextPayload.Text); - var playerPayload = new PlayerPayload(playerName, PluginServices.ClientState.LocalPlayer.HomeWorld.Id); + var playerPayload = new PlayerPayload(playerName, PluginServices.ClientState.LocalPlayer.HomeWorld.RowId); int playerPayloadIndex = seString.Payloads.IndexOf(playerTextPayload); var hasNumberPrefix = isSender && (chatType == XivChatType.Party || chatType == XivChatType.Alliance); @@ -326,7 +328,7 @@ public class ChatTagTargetFeature : TagTargetFeature if (stringMatch.GameObject is IPlayerCharacter playerCharacter) { // Add the job tag - if (playerCharacter.ClassJob.GameData != null && pluginData.JobTags.TryGetValue(playerCharacter.ClassJob.GameData.Abbreviation, out var jobTag)) + if (playerCharacter.ClassJob.ValueNullable is ClassJob classJob && pluginData.JobTags.TryGetValue(classJob.Abbreviation.ParseString(), out var jobTag)) { if (isTagEnabled(jobTag)) { @@ -390,7 +392,7 @@ public class ChatTagTargetFeature : TagTargetFeature if (stringMatch.GameObject is IPlayerCharacter playerCharacter1) { - if (playerCharacter1.ClassJob.GameData != null && pluginData.JobTags.TryGetValue(playerCharacter1.ClassJob.GameData.Abbreviation, out var jobTag) && isTagEnabled(jobTag)) + if (playerCharacter1.ClassJob.ValueNullable is ClassJob classJob && pluginData.JobTags.TryGetValue(classJob.Abbreviation.ParseString(), out var jobTag) && isTagEnabled(jobTag)) applyTextFormatting(jobTag); } diff --git a/PlayerTags/Features/NameplateTagTargetFeature.cs b/PlayerTags/Features/NameplateTagTargetFeature.cs index e9c6d28..b09d17c 100644 --- a/PlayerTags/Features/NameplateTagTargetFeature.cs +++ b/PlayerTags/Features/NameplateTagTargetFeature.cs @@ -2,6 +2,8 @@ using Dalamud.Game.Gui.NamePlate; using Dalamud.Game.Text.SeStringHandling; using Dalamud.Game.Text.SeStringHandling.Payloads; +using Lumina.Excel.Sheets; +using Pilz.Dalamud; using Pilz.Dalamud.Icons; using Pilz.Dalamud.Tools.NamePlates; using Pilz.Dalamud.Tools.Strings; @@ -112,11 +114,10 @@ public class NameplateTagTargetFeature : TagTargetFeature if (handler.PlayerCharacter != null && (!handler.PlayerCharacter.IsDead || generalOptions.NameplateDeadPlayerHandling != DeadPlayerHandling.Ignore)) { - var classJob = handler.PlayerCharacter.ClassJob; - var classJobGameData = classJob?.GameData; + var classJob = handler.PlayerCharacter.ClassJob.ValueNullable; // Add the job tags - if (classJobGameData != null && pluginData.JobTags.TryGetValue(classJobGameData.Abbreviation, out var jobTag)) + if (classJob.HasValue && pluginData.JobTags.TryGetValue(classJob.Value.Abbreviation.ParseString(), out var jobTag)) { if (jobTag.TagTargetInNameplates.InheritedValue != null && jobTag.TagPositionInNameplates.InheritedValue != null) checkTag(jobTag); @@ -152,7 +153,7 @@ public class NameplateTagTargetFeature : TagTargetFeature AddPayloadChanges(tag.TagTargetInNameplates.InheritedValue.Value, tag.TagPositionInNameplates.InheritedValue.Value, payloads, nameplateChanges, false); } if (IsTagVisible(tag, handler.PlayerCharacter) && newStatusIcon == null && classJob != null && (tag.IsJobIconVisibleInNameplates?.InheritedValue ?? false)) - newStatusIcon = jobIconSets.GetJobIcon(tag.JobIconSet?.InheritedValue ?? JobIconSetName.Framed, classJob.Id); + newStatusIcon = jobIconSets.GetJobIcon(tag.JobIconSet?.InheritedValue ?? JobIconSetName.Framed, classJob.Value.RowId); } } @@ -183,7 +184,7 @@ public class NameplateTagTargetFeature : TagTargetFeature applyTextFormatting(customTag); } - if (handler.PlayerCharacter.ClassJob.GameData != null && pluginData.JobTags.TryGetValue(handler.PlayerCharacter.ClassJob.GameData.Abbreviation, out var jobTag)) + if (handler.PlayerCharacter.ClassJob.ValueNullable is ClassJob classJob && pluginData.JobTags.TryGetValue(classJob.Abbreviation.ParseString(), out var jobTag)) applyTextFormatting(jobTag); void applyTextFormatting(Tag tag) diff --git a/PlayerTags/PlayerTags.csproj b/PlayerTags/PlayerTags.csproj index b2c6f87..4a89693 100644 --- a/PlayerTags/PlayerTags.csproj +++ b/PlayerTags/PlayerTags.csproj @@ -24,7 +24,7 @@ - + $(DalamudLibPath)FFXIVClientStructs.dll diff --git a/PlayerTags/UIColorHelper.cs b/PlayerTags/UIColorHelper.cs index a447993..a21b25a 100644 --- a/PlayerTags/UIColorHelper.cs +++ b/PlayerTags/UIColorHelper.cs @@ -1,5 +1,5 @@ using ImGuiNET; -using Lumina.Excel.GeneratedSheets; +using Lumina.Excel.Sheets; using System; using System.Collections.Generic; using System.Linq; @@ -11,14 +11,9 @@ public static class UIColorHelper { private class UIColorComparer : IEqualityComparer { - public bool Equals(UIColor? left, UIColor? right) + public bool Equals(UIColor left, UIColor right) { - if (left != null && right != null) - { - return left.UIForeground == right.UIForeground; - } - - return false; + return left.UIForeground == right.UIForeground; } public int GetHashCode(UIColor obj) diff --git a/PlayerTags/packages.lock.json b/PlayerTags/packages.lock.json index 1882cb3..64aee44 100644 --- a/PlayerTags/packages.lock.json +++ b/PlayerTags/packages.lock.json @@ -4,9 +4,9 @@ "net8.0-windows7.0": { "DalamudPackager": { "type": "Direct", - "requested": "[2.1.13, )", - "resolved": "2.1.13", - "contentHash": "rMN1omGe8536f4xLMvx9NwfvpAc9YFFfeXJ1t4P4PE6Gu8WCIoFliR1sh07hM+bfODmesk/dvMbji7vNI+B/pQ==" + "requested": "[11.0.0, )", + "resolved": "11.0.0", + "contentHash": "bjT7XUlhIJSmsE/O76b7weUX+evvGQctbQB8aKXt94o+oPWxHpCepxAGMs7Thow3AzCyqWs7cOpp9/2wcgRRQA==" }, "pilz.dalamud": { "type": "Project"