ZelionGG / XIV_Databar-Continued

Continuation of XIV_Databar addon
https://discord.gg/g7JZNGSU32
GNU General Public License v3.0
5 stars 3 forks source link

Hearthstone Button is hard coded to a set ordered list #8

Closed RealoFoxtrot closed 5 months ago

RealoFoxtrot commented 11 months ago

There is currently no way to choose which Hearthstone the travel.lua module sets other than editing that file directly. This has become an issue since hearthstones are now toys instead of items, and there's no way to drop your most preferred Hearthstone into the list.

Suggested fixes:

Quick and Easy fix: A setting in the options for the user to select their preferred hearthstone rather than using the list. Possibly a branch for a random hearthstone to be used?

More detailed fix: Add a right click context menu similar to the Garrison/Dalaran Hearstone button where a list of all available hearthstones are visible. After clicking on the selected hearthstone, it is saved as the most recent one to be used when next left clicking on the button

ZelionGG commented 10 months ago

Hi, this is an idea I had and, at some point, I will take some time to make that improvement to the Travel module.

Will keep this issue opened just to track that subject, thanks for the suggestion.

ZelionGG commented 10 months ago

New 2.4 release is adding a "Use Random Hearthstone" option in the Travel module options of XIV Bar Continued, this option is disabled by default and it will make the hearthstone button use a random known hearthstone toy each time you click the button. image

Next release will allow you to select hearthstones from a list that will allow you to "favorite" one or more hearthstones.

ZelionGG commented 9 months ago

Heya, release 2.6 added a list of known hearthstones to the Travel module settings, you can check as many as you want and if you check none, the travel module will use its default behavior.

Don't hesitate to check "Use Random Hearthstone" if you check multiple hearthstones 😄

Enjoy and let me know if you encounter any bug !

luimunduk commented 9 months ago

There is a bug with the new version in regards to the added function you have added

2070x XIV_Databar_Continued/Core/modules/system.lua:38: attempt to index field 'system' (a nil value) [string "@XIV_Databar_Continued/Core/modules/system.lua"]:38: in function `Refresh' [string "@XIV_Databar_Continued/Core/modules/system.lua"]:25: in function <XIV_Databar_Continued/Core/modules/system.lua:16>

[string "@Masque/Libs/AceAddon-3.0-13/AceAddon-3.0.lua"]:66: in function <...aceMasque/Libs/AceAddon-3.0/AceAddon-3.0.lua:61> [string "@Masque/Libs/AceAddon-3.0-13/AceAddon-3.0.lua"]:523: in function EnableAddon' [string "@Masque/Libs/AceAddon-3.0-13/AceAddon-3.0.lua"]:536: in functionEnableAddon' [string "@Masque/Libs/AceAddon-3.0-13/AceAddon-3.0.lua"]:626: in function <...aceMasque/Libs/AceAddon-3.0/AceAddon-3.0.lua:611>

string "=[C]": in function LoadAddOn' [string "@FrameXML/UIParent.lua"]:576: in functionUIParentLoadAddOn' [string "@FrameXML/UIParent.lua"]:781: in function MajorFactions_LoadUI' [string "@Blizzard_ExpansionLandingPage/Blizzard_DragonflightLandingPage.lua"]:179: in functionSetUpMajorFactionList' [string "@Blizzard_ExpansionLandingPage/Blizzard_DragonflightLandingPage.lua"]:172: in function RefreshMajorFactionList' [string "@Blizzard_ExpansionLandingPage/Blizzard_DragonflightLandingPage.lua"]:167: in functionRefreshOverlay' [string "@Blizzard_ExpansionLandingPage/Blizzard_DragonflightLandingPage.lua"]:158: in function <...sionLandingPage/Blizzard_DragonflightLandingPage.lua:154> string "=[C]": in function CreateFrame' [string "@Blizzard_ExpansionLandingPage/Blizzard_DragonflightLandingPage.lua"]:122: in functionCreateOverlay' [string "@Blizzard_ExpansionLandingPage/Blizzard_ExpansionLandingPage.lua"]:63: in function `RefreshExpansionOverlay' [string "@Blizzard_ExpansionLandingPage/Blizzard_ExpansionLandingPage.lua"]:35: in function <...pansionLandingPage/Blizzard_ExpansionLandingPage.lua:33>

Locals: self =

{ SetDefaultModuleLibraries = defined @Masque/Libs/AceAddon-3.0/AceAddon-3.0.lua:363 RegisterFrameEvents = defined @XIV_Databar_Continued/Core/modules/system.lua:209 Enable = defined @Masque/Libs/AceAddon-3.0/AceAddon-3.0.lua:290 NewModule = defined @Masque/Libs/AceAddon-3.0/AceAddon-3.0.lua:231 CreateFrames = defined @XIV_Databar_Continued/Core/modules/system.lua:143 EnableModule = defined @Masque/Libs/AceAddon-3.0/AceAddon-3.0.lua:328 modules =
{ } GetModule = defined @Masque/Libs/AceAddon-3.0/AceAddon-3.0.lua:206 IterateEmbeds = defined @Masque/Libs/AceAddon-3.0/AceAddon-3.0.lua:438 ShowTooltip = defined @XIV_Databar_Continued/Core/modules/system.lua:260 SecureHook = defined @ElvUI_Libraries/Core/Ace3/AceHook-3.0/AceHook-3.0.lua:335 defaultModuleLibraries =
{ } baseName = "XIV_Databar_Continued" worldPingText = FontString { } UnregisterAllEvents = defined @Masque/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:164 RawHookScript = defined @ElvUI_Libraries/Core/Ace3/AceHook-3.0/AceHook-3.0.lua:394 pingFrame = Button { } fpsText = FontString { } fpsIcon = Texture { } SetOnClickScript = defined @XIV_Databar_Continued/Core/modules/system.lua:187 SetDefaultModulePrototype = defined @Masque/Libs/AceAddon-3.0/AceAddon-3.0.lua:405 fpsFrame = Button { } systemFrame = Frame { } elapsed = 0 name = "XIV_Databar_Continued_SystemModule" pingText = FontString { } IsEnabled = defined @Masque/Libs/AceAddon-3.0/AceAddon-3.0.lua:447 orderedModules =
{ } GetConfig = defined @XIV_Databar_Continued/Core/modules/system.lua:320 DisableModule = defined @Masque/Libs/AceAddon-3.0/AceAddon-3.0.lua:346 GetDefaultOptions = defined @XIV_Databar_Continued/Core/modules/system.lua:310 HookScript = defined @ElvUI_Libraries/Core/Ace3/AceHook-3.0/AceHook-3.0.lua:365 HoverFunction = defined @XIV_Databar_Continued/Core/modules/system.lua:154 UpdateTexts = defined @XIV_Databar_Continued/Core/modules/system.lua:129 RegisterMessage = defined @Masque/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:80 UnregisterMessage = defined @Masque/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:143 Refresh = defined @XIV_Databar_Continued/Core/modules/system.lua:33 OnDisable = defined @XIV_Databar_Continued/Core/modules/system.lua:28 IsHooked = defined @ElvUI_Libraries/Core/Ace3/AceHook-3.0/AceHook-3.0.lua:492 OnEnable = defined @XIV_Databar_Continued/Core/modules/system.lua:16 OnInitialize = defined @XIV_Databar_Continued/Core/modules/system.lua:12 IsModule = defined @Masque/Libs/AceAddon-3.0/AceAddon-3.0.lua:213 hooks =
{ } SetDefaultModuleState = defined @Masque/Libs/AceAddon-3.0/AceAddon-3.0.lua:383 SendMessage = defined @Masque/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:49 UnhookAll = defined @ElvUI_Libraries/Core/Ace3/AceHook-3.0/AceHook-3.0.lua:476 SetEnabledState = defined @Masque/Libs/AceAddon-3.0/AceAddon-3.0.lua:420 Hook = defined @ElvUI_Libraries/Core/Ace3/AceHook-3.0/AceHook-3.0.lua:273 enabledState = true Unhook = defined @ElvUI_Libraries/Core/Ace3/AceHook-3.0/AceHook-3.0.lua:417 R

RealoFoxtrot commented 9 months ago

Can confirm issues. upon loading the addon, get 13 different errors variously claiming that a field (Travel, system, mastervolume, armor, db, etc) are giving a value of nil.

However, one of them throws an error every single frame update:

Message: ...AddOns/XIV_Databar_Continued/Core/modules/system.lua:38: attempt to index field 'system' (a nil value) Time: Mon Feb 5 02:15:14 2024 Count: 8259 Stack: ...AddOns/XIV_Databar_Continued/Core/modules/system.lua:38: attempt to index field 'system' (a nil value) [string "@Interface/AddOns/XIV_Databar_Continued/Core/modules/system.lua"]:38: in functionRefresh' [string "@Interface/AddOns/XIV_Databar_Continued/Core/modules/system.lua"]:241: in function <...AddOns/XIV_Databar_Continued/Core/modules/system.lua:235>

Locals: self =

{ SetDefaultModuleLibraries = defined @Interface/AddOns/XIV_Databar_Continued/Libs/AceAddon-3.0/AceAddon-3.0.lua:363 RegisterFrameEvents = defined @Interface/AddOns/XIV_Databar_Continued/Core/modules/system.lua:209 Enable = defined @Interface/AddOns/XIV_Databar_Continued/Libs/AceAddon-3.0/AceAddon-3.0.lua:290 NewModule = defined @Interface/AddOns/XIV_Databar_Continued/Libs/AceAddon-3.0/AceAddon-3.0.lua:231 CreateFrames = defined @Interface/AddOns/XIV_Databar_Continued/Core/modules/system.lua:143 EnableModule = defined @Interface/AddOns/XIV_Databar_Continued/Libs/AceAddon-3.0/AceAddon-3.0.lua:328 modules =
{ } GetModule = defined @Interface/AddOns/XIV_Databar_Continued/Libs/AceAddon-3.0/AceAddon-3.0.lua:206 IterateEmbeds = defined @Interface/AddOns/XIV_Databar_Continued/Libs/AceAddon-3.0/AceAddon-3.0.lua:438 ShowTooltip = defined @Interface/AddOns/XIV_Databar_Continued/Core/modules/system.lua:260 SecureHook = defined @Interface/AddOns/XIV_Databar_Continued/Libs/AceHook-3.0/AceHook-3.0.lua:335 defaultModuleLibraries =
{ } baseName = "XIV_Databar_Continued" worldPingText = FontString { } UnregisterAllEvents = defined @Interface/AddOns/XIV_Databar_Continued/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:164 RawHookScript = defined @Interface/AddOns/XIV_Databar_Continued/Libs/AceHook-3.0/AceHook-3.0.lua:394 pingFrame = Button { } fpsText = FontString { } fpsIcon = Texture { } SetOnClickScript = defined @Interface/AddOns/XIV_Databar_Continued/Core/modules/system.lua:187 SetDefaultModulePrototype = defined @Interface/AddOns/XIV_Databar_Continued/Libs/AceAddon-3.0/AceAddon-3.0.lua:405 fpsFrame = Button { } systemFrame = Frame { } elapsed = 183.076004 name = "XIV_Databar_Continued_SystemModule" pingText = FontString { } IsEnabled = defined @Interface/AddOns/XIV_Databar_Continued/Libs/AceAddon-3.0/AceAddon-3.0.lua:447 orderedModules =
{ } GetConfig = defined @Interface/AddOns/XIV_Databar_Continued/Core/modules/system.lua:320 DisableModule = defined @Interface/AddOns/XIV_Databar_Continued/Libs/AceAddon-3.0/AceAddon-3.0.lua:346 GetDefaultOptions = defined @Interface/AddOns/XIV_Databar_Continued/Core/modules/system.lua:310 HookScript = defined @Interface/AddOns/XIV_Databar_Continued/Libs/AceHook-3.0/AceHook-3.0.lua:365 HoverFunction = defined @Interface/AddOns/XIV_Databar_Continued/Core/modules/system.lua:154 UpdateTexts = defined @Interface/AddOns/XIV_Databar_Continued/Core/modules/system.lua:129 RegisterMessage = defined @Interface/AddOns/XIV_Databar_Continued/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:80 UnregisterMessage = defined @Interface/AddOns/XIV_Databar_Continued/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:143 Refresh = defined @Interface/AddOns/XIV_Databar_Continued/Core/modules/system.lua:33 OnDisable = defined @Interface/AddOns/XIV_Databar_Continued/Core/modules/system.lua:28 IsHooked = defined @Interface/AddOns/XIV_Databar_Continued/Libs/AceHook-3.0/AceHook-3.0.lua:492 OnEnable = defined @Interface/AddOns/XIV_Databar_Continued/Core/modules/system.lua:16 OnInitialize = defined @Interface/AddOns/XIV`

ZelionGG commented 9 months ago

Hi guys, thank you for the quick feedbacks, I suggest you to rollback to version 2.5 or 2.4 if you get critical errors.

I'll investigate ASAP on those issues that didn't happen to me.

Sorry for the inconvenience I'll keep you updated on my investigations.

ZelionGG commented 9 months ago

Hi guys,

Version 2.6.1 is now released and should fix bugs introduced in version 2.6.

Let me know if you encounter any bugs and thanks again for the feedback !

RealoFoxtrot commented 9 months ago

Can confirm it's now functioning

ZelionGG commented 9 months ago

Can confirm it's now functioning

Sweet, thank you for the quick feedback.

Additional information : As of now, the hearthstones list is empty on the first loading, you need to wait a few seconds and do a reload for the list to populate. This is because Blizzard's APIs are making asynchronous call to populate the items cache and I can't refresh the Config after those asynchronous calls. I'll work on a better solution in the near future.