una-xiv / umbra

Umbra XIV - Adds quality of life improvements to the game and consolidates common UI elements and actions into a single uniform interface.
GNU Affero General Public License v3.0
51 stars 18 forks source link

[Bug] DtrBar exception on disabling other plugins #46

Closed kelvin124124 closed 2 months ago

kelvin124124 commented 2 months ago

Using Umbra v1.0.2.18 on Github (8bbeea6)

Plugin throw exception upon disabling Yes Already and spam warnings in chat when user click the element. Also make Dalamud window look weird. Don't know if the bug exists for plugins other than Yes Already.

image

Disable Yes Already

22:21:30.679 | ERR | Unobserved exception in Task.
    System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (Exception has been thrown by the target of an invocation.)
     ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
     ---> System.Collections.Generic.KeyNotFoundException: The given key 'YesAlready' was not present in the dictionary.
       at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
       at Umbra.Game.DtrBarEntryRepository.OnTick() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntryRepository.cs:line 59
       at InvokeStub_DtrBarEntryRepository.OnTick(Object, Object, IntPtr*)
       at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
       --- End of inner exception stack trace ---
       at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
       at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
       at Umbra.Common.Scheduler.TickHandler.Invoke(Double deltaTime) in C:\Users\gamep\source\repos\umbra\Umbra.Common\src\Scheduler\Scheduler.cs:line 151
       at Umbra.Common.Scheduler.<>c__DisplayClass7_0.<OnUmbraTick>b__0() in C:\Users\gamep\source\repos\umbra\Umbra.Common\src\Scheduler\Scheduler.cs:line 75
       at Dalamud.Game.Framework.RunOnFrameworkThread(Action action) in C:\goatsoft\companysecrets\dalamud\Game\Framework.cs:line 191
       --- End of inner exception stack trace ---

Re-enable Yes Already

22:21:36.305 | ERR | Unobserved exception in Task.
    System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (Exception has been thrown by the target of an invocation.)
     ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
     ---> System.InvalidOperationException: Element with ID 'DtrBarWidget_yesalready' already exists in 'DtrBarWidget'.
       at Umbra.Interface.Element.AddChild(Element child) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Hierarchy.cs:line 50
       at Umbra.Toolbar.Widgets.DtrBar.DtrBarWidget.OnEntryAdded(DtrBarEntry entry) in C:\Users\gamep\source\repos\umbra\Umbra\src\Toolbar\Widgets\DtrBar\DtrBarWidget.cs:line 64
       at Umbra.Game.DtrBarEntryRepository.OnTick() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntryRepository.cs:line 48
       at InvokeStub_DtrBarEntryRepository.OnTick(Object, Object, IntPtr*)
       at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
       --- End of inner exception stack trace ---
       at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
       at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
       at Umbra.Common.Scheduler.TickHandler.Invoke(Double deltaTime) in C:\Users\gamep\source\repos\umbra\Umbra.Common\src\Scheduler\Scheduler.cs:line 151
       at Umbra.Common.Scheduler.<>c__DisplayClass7_0.<OnUmbraTick>b__0() in C:\Users\gamep\source\repos\umbra\Umbra.Common\src\Scheduler\Scheduler.cs:line 75
       at Dalamud.Game.Framework.RunOnFrameworkThread(Action action) in C:\goatsoft\companysecrets\dalamud\Game\Framework.cs:line 191
       --- End of inner exception stack trace ---

Click on the element after disabling Yes Already

22:22:28.386 | WRN | [Umbra] Rendering of element 'Toolbar.Right.DtrBarWidget.DtrBarWidget_yesalready' failed: Object reference not set to an instance of an object. -    at YesAlready.YesAlready.<>c.<FrameworkUpdate>b__83_0() in C:\Users\snow\Documents\Code\FFXIV Plugins\YesAlready\YesAlready\YesAlready.cs:line 216
       at Dalamud.Game.Gui.Dtr.DtrBarEntry.TriggerClickAction() in C:\goatsoft\companysecrets\dalamud\Game\Gui\Dtr\DtrBarEntry.cs:line 174
       at Umbra.Game.DtrBarEntry.<>c__DisplayClass0_0.<.ctor>b__0() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 34
       at Umbra.Game.DtrBarEntry.InvokeClickAction() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 47
       at Umbra.Interface.Element.SetupInteractive(ImDrawListPtr drawList) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Interaction.cs:line 149
       at Umbra.Interface.Element.Render(ImDrawListPtr drawList, Nullable`1 position) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Renderer.cs:line 47
22:22:28.394 | WRN | [Umbra] Rendering of element 'Toolbar.Right.DtrBarWidget.DtrBarWidget_yesalready' failed: Object reference not set to an instance of an object. -    at YesAlready.YesAlready.<>c.<FrameworkUpdate>b__83_0() in C:\Users\snow\Documents\Code\FFXIV Plugins\YesAlready\YesAlready\YesAlready.cs:line 216
       at Dalamud.Game.Gui.Dtr.DtrBarEntry.TriggerClickAction() in C:\goatsoft\companysecrets\dalamud\Game\Gui\Dtr\DtrBarEntry.cs:line 174
       at Umbra.Game.DtrBarEntry.<>c__DisplayClass0_0.<.ctor>b__0() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 34
       at Umbra.Game.DtrBarEntry.InvokeClickAction() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 47
       at Umbra.Interface.Element.SetupInteractive(ImDrawListPtr drawList) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Interaction.cs:line 149
       at Umbra.Interface.Element.Render(ImDrawListPtr drawList, Nullable`1 position) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Renderer.cs:line 47
22:22:28.403 | WRN | [Umbra] Rendering of element 'Toolbar.Right.DtrBarWidget.DtrBarWidget_yesalready' failed: Object reference not set to an instance of an object. -    at YesAlready.YesAlready.<>c.<FrameworkUpdate>b__83_0() in C:\Users\snow\Documents\Code\FFXIV Plugins\YesAlready\YesAlready\YesAlready.cs:line 216
       at Dalamud.Game.Gui.Dtr.DtrBarEntry.TriggerClickAction() in C:\goatsoft\companysecrets\dalamud\Game\Gui\Dtr\DtrBarEntry.cs:line 174
       at Umbra.Game.DtrBarEntry.<>c__DisplayClass0_0.<.ctor>b__0() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 34
       at Umbra.Game.DtrBarEntry.InvokeClickAction() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 47
       at Umbra.Interface.Element.SetupInteractive(ImDrawListPtr drawList) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Interaction.cs:line 149
       at Umbra.Interface.Element.Render(ImDrawListPtr drawList, Nullable`1 position) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Renderer.cs:line 47
22:22:28.411 | WRN | [Umbra] Rendering of element 'Toolbar.Right.DtrBarWidget.DtrBarWidget_yesalready' failed: Object reference not set to an instance of an object. -    at YesAlready.YesAlready.<>c.<FrameworkUpdate>b__83_0() in C:\Users\snow\Documents\Code\FFXIV Plugins\YesAlready\YesAlready\YesAlready.cs:line 216
       at Dalamud.Game.Gui.Dtr.DtrBarEntry.TriggerClickAction() in C:\goatsoft\companysecrets\dalamud\Game\Gui\Dtr\DtrBarEntry.cs:line 174
       at Umbra.Game.DtrBarEntry.<>c__DisplayClass0_0.<.ctor>b__0() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 34
       at Umbra.Game.DtrBarEntry.InvokeClickAction() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 47
       at Umbra.Interface.Element.SetupInteractive(ImDrawListPtr drawList) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Interaction.cs:line 149
       at Umbra.Interface.Element.Render(ImDrawListPtr drawList, Nullable`1 position) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Renderer.cs:line 47
22:22:28.420 | WRN | [Umbra] Rendering of element 'Toolbar.Right.DtrBarWidget.DtrBarWidget_yesalready' failed: Object reference not set to an instance of an object. -    at YesAlready.YesAlready.<>c.<FrameworkUpdate>b__83_0() in C:\Users\snow\Documents\Code\FFXIV Plugins\YesAlready\YesAlready\YesAlready.cs:line 216
       at Dalamud.Game.Gui.Dtr.DtrBarEntry.TriggerClickAction() in C:\goatsoft\companysecrets\dalamud\Game\Gui\Dtr\DtrBarEntry.cs:line 174
       at Umbra.Game.DtrBarEntry.<>c__DisplayClass0_0.<.ctor>b__0() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 34
       at Umbra.Game.DtrBarEntry.InvokeClickAction() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 47
       at Umbra.Interface.Element.SetupInteractive(ImDrawListPtr drawList) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Interaction.cs:line 149
       at Umbra.Interface.Element.Render(ImDrawListPtr drawList, Nullable`1 position) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Renderer.cs:line 47
22:22:28.429 | WRN | [Umbra] Rendering of element 'Toolbar.Right.DtrBarWidget.DtrBarWidget_yesalready' failed: Object reference not set to an instance of an object. -    at YesAlready.YesAlready.<>c.<FrameworkUpdate>b__83_0() in C:\Users\snow\Documents\Code\FFXIV Plugins\YesAlready\YesAlready\YesAlready.cs:line 216
       at Dalamud.Game.Gui.Dtr.DtrBarEntry.TriggerClickAction() in C:\goatsoft\companysecrets\dalamud\Game\Gui\Dtr\DtrBarEntry.cs:line 174
       at Umbra.Game.DtrBarEntry.<>c__DisplayClass0_0.<.ctor>b__0() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 34
       at Umbra.Game.DtrBarEntry.InvokeClickAction() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 47
       at Umbra.Interface.Element.SetupInteractive(ImDrawListPtr drawList) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Interaction.cs:line 149
       at Umbra.Interface.Element.Render(ImDrawListPtr drawList, Nullable`1 position) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Renderer.cs:line 47
22:22:28.438 | WRN | [Umbra] Rendering of element 'Toolbar.Right.DtrBarWidget.DtrBarWidget_yesalready' failed: Object reference not set to an instance of an object. -    at YesAlready.YesAlready.<>c.<FrameworkUpdate>b__83_0() in C:\Users\snow\Documents\Code\FFXIV Plugins\YesAlready\YesAlready\YesAlready.cs:line 216
       at Dalamud.Game.Gui.Dtr.DtrBarEntry.TriggerClickAction() in C:\goatsoft\companysecrets\dalamud\Game\Gui\Dtr\DtrBarEntry.cs:line 174
       at Umbra.Game.DtrBarEntry.<>c__DisplayClass0_0.<.ctor>b__0() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 34
       at Umbra.Game.DtrBarEntry.InvokeClickAction() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 47
       at Umbra.Interface.Element.SetupInteractive(ImDrawListPtr drawList) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Interaction.cs:line 149
       at Umbra.Interface.Element.Render(ImDrawListPtr drawList, Nullable`1 position) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Renderer.cs:line 47
22:22:28.449 | WRN | [Umbra] Rendering of element 'Toolbar.Right.DtrBarWidget.DtrBarWidget_yesalready' failed: Object reference not set to an instance of an object. -    at YesAlready.YesAlready.<>c.<FrameworkUpdate>b__83_0() in C:\Users\snow\Documents\Code\FFXIV Plugins\YesAlready\YesAlready\YesAlready.cs:line 216
       at Dalamud.Game.Gui.Dtr.DtrBarEntry.TriggerClickAction() in C:\goatsoft\companysecrets\dalamud\Game\Gui\Dtr\DtrBarEntry.cs:line 174
       at Umbra.Game.DtrBarEntry.<>c__DisplayClass0_0.<.ctor>b__0() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 34
       at Umbra.Game.DtrBarEntry.InvokeClickAction() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 47
       at Umbra.Interface.Element.SetupInteractive(ImDrawListPtr drawList) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Interaction.cs:line 149
       at Umbra.Interface.Element.Render(ImDrawListPtr drawList, Nullable`1 position) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Renderer.cs:line 47
22:22:28.459 | WRN | [Umbra] Rendering of element 'Toolbar.Right.DtrBarWidget.DtrBarWidget_yesalready' failed: Object reference not set to an instance of an object. -    at YesAlready.YesAlready.<>c.<FrameworkUpdate>b__83_0() in C:\Users\snow\Documents\Code\FFXIV Plugins\YesAlready\YesAlready\YesAlready.cs:line 216
       at Dalamud.Game.Gui.Dtr.DtrBarEntry.TriggerClickAction() in C:\goatsoft\companysecrets\dalamud\Game\Gui\Dtr\DtrBarEntry.cs:line 174
       at Umbra.Game.DtrBarEntry.<>c__DisplayClass0_0.<.ctor>b__0() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 34
       at Umbra.Game.DtrBarEntry.InvokeClickAction() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 47
       at Umbra.Interface.Element.SetupInteractive(ImDrawListPtr drawList) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Interaction.cs:line 149
       at Umbra.Interface.Element.Render(ImDrawListPtr drawList, Nullable`1 position) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Renderer.cs:line 47
22:22:28.469 | WRN | [Umbra] Rendering of element 'Toolbar.Right.DtrBarWidget.DtrBarWidget_yesalready' failed: Object reference not set to an instance of an object. -    at YesAlready.YesAlready.<>c.<FrameworkUpdate>b__83_0() in C:\Users\snow\Documents\Code\FFXIV Plugins\YesAlready\YesAlready\YesAlready.cs:line 216
       at Dalamud.Game.Gui.Dtr.DtrBarEntry.TriggerClickAction() in C:\goatsoft\companysecrets\dalamud\Game\Gui\Dtr\DtrBarEntry.cs:line 174
       at Umbra.Game.DtrBarEntry.<>c__DisplayClass0_0.<.ctor>b__0() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 34
       at Umbra.Game.DtrBarEntry.InvokeClickAction() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 47
       at Umbra.Interface.Element.SetupInteractive(ImDrawListPtr drawList) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Interaction.cs:line 149
       at Umbra.Interface.Element.Render(ImDrawListPtr drawList, Nullable`1 position) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Renderer.cs:line 47
22:22:28.479 | WRN | [Umbra] Rendering of element 'Toolbar.Right.DtrBarWidget.DtrBarWidget_yesalready' failed: Object reference not set to an instance of an object. -    at YesAlready.YesAlready.<>c.<FrameworkUpdate>b__83_0() in C:\Users\snow\Documents\Code\FFXIV Plugins\YesAlready\YesAlready\YesAlready.cs:line 216
       at Dalamud.Game.Gui.Dtr.DtrBarEntry.TriggerClickAction() in C:\goatsoft\companysecrets\dalamud\Game\Gui\Dtr\DtrBarEntry.cs:line 174
       at Umbra.Game.DtrBarEntry.<>c__DisplayClass0_0.<.ctor>b__0() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 34
       at Umbra.Game.DtrBarEntry.InvokeClickAction() in C:\Users\gamep\source\repos\umbra\Umbra.Game\src\Dtr\DtrBarEntry.cs:line 47
       at Umbra.Interface.Element.SetupInteractive(ImDrawListPtr drawList) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Interaction.cs:line 149
       at Umbra.Interface.Element.Render(ImDrawListPtr drawList, Nullable`1 position) in C:\Users\gamep\source\repos\umbra\Umbra.Interface\src\Element\Element.Renderer.cs:line 47
haroldiedema commented 2 months ago

Wooooops. On it! Thanks for the report!