feat(debugger): reactivate PayloadHandler counters (R3)

K reactivates the debugger's PayloadHandler counter readout
(HandleTooltips / HoveredItem / HoverCounter / LastHoverCounter —
populated in E1's PayloadHandler skeleton). PayloadHandler injected
via DI-extended ctor; class flipped to internal sealed to match
PayloadHandler's internal visibility and avoid CS0051. Plugin.cs
property updated public → internal accordingly (same pattern as I/J).

Last Phase-3 window sub-task before A2 (Lender + handler.Draw fix),
J2 (InputBar slash-callback), Polish-Sweep, and Smoke-Gate.
This commit is contained in:
2026-05-27 22:54:33 +02:00
parent 830d247eda
commit c652a1c450
3 changed files with 13 additions and 7 deletions
+1 -1
View File
@@ -102,7 +102,7 @@ public sealed class Plugin : IAsyncDalamudPlugin
internal CommandHelpWindow CommandHelpWindow { get; private set; } = null!;
public SeStringDebugger SeStringDebugger { get; private set; } = null!;
public FirstRunWizard FirstRunWizard { get; private set; } = null!;
public DebuggerWindow DebuggerWindow { get; private set; } = null!;
internal DebuggerWindow DebuggerWindow { get; private set; } = null!;
internal Commands Commands { get; private set; } = null!;
internal GameFunctions.GameFunctions Functions { get; private set; } = null!;
+4 -1
View File
@@ -292,7 +292,10 @@ internal static class PluginHostFactory
sp.GetRequiredService<ILogger<CommandHelpWindow>>()
));
services.AddSingleton(sp => new SeStringDebugger(sp.GetRequiredService<Plugin>()));
services.AddSingleton(sp => new DebuggerWindow(sp.GetRequiredService<Plugin>()));
services.AddSingleton(sp => new DebuggerWindow(
sp.GetRequiredService<Plugin>(),
sp.GetRequiredService<PayloadHandler>()
));
services.AddSingleton(sp => new FirstRunWizard(sp.GetRequiredService<Plugin>()));
// Hosted-service adapters: thin wrappers around the existing init
+8 -5
View File
@@ -11,16 +11,16 @@ namespace HellionChat.Ui;
// Dev tool. Reduced to the parts that survive without the legacy chat
// window: current-tab channel state and the vanilla chat channel label.
// The chat-window cursor and payload-handler counters come back once the
// new chat layer surfaces equivalent state.
public class DebuggerWindow : Window, IDisposable
internal sealed class DebuggerWindow : Window, IDisposable
{
private readonly Plugin Plugin;
private readonly PayloadHandler _payloadHandler;
public DebuggerWindow(Plugin plugin)
public DebuggerWindow(Plugin plugin, PayloadHandler payloadHandler)
: base("Debugger###chat2-debugger")
{
Plugin = plugin;
_payloadHandler = payloadHandler;
SizeConstraints = new WindowSizeConstraints
{
@@ -41,7 +41,10 @@ public class DebuggerWindow : Window, IDisposable
ImGui.SetClipboardText(agent.ToString("X"));
ImGuiHelpers.ScaledDummy(5.0f);
ImGui.TextDisabled("Payload handler counters: offline during the chat rebuild.");
ImGui.TextUnformatted($"Handle Tooltips: {_payloadHandler.HandleTooltips}");
ImGui.TextUnformatted($"Hovered Item: {_payloadHandler.HoveredItem}");
ImGui.TextUnformatted($"Hover Counter: {_payloadHandler.HoverCounter}");
ImGui.TextUnformatted($"Last Hover Counter: {_payloadHandler.LastHoverCounter}");
ImGuiHelpers.ScaledDummy(5.0f);
ImGui.TextColored(ImGuiColors.DalamudOrange, "Current Tab");