40 lines
1.4 KiB
C#
40 lines
1.4 KiB
C#
using System.Diagnostics;
|
|
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
|
|
|
|
namespace KamiToolKit.Classes;
|
|
|
|
/// WARNING: These features are potentially extremely volatile, use at your own risk.
|
|
public unsafe class Experimental {
|
|
private static Experimental? instance;
|
|
public static Experimental Instance => instance ??= new Experimental();
|
|
|
|
public void EnableHooks() { }
|
|
|
|
public void DisposeHooks() {
|
|
}
|
|
|
|
// WARNING: May result in undefined state or accidental network requests
|
|
// Use at your own risk.
|
|
[Conditional("DEBUG")]
|
|
public static void ForceOpenAddon(AgentId agentId, int delayTicks = 0) {
|
|
if (delayTicks is not 0) {
|
|
DalamudInterface.Instance.Framework.RunOnTick(() => {
|
|
AgentModule.Instance()->GetAgentByInternalId(agentId)->Show();
|
|
}, delayTicks: delayTicks);
|
|
}
|
|
else {
|
|
DalamudInterface.Instance.Framework.RunOnFrameworkThread(() => {
|
|
AgentModule.Instance()->GetAgentByInternalId(agentId)->Show();
|
|
});
|
|
}
|
|
}
|
|
|
|
// WARNING: May result in undefined state or accidental network requests
|
|
// Use at your own risk.
|
|
[Conditional("DEBUG")]
|
|
public static void ForceCloseAddon(AgentId agentId)
|
|
=> DalamudInterface.Instance.Framework.RunOnFrameworkThread(() => {
|
|
AgentModule.Instance()->GetAgentByInternalId(agentId)->Hide();
|
|
});
|
|
}
|