From 2ac48bbd81fc240b2165f93ff5777c3131790707 Mon Sep 17 00:00:00 2001 From: Knack117 Date: Tue, 10 Feb 2026 21:24:16 -0500 Subject: [PATCH] v1.0.8.10: Hotbar crash fix when dragging inventory items; Release builds strip PDBs Co-authored-by: Cursor --- HSUI.csproj | 9 ++++++--- HSUI.json | 2 +- Helpers/TexturesHelper.cs | 15 +++++++++++++-- Interface/Nameplates/NameplateConfig.cs | 4 ---- Interface/Nameplates/NameplatesHud.cs | 17 ----------------- changelog.md | 4 ++++ pluginmaster.json | 2 +- 7 files changed, 25 insertions(+), 28 deletions(-) diff --git a/HSUI.csproj b/HSUI.csproj index ac94287..3519914 100644 --- a/HSUI.csproj +++ b/HSUI.csproj @@ -9,9 +9,9 @@ HSUI - 1.0.8.9 - 1.0.8.9 - 1.0.8.9 + 1.0.8.10 + 1.0.8.10 + 1.0.8.10 @@ -24,6 +24,9 @@ true + + none + false diff --git a/HSUI.json b/HSUI.json index 1b685f1..6f89d20 100644 --- a/HSUI.json +++ b/HSUI.json @@ -2,7 +2,7 @@ "Author": "Knack117", "Name": "HSUI", "InternalName": "HSUI", - "AssemblyVersion": "1.0.8.9", + "AssemblyVersion": "1.0.8.10", "Description": "HSUI provides a highly configurable HUD replacement for FFXIV, recreated from DelvUI using KamiToolKit, FFXIVClientStructs, and Dalamud. Features unit frames, castbars, job gauges, nameplates, party frames, status effects, enemy list, configurable hotbars with drag-and-drop, and profiles.", "ApplicableVersion": "any", "RepoUrl": "https://github.com/Knack117/HSUI", diff --git a/Helpers/TexturesHelper.cs b/Helpers/TexturesHelper.cs index 112f951..6710078 100644 --- a/Helpers/TexturesHelper.cs +++ b/Helpers/TexturesHelper.cs @@ -22,8 +22,19 @@ namespace HSUI.Helpers public static IDalamudTextureWrap? GetTextureFromIconId(uint iconId, uint stackCount = 0, bool hdIcon = true) { - GameIconLookup lookup = new GameIconLookup(iconId + stackCount, false, hdIcon); - return Plugin.TextureProvider.GetFromGameIcon(lookup).GetWrapOrDefault(); + if (iconId == 0) + return null; + + try + { + GameIconLookup lookup = new GameIconLookup(iconId + stackCount, false, hdIcon); + return Plugin.TextureProvider.GetFromGameIcon(lookup).GetWrapOrDefault(); + } + catch + { + // GetFromGameIcon can throw for invalid/unsupported icon IDs (e.g. certain inventory item icons during drag-drop) + return null; + } } public static IDalamudTextureWrap? GetTextureFromPath(string path) diff --git a/Interface/Nameplates/NameplateConfig.cs b/Interface/Nameplates/NameplateConfig.cs index 2470c65..7ea18a9 100644 --- a/Interface/Nameplates/NameplateConfig.cs +++ b/Interface/Nameplates/NameplateConfig.cs @@ -45,10 +45,6 @@ namespace HSUI.Interface.GeneralElements [Order(21)] public bool AlwaysShowTargetNameplate = true; - [Checkbox("In PvP, show only enemy player nameplates", spacing = true, help = "When in Frontlines, Rival Wings, or Crystal Conflict, hide ally player nameplates (party, alliance, teammates) and show only enemy players. Uses Enemy nameplate styling for PvP enemies.")] - [Order(22)] - public bool PvPShowOnlyEnemyPlayers = false; - public int RaycastFlag() => OcclusionType == NameplatesOcclusionType.WallsAndObjects ? 0x2000 : 0x4000; } diff --git a/Interface/Nameplates/NameplatesHud.cs b/Interface/Nameplates/NameplatesHud.cs index 6bcf4b4..1e3a08e 100644 --- a/Interface/Nameplates/NameplatesHud.cs +++ b/Interface/Nameplates/NameplatesHud.cs @@ -128,23 +128,6 @@ namespace HSUI.Interface.Nameplates return _playerHud; } - // In PvP, optionally show only enemy player nameplates (hide allies) - if (Config.PvPShowOnlyEnemyPlayers && Plugin.ClientState.IsPvP) - { - if (data.GameObject is ICharacter character) - { - if ((character.StatusFlags & StatusFlags.PartyMember) != 0 || - (character.StatusFlags & StatusFlags.AllianceMember) != 0 || - (character.StatusFlags & StatusFlags.Friend) != 0) - { - return null; // Hide party, alliance, and friend nameplates - } - } - // Other players: show only hostile (enemy team), hide allies - if (data.GameObject == null) { return null; } - return Utils.IsHostile(data.GameObject) ? _enemyHud : null; - } - if (data.GameObject is ICharacter character2) { if ((character2.StatusFlags & StatusFlags.PartyMember) != 0) // PartyMember diff --git a/changelog.md b/changelog.md index 775dd3f..77a8e94 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,7 @@ +# 1.0.8.10 +- **Hotbars**: Fixed crash when dragging items from inventory to hotbar — GetFromGameIcon can throw for invalid/unsupported icon IDs; now handled gracefully. +- **Build**: Release builds no longer emit PDBs to avoid local path leakage in user crash logs. + # 1.0.8.9 - **Hotbars**: Gearset on slot now persists — do not treat slot as empty when CommandType is GearSet (gearset index 0 uses CommandId 0). Use CommandType/CommandId for GearSet display and resolve icon when IconId is still 0. diff --git a/pluginmaster.json b/pluginmaster.json index 7f52fc6..a4c07fe 100644 --- a/pluginmaster.json +++ b/pluginmaster.json @@ -1 +1 @@ -[{"Author":"Knack117","Name":"HSUI","Punchline":"A modern HUD replacement built for customization.","Description":"HSUI provides a highly configurable HUD replacement for FFXIV, recreated from DelvUI using KamiToolKit, FFXIVClientStructs, and Dalamud. Features unit frames, castbars, job gauges, nameplates, party frames, status effects, enemy list, configurable hotbars with drag-and-drop, and profiles.","Changelog":"1.0.8.9: Gearset persists on slot (fix CommandId 0 treated as empty). 1.0.8.8: Gearset drag-drop fix; allow first gearset (index 0) on bar. 1.0.8.7: Fixed Gearset/Job Gear Set icon clearing when first equipment slot changes. 1.0.8.6: Crafting action tooltips now show full description instead of action name. 1.0.8.4: Alliance Frames 1 and 2 fix in raids; crafting action tooltips; Hide in duty no longer hides alliance frames. 1.0.8.3: Fix left-click staying broken after disable. 1.0.8.2: Charge icons stay lit until all charges spent.","InternalName":"HSUI","AssemblyVersion":"1.0.8.9","RepoUrl":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI","ApplicableVersion":"any","Tags":["UI","HUD","Unit Frames","Nameplates","Party Frames","Hotbars"],"CategoryTags":["UI"],"DalamudApiLevel":14,"IconUrl":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/raw/branch/main/Media/Images/icon.png","ImageUrls":[],"DownloadLinkInstall":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/releases/download/v1.0.8.9/latest.zip","IsHide":false,"IsTestingExclusive":false,"DownloadLinkTesting":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/releases/download/v1.0.8.9/latest.zip","DownloadLinkUpdate":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/releases/download/v1.0.8.9/latest.zip","LastUpdate":"1739318400"}] +[{"Author":"Knack117","Name":"HSUI","Punchline":"A modern HUD replacement built for customization.","Description":"HSUI provides a highly configurable HUD replacement for FFXIV, recreated from DelvUI using KamiToolKit, FFXIVClientStructs, and Dalamud. Features unit frames, castbars, job gauges, nameplates, party frames, status effects, enemy list, configurable hotbars with drag-and-drop, and profiles.","Changelog":"1.0.8.10: Hotbar crash fix when dragging inventory items; Release builds strip PDBs. 1.0.8.9: Gearset persists on slot (fix CommandId 0 treated as empty). 1.0.8.8: Gearset drag-drop fix; allow first gearset (index 0) on bar. 1.0.8.7: Fixed Gearset/Job Gear Set icon clearing when first equipment slot changes. 1.0.8.6: Crafting action tooltips now show full description instead of action name. 1.0.8.4: Alliance Frames 1 and 2 fix in raids; crafting action tooltips; Hide in duty no longer hides alliance frames. 1.0.8.3: Fix left-click staying broken after disable. 1.0.8.2: Charge icons stay lit until all charges spent.","InternalName":"HSUI","AssemblyVersion":"1.0.8.10","RepoUrl":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI","ApplicableVersion":"any","Tags":["UI","HUD","Unit Frames","Nameplates","Party Frames","Hotbars"],"CategoryTags":["UI"],"DalamudApiLevel":14,"IconUrl":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/raw/branch/main/Media/Images/icon.png","ImageUrls":[],"DownloadLinkInstall":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/releases/download/v1.0.8.10/latest.zip","IsHide":false,"IsTestingExclusive":false,"DownloadLinkTesting":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/releases/download/v1.0.8.10/latest.zip","DownloadLinkUpdate":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/releases/download/v1.0.8.10/latest.zip","LastUpdate":"1760227200"}]