PvP hotbar fix: load saved PvE on zone leave then use live bars; Show Action ID in tooltips

- On leaving PvP, LoadSavedHotbar for all 10 bars (via TryRestorePvEHotbarsAfterLeavePvP in Framework update) and re-apply for ~2s so live Hotbars show PvE
- GetSlotData always reads from live StandardHotbars so combo updates (e.g. Pictomancer) and icons work normally
- Misc: Show Action ID option in Misc -> Tooltips; hotbar/party cooldown tooltips pass TooltipIdKind for Action vs Status IDs

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-08 16:26:26 -05:00
parent 5ffbdd0b51
commit ccee580789
9 changed files with 186 additions and 102 deletions
+20 -10
View File
@@ -470,18 +470,28 @@ namespace HSUI.Helpers
public void OnFrameworkUpdate(IFramework framework)
{
// Keep WndProc hooked when: proxy mode (for mouseover) OR we need to block game drag
// release (so dropping on HSUI action bar doesn't execute the ability).
bool needHook = IsProxyEnabled || ShouldBlockGameDragRelease();
if (needHook && _wndProcPtr == IntPtr.Zero)
try
{
HookWndProc();
// Only log when we actually installed (HookWndProc can return early during init delay)
if (_wndProcPtr != IntPtr.Zero && IsActionBarDragDropDebugEnabled())
Plugin.Logger.Information("[HSUI DragDrop DBG] WndProc hook INSTALLED (needHook=true for drag-block)");
// When leaving PvP, force load PvE hotbars so HSUI bars don't keep showing PvP actions.
ActionBarsManager.TryRestorePvEHotbarsAfterLeavePvP();
// Keep WndProc hooked when: proxy mode (for mouseover) OR we need to block game drag
// release (so dropping on HSUI action bar doesn't execute the ability).
bool needHook = IsProxyEnabled || ShouldBlockGameDragRelease();
if (needHook && _wndProcPtr == IntPtr.Zero)
{
HookWndProc();
// Only log when we actually installed (HookWndProc can return early during init delay)
if (_wndProcPtr != IntPtr.Zero && IsActionBarDragDropDebugEnabled())
Plugin.Logger.Information("[HSUI DragDrop DBG] WndProc hook INSTALLED (needHook=true for drag-block)");
}
else if (!needHook && _wndProcPtr != IntPtr.Zero)
RestoreWndProc();
}
catch (Exception ex)
{
Plugin.Logger.Warning($"[HSUI InputsHelper] OnFrameworkUpdate: {ex.Message}");
}
else if (!needHook && _wndProcPtr != IntPtr.Zero)
RestoreWndProc();
}
private static bool ShouldBlockGameDragRelease()