kemayo / wow-handynotes-dragonflight

World of Warcraft addon to tell you where treasures are in the Dragon Isles (requires HandyNotes)
7 stars 3 forks source link

Conflict with Character Notes addon #19

Closed SkrybeGH closed 1 year ago

SkrybeGH commented 1 year ago

ADDON VERSION: v23 (but earlier versions too)

When mousing over a point of interest from HN:DF (particularly NPCs) it throws the following error.

1x CharacterNotes/CharacterNotes.lua:1366: attempt to call method 'GetUnit' (a nil value)
[string "@CharacterNotes/CharacterNotes.lua"]:1366: in function `OnTooltipSetUnit'
[string "@CharacterNotes/CharacterNotes.lua"]:1250: in function <CharacterNotes/CharacterNotes.lua:1249>
[string "=(tail call)"]: ?
[string "=[C]"]: in function `securecallfunction'
[string "@SharedXML/Tooltip/TooltipDataHandler.lua"]:60: in function <SharedXML/Tooltip/TooltipDataHandler.lua:55>
[string "@SharedXML/Tooltip/TooltipDataHandler.lua"]:80: in function <SharedXML/Tooltip/TooltipDataHandler.lua:76>
[string "@SharedXML/Tooltip/TooltipDataHandler.lua"]:116: in function <SharedXML/Tooltip/TooltipDataHandler.lua:106>
[string "=[C]"]: in function `SetAttribute'
[string "@SharedXML/Tooltip/TooltipDataHandler.lua"]:141: in function <SharedXML/Tooltip/TooltipDataHandler.lua:134>
[string "@SharedXML/Tooltip/TooltipDataHandler.lua"]:282: in function <SharedXML/Tooltip/TooltipDataHandler.lua:240>
[string "=[C]"]: in function `securecallfunction'
[string "@SharedXML/Tooltip/TooltipDataHandler.lua"]:237: in function <SharedXML/Tooltip/TooltipDataHandler.lua:236>
[string "=(tail call)"]: ?
[string "@HandyNotes_DragonflightTreasures/handler/handler.lua"]:961: in function <...HandyNotes_DragonflightTreasures/handler/handler.lua:777>
[string "=(tail call)"]: ?
[string "@HandyNotes_DragonflightTreasures/handler/handler.lua"]:1034: in function <...HandyNotes_DragonflightTreasures/handler/handler.lua:1010>
[string "=[C]"]: ?
[string "@HandyNotes/HandyNotes.lua"]:56: in function <HandyNotes/HandyNotes.lua:51>
[string "@HandyNotes/HandyNotes.lua"]:166: in function `OnEnter'
[string "@HandyNotes/HandyNotes.lua"]:399: in function <HandyNotes/HandyNotes.lua:398>

Locals:
self = <table> {
 SetDefaultModuleLibraries = <function> defined @Ace3/AceAddon-3.0/AceAddon-3.0.lua:363
 EnableModule = <function> defined @Ace3/AceAddon-3.0/AceAddon-3.0.lua:328
 modules = <table> {
 }
 CancelTimer = <function> defined @Ace3/AceTimer-3.0/AceTimer-3.0.lua:147
 IterateEmbeds = <function> defined @Ace3/AceAddon-3.0/AceAddon-3.0.lua:438
 SecureHookScript = <function> defined @Ace3/AceHook-3.0/AceHook-3.0.lua:409
 GetFontSettings = <function> defined @CharacterNotes/CharacterNotes.lua:130
 RawHookScript = <function> defined @Ace3/AceHook-3.0/AceHook-3.0.lua:394
 CreateNoteLink = <function> defined @CharacterNotes/CharacterNotes.lua:1444
 Printf = <function> defined @Ace3/AceConsole-3.0/AceConsole-3.0.lua:65
 SetDefaultModulePrototype = <function> defined @Ace3/AceAddon-3.0/AceAddon-3.0.lua:405
 IsNotesVisible = <function> defined @CharacterNotes/CharacterNotes.lua:1339
 optionsFrame = <table> {
 }
 defaultModuleState = true
 UpdateRating = <function> defined @CharacterNotes/CharacterNotes.lua:411
 IsEnabled = <function> defined @Ace3/AceAddon-3.0/AceAddon-3.0.lua:447
 CreateImportPreview = <function> defined @CharacterNotes/Import.lua:177
 ScheduleTimer = <function> defined @Ace3/AceTimer-3.0/AceTimer-3.0.lua:94
 DisableModule = <function> defined @Ace3/AceAddon-3.0/AceAddon-3.0.lua:346
 ShowImportPreview = <function> defined @CharacterNotes/Import.lua:381
 options = <table> {
 }
 db = <table> {
 }
 baseName = "CharacterNotes"
 RegisterMessage = <function> defined @Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:80
 UnregisterMessage = <function> defined @Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:143
 RemoveRating = <function> defined @CharacterNotes/CharacterNotes.lua:446
 ImportNotes = <function> defined @CharacterNotes/Import.lua:155
 hooks = <table> {
 }
 ShowNotesImportFrame = <function> defined @CharacterNotes/Import.lua:18
 EasyMenu_Initialize = <function> defined @CharacterNotes/InterfaceMods.lua:197
 LFGListUtil_SetSearchEntryTooltip = <function> defined @CharacterNotes/InterfaceMods.lua:86
 HideNotesWindow = <function> defined @CharacterNotes/CharacterNotes.lua:1345
 EnableInterfaceModifications = <function> defined @CharacterNotes/InterfaceMods.lua:67
 InterfaceModsOptions = <function> defined @CharacterNotes/Options.lua:355
 EditNoteHandler = <function> defined @CharacterNotes/CharacterNotes.lua:1200
 SetEnabledState = <function> defined @Ace3/AceAddon-3.0/AceAddon-3.0.lua:420
 Hook = <function> defined @Ace3/AceHook-3.0/AceHook-3.0.lua:273
 enabledState = true
 NotesExportHandler = <function> defined @CharacterNotes/CharacterNotes.lua:484
 RegisterEvent = <function> defined @Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:80
 SaveEditNote = <function> defined @CharacterNotes/CharacterNotes.lua:1234
 PARTY_MEMBERS_CHANGED = <function> defined @CharacterNotes/CharacterNotes.lua:1607
 DisableNoteLinks = <function> defined @CharacterNotes/CharacterNotes.lua:1302
 ShowEditNoteFrame = <function> defined @CharacterNotes/CharacterNotes.lua:1153
 IterateModules = <function> defined @Ace3/AceAddon-3.0/AceAddon-3.0.lua:433
 RAID_ROSTER_UPDATE = <function> defined @CharacterNotes/CharacterNotes.lua:1603
 RawHook = <function> defined @Ace3/AceHook-3.0/AceHook-3.0.lua:312
 SetItemRef = <function> defined @CharacterNotes/CharacterNotes.lua:1314
 NotesOptionsHandler = <function> defined @CharacterNotes/CharacterNotes

Have checked disabling other addons, and it appears to ultimately be a conflict between CharacterNotes and HN:DF. I've also lodged the error with the CharacterNotes dev.

kemayo commented 1 year ago

This one is CharacterNote's issue -- it has improperly updated for the tooltip changes in 10.0.2. The changes make it so that by default your tooltip handlers run on every tooltip, not just GameTooltip -- but only GameTooltip has the GetItem/GetUnit methods now.

It needs to either filter its handler to make sure it's only modifying GameTooltip (if tooltip ~= GameTooltip then return end), or it needs to replace its call to tooltip:GetUnit() with TooltipUtil.GetDisplayedItem(tooltip).

kemayo commented 1 year ago

I went and left a comment on CharacterNotes' repo: https://github.com/Talryn/CharacterNotes/commit/eb0a07f047babd727dd2e584914d0b9dd9a0b045