You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It will work fine for events on _ActionBar01, but will cause an instantaneous CTD when there's an event on any other hotbar, even if I didn't register a listener for any of them.
The stack overflow looks like this:
Stack overflow.
at System.Collections.Generic.List`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].GetEnumerator()
at System.Linq.Enumerable+WhereListIterator`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext()
at Dalamud.Game.Addon.Lifecycle.AddonLifecycle.InvokeListeners(Dalamud.Game.Addon.Lifecycle.AddonEvent, Dalamud.Game.Addon.Lifecycle.AddonArgTypes.AddonArgs)
at Dalamud.Game.Addon.Lifecycle.AddonLifecycle.OnReceiveEvent(FFXIVClientStructs.FFXIV.Component.GUI.AtkUnitBase*, FFXIVClientStructs.FFXIV.Component.GUI.AtkEventType, Int32, FFXIVClientStructs.FFXIV.Component.GUI.AtkEvent*, IntPtr)
at Dalamud.Game.Addon.Lifecycle.AddonLifecycle.OnReceiveEvent(FFXIVClientStructs.FFXIV.Component.GUI.AtkUnitBase*, FFXIVClientStructs.FFXIV.Component.GUI.AtkEventType, Int32, FFXIVClientStructs.FFXIV.Component.GUI.AtkEvent*, IntPtr)
at Dalamud.Game.Addon.Lifecycle.AddonLifecycle.OnReceiveEvent(FFXIVClientStructs.FFXIV.Component.GUI.AtkUnitBase*, FFXIVClientStructs.FFXIV.Component.GUI.AtkEventType, Int32, FFXIVClientStructs.FFXIV.Component.GUI.AtkEvent*, IntPtr)
at Dalamud.Game.Addon.Lifecycle.AddonLifecycle.OnReceiveEvent(FFXIVClientStructs.FFXIV.Component.GUI.AtkUnitBase*, FFXIVClientStructs.FFXIV.Component.GUI.AtkEventType, Int32, FFXIVClientStructs.FFXIV.Component.GUI.AtkEvent*, IntPtr)
at Dalamud.Game.Addon.Lifecycle.AddonLifecycle.OnReceiveEvent(FFXIVClientStructs.FFXIV.Component.GUI.AtkUnitBase*, FFXIVClientStructs.FFXIV.Component.GUI.AtkEventType, Int32, FFXIVClientStructs.FFXIV.Component.GUI.AtkEvent*, IntPtr)
at Dalamud.Game.Addon.Lifecycle.AddonLifecycle.OnReceiveEvent(FFXIVClientStructs.FFXIV.Component.GUI.AtkUnitBase*, FFXIVClientStructs.FFXIV.Component.GUI.AtkEventType, Int32, FFXIVClientStructs.FFXIV.Component.GUI.AtkEvent*, IntPtr)
I'm not sure I have an especially advanced use-case; listen for ReceiveEvent, check the type, call one of my plugin's methods if it's a certain type. Not much happening inside the handler.
I'm content to stick with the hook that I currently use for this functionality, but a guardrail or blacklist for addons which share listeners might be appropriate.
I'm running into an issue using
AddonEvent.PostReceiveEvent
with certain addons. If I set up aPreReceiveEvent
orPostReceiveEvent
listener like this:AddonLifecycle.RegisterListener(AddonEvent.PostReceiveEvent, "_ActionBar01", ReceiveEventHandler);
With a simple handler like this:
It will work fine for events on
_ActionBar01
, but will cause an instantaneous CTD when there's an event on any other hotbar, even if I didn't register a listener for any of them.The stack overflow looks like this:
...and so on for a couple hundred lines.
@MidoriKami
The text was updated successfully, but these errors were encountered: