Jaliborc / Bagnon

Single window displays for you items
198 stars 112 forks source link

bagnon slots not updating #1613

Open xmcdizzle opened 1 year ago

xmcdizzle commented 1 year ago

anytime you move a new item it doesnt update in the new spot you moved it to. only if something is added to the bag to refresh it will it then move.

this is on wotlk classic with new update to ulduar

Glitchertonn commented 1 year ago

Same is happening to me, also getting this Lua Error: Date: 2023-01-17 16:42:20 ID: 1 Error occured in: Global Count: 1 Message: ...rface/AddOns/BagBrother/addons/core/classes/item.lua line 458: attempt to call field 'IsBattlePayItem' (a boolean value) Debug:

[string "@Interface/AddOns/BagBrother/addons/core/classes/item.lua"]:458: IsPaid() [string "@Interface/AddOns/BagBrother/addons/core/classes/item.lua"]:322: UpdateNewItemAnimation() [string "@Interface/AddOns/BagBrother/addons/core/classes/item.lua"]:216: func()

  ...ns/BagBrother/libs/MutexDelay-1.0/MutexDelay-1.0.lua:30

Locals:

greppy commented 1 year ago

From BugSack:

4x ...rfaceBagBrother/addons/core/classes/item.lua:458: attempt to call field 'IsBattlePayItem' (a boolean value) [string "@BagBrother/addons/core/classes/item.lua"]:458: in function IsPaid' [string "@BagBrother/addons/core/classes/item.lua"]:322: in functionUpdateNewItemAnimation' [string "@BagBrother/addons/core/classes/item.lua"]:216: in function `func' [string "@BagBrother/libs/MutexDelay-1.0-2/MutexDelay-1.0.lua"]:36: in function <...ns/BagBrother/libs/MutexDelay-1.0/MutexDelay-1.0.lua:30>

Locals: self = ContainerFrame2Item2 { 0 = OnLeave = defined @BagBrother/addons/core/classes/item.lua:190 super =

{ } UnregisterAll = defined @BagBrother/addons/core/classes/base.lua:27 IconOverlay = Texture { } UpdateCooldown = defined @BagBrother/addons/core/classes/item.lua:274 Bind = defined @BagBrother/addons/core/classes/item.lua:106 IconBorder = Texture { } flashAnim = AnimationGroup { } icon = ContainerFrame2Item2IconTexture { } Backgrounds =
{ } UpdateTooltip = defined @BagBrother/addons/core/classes/item.lua:181 ExtendedOverlay = Texture { } readable = false count = 13 type = "Button" __count = 37 GetFrameID = defined @BagBrother/addons/core/classes/parented.lua:19 NewItemTexture = Texture { } Delay = defined @BagBrother/libs/MutexDelay-1.0/MutexDelay-1.0.lua:27 SplitStack = defined @FrameXML/ContainerFrame_Shared.lua:1059 SendFrameSignal = defined @BagBrother/addons/core/classes/base.lua:23 info =
{ } BagStaticBottom = Texture { } GetTemplate = defined @BagBrother/libs/Poncho-2.0/Poncho-2.0.lua:108 UpdateLocked = defined @BagBrother/addons/core/classes/item.lua:224 UnregisterMessage = defined @BagBrother/libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:153 Update = defined @BagBrother/addons/core/classes/item.lua:198 flash = Texture { } frame = BagnonInventoryFrame1 { } RegisterFrameSignal = defined @BagBrother/addons/core/classes/base.lua:15 RegisterMessage = defined @BagBrother/libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:90 GetBlizzard = defined @BagBrother/addons/core/classes/item.lua:93 UpdateSearch = defined @BagBrother/addons/core/classes/item.lua:294 hasItem = true IconGlow = Texture { } NumInactive = defined @BagBrother/libs/Poncho-2.0/Poncho-2.0.lua:124 UnregisterSignal = defined @BagBrother/libs/WildAddon-1.0/WildAddon-1.0.lua:78 GetInfo = defined @BagBrother/addons/core/classes/item.lua:432 GetBagFamily = defined @BagBrother/addons/core/classes/item.lua:415 SendMessage = defined @BagBrother/libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:59 GetProfile = defined @BagBrother/addons/core/classes/parented.lua:23 GetClassName = defined @BagBrother/libs/Poncho-2.0/Poncho-2.0.lua:100 GetQuery = defined @BagBrother/addons/core/classes/item.lua:428 GetClass = defined @BagBrother/libs/Poncho-2.0/Poncho-2.0.lua:135 IsAbstract = defined @BagBrother/libs/Poncho-2.0/Poncho-2.0.lua:116 GetSuper = defined @BagBrother/libs/Poncho-2.0/Poncho-2.0.lua:104 Count = ContainerFrame2Item2Count { } OnEnter = defined @BagBrother/addons/core/classes/item.lua:181 OnPreClick = defined @BagBrother/addons/core/classes/item.lua:145 searchOverlay = ContainerFrame2Item2SearchOverlay { } Construct = defined @BagBrother/addons/core/classes/item.lua:52 BagFamilies =
{ } IsSlot = defined @BagBrother/addons/core/classes/item.lua:449 bag = 2 BattlepayItemTexture = Texture { } GetOwner = defined @BagBrother/addons/core/classes/parented.lua:31 Super = defined @BagBrother/libs/Poncho-2.0/Poncho-2.0.lua:157 GetTipAnchor = defined @BagBrother/addons/core/classes/tipped.lu

HanzelMan71 commented 1 year ago

getting same issue with not refreshing / updating unless close/reopen bags

erounsavall commented 1 year ago

Same issue here - and just to add that it's any inventory slot, so bag, bank, etc. Closing and reopening solves it, but it's wonky & throwing lua errors which is a drag on performance

vgullotta8 commented 1 year ago

same, getting lua errors and bag doesn't refresh

empiricalbw commented 1 year ago

The IsBattlePayItem one is if you installed the retail version of Bagnon instead of the WOTLK Classic version. I am also getting the bag item slots failing to update when an item is moved.

empiricalbw commented 1 year ago

The IsBattlePayItem one is if you installed the retail version of Bagnon instead of the WOTLK Classic version. I am also getting the bag item slots failing to update when an item is moved.

I lie I got this on the regular on just now, my bad.

Pixol-WoW commented 1 year ago

It seems like if you move an item that doesn't involve the starter "Backpack" bag, then Blizzard doesn't send the "BAG_UPDATE_DELAYED" event. Any item movement involving the "Backpack" bag will send this event. /etrace

"BAG_UPDATE_DELAYED" is used in: BagBrother\addons\core\api\events.lua self:RegisterEvent('BAG_UPDATE_DELAYED', 'UpdateBags')

Simple fix by adding a very small C_Timer delay to call UpdateBags after "BAG_UPDATE" event:

function Events:BAG_UPDATE(event, bag)
    self.queue[bag] = true
    C_Timer.After(0.001, function() self:UpdateBags() end) -- Temporary fix due to missing BAG_UPDATE_DELAYED event
end
Danqna commented 1 year ago

It seems like if you move an item that doesn't involve the starter "Backpack" bag, then Blizzard doesn't send the "BAG_UPDATE_DELAYED" event. Any item movement involving the "Backpack" bag will send this event. /etrace

"BAG_UPDATE_DELAYED" is used in: BagBrother\addons\core\api\events.lua self:RegisterEvent('BAG_UPDATE_DELAYED', 'UpdateBags')

Simple fix by adding a very small C_Timer delay to call UpdateBags after "BAG_UPDATE" event:

function Events:BAG_UPDATE(event, bag)
  self.queue[bag] = true
  C_Timer.After(0.001, function() self:UpdateBags() end) -- Temporary fix due to missing BAG_UPDATE_DELAYED event
end

Thankyou for this, it lets the bag slot update for me now, although there is still an error being fired, but the functionality works.

Jockyr commented 1 year ago

Also when hovering the cursor over items in the bags, there are no tooltips showing for the items. Goes for all bags. I have to link the item or drag to actionbars etc. to be able to see the item information. Not sure how to check if there's a Lua error for that, but might be related to the issues of not updating properly.

Arccai commented 1 year ago

Yeah, same. waiting for a fix, you have to reopen inventory to refresh it. Cant move items properly

Firehex12 commented 1 year ago

It seems like if you move an item that doesn't involve the starter "Backpack" bag, then Blizzard doesn't send the "BAG_UPDATE_DELAYED" event. Any item movement involving the "Backpack" bag will send this event. /etrace

"BAG_UPDATE_DELAYED" is used in: BagBrother\addons\core\api\events.lua self:RegisterEvent('BAG_UPDATE_DELAYED', 'UpdateBags')

Simple fix by adding a very small C_Timer delay to call UpdateBags after "BAG_UPDATE" event:

function Events:BAG_UPDATE(event, bag)
  self.queue[bag] = true
  C_Timer.After(0.001, function() self:UpdateBags() end) -- Temporary fix due to missing BAG_UPDATE_DELAYED event
end

Strange, it didn't help me =( Hope they make fix before Ulduar release

ghost commented 1 year ago

It seems like if you move an item that doesn't involve the starter "Backpack" bag, then Blizzard doesn't send the "BAG_UPDATE_DELAYED" event. Any item movement involving the "Backpack" bag will send this event. /etrace

"BAG_UPDATE_DELAYED" is used in: BagBrother\addons\core\api\events.lua self:RegisterEvent('BAG_UPDATE_DELAYED', 'UpdateBags')

Simple fix by adding a very small C_Timer delay to call UpdateBags after "BAG_UPDATE" event:

function Events:BAG_UPDATE(event, bag)
  self.queue[bag] = true
  C_Timer.After(0.001, function() self:UpdateBags() end) -- Temporary fix due to missing BAG_UPDATE_DELAYED event
end

First use version Bagnon-10.0.14 for WoW-3.4.0.zip (12/14/22)

To fully fix the constant errors, add the above solution then from now within the game client:

Select Interface from the Game Menu Expand Bagnon Select Slot Settings

  • Untick "Flash New Items"

Good luck!

wolfstormash commented 1 year ago

Also having this issue, also doesn't update when D/Eing items

zeddicul commented 1 year ago

I disabled all of auctioneer as noted in a different post for the tooltips but it still didn't work. It is not Bagnon for this issue. I then disabled beancounter, enchantrix, pawn, vendor price and now tooltips are fine. I still get the issue with nothing updating when you sell or move items in bags. Closing and opening updates.

zeddicul commented 1 year ago

The above method of adding the line of text to the LUA file worked and items update as normal now. For the person that said it did not work, did you make sure you were on the right bag_update line? It appeared there were several places that had bag_update.

There was only one spot that looked exactly like this before the change. Put the suggested code between the second line and "end" so it looks like it does above.

function Events:BAG_UPDATE(event, bag) self.queue[bag] = true end

Firehex12 commented 1 year ago

The above method of adding the line of text to the LUA file worked and items update as normal now. For the person that said it did not work, did you make sure you were on the right bag_update line? It appeared there were several places that had bag_update.

There was only one spot that looked exactly like this before the change. Put the suggested code between the second line and "end" so it looks like it does above.

function Events:BAG_UPDATE(event, bag) self.queue[bag] = true end

I already did, disabled auctioner, enchantrix... didn't work =( strange... that's how code looks

function Events:BAG_UPDATE(event, bag)
    self.queue[bag] = true
    C_Timer.After(0.001, function() self:UpdateBags() end) -- Temporary fix due to missing BAG_UPDATE_DELAYED event
end
zeddicul commented 1 year ago

I mean I did not do this part -- Temporary fix due to missing BAG_UPDATE_DELAYED event but I assume two dashes is like commenting it out? Mine looks like this and works. And the disabling of auctioneer and all item tooltip addons or auction addons was to make it start showing the name and item information only. This fix below is for updating things when moved or changed in the bag.

function Events:BAG_UPDATE(event, bag) self.queue[bag] = true C_Timer.After(0.001, function() self:UpdateBags() end) end

Firehex12 commented 1 year ago

Ok, tooltips started to work after i disabled informant too

Kengy5 commented 1 year ago

I updated the BAG_Update event properly and unticked the Flash New Items and still doesn't work, any other ideas?

Firehex12 commented 1 year ago

I tried to update BAG_Update without comment like zeddicul, disabled more ticks in settings, still didn't work

ghost commented 1 year ago

I tried to update BAG_Update without comment like zeddicul, disabled more ticks in settings, still didn't work

Use the Bagnon-10.0.14 for WoW-3.4.0.zip release from 12/14/22

Firehex12 commented 1 year ago

Thanks, installing previous version helped to fix issue

zeddicul commented 1 year ago

It seems to be a combo of removing other addons that show or use item tooltips and changing the line in the code. But if old version works good call! Does the old version work with auctioneer and addons so you can still use them?

ixupie commented 1 year ago

It seems like if you move an item that doesn't involve the starter "Backpack" bag, then Blizzard doesn't send the "BAG_UPDATE_DELAYED" event. Any item movement involving the "Backpack" bag will send this event. /etrace

"BAG_UPDATE_DELAYED" is used in: BagBrother\addons\core\api\events.lua self:RegisterEvent('BAG_UPDATE_DELAYED', 'UpdateBags')

Simple fix by adding a very small C_Timer delay to call UpdateBags after "BAG_UPDATE" event:

function Events:BAG_UPDATE(event, bag)
  self.queue[bag] = true
  C_Timer.After(0.001, function() self:UpdateBags() end) -- Temporary fix due to missing BAG_UPDATE_DELAYED event
end

Thanks! This saved me a huge headache. Appreciate you taking the time to help everyone out here.

Blutjagdhund commented 1 year ago

Please note, this only relates to Wrath of the Lich King Classic. If you're looking at this to fix a similar issue in retail, this probably won't help.

I didn't use 'C_Timer.After()'.

I did this instead:

function Events:BAG_UPDATE(event, bag)
    self.queue[bag] = true
    self:UpdateBags()
end

Works exactly the same either way. But full credit to Pixol-WoW for finding the solution, there are always multiple ways to solve a coding problem. I didn't find the solution, I just implemented the fix, my way. So please make sure to thank Pixol-WoW for the fix, even if you chose to use my solution instead.

Looking at the rest of the code, I'm wondering if that was how it's intended to be, and just got missed.

For those struggling to find which function to apply the patch to, you can find it between line 38 and line 40. Also please go back over the line once you've added it, and check the gap before the line starts. I'm not super familiar with the syntax here, I program C for arduino projects, which is only vaguely similar. But one of the issues I've often come across in my own projects, is that code lines often fail if you use a tab where you should use a space, or vice-versa. For some stupid reason, my text editor converted my tab, into spaces. So I had to go back and copy-paste the correct syntax from a different line, to make sure it worked. If you're having trouble getting it to work, you should definitely check if this is an issue for you.

As for 'Events:BAG_UPDATE_DELAYED()' error, I tried a few things before doing the above, but couldn't figure it out. Either it had nothing to do with this issue, or (most likely) there was an issue in my code. Again, I'm not familiar with this language, but it was fun to try. Although I have to say, adding the function in, even if broken, silenced the error message.

Also important to note, in my first attempt to apply the patch, I had all my addons enabled; and it failed. The second time, I disabled every addon except Bagnon, and that time it worked. So if you're having issues getting the patch to work, try disabling all your addons, apply the patch, then enable just Bagnon and check that it is fixed. Once you've confirmed that it's fixed, you'll be fine to enable all your addons again.

I didn't close the game to do this either. I just disabled Bagnon in "addons", reloaded UI, opened up events.lua, added the line, hit save, enabled Bagnon again, reloaded UI (again), and it's fixed.

I hope this information is useful to those still having issues with applying this patch.

Maetz007 commented 1 year ago

It seems like if you move an item that doesn't involve the starter "Backpack" bag, then Blizzard doesn't send the "BAG_UPDATE_DELAYED" event. Any item movement involving the "Backpack" bag will send this event. /etrace

"BAG_UPDATE_DELAYED" is used in: BagBrother\addons\core\api\events.lua self:RegisterEvent('BAG_UPDATE_DELAYED', 'UpdateBags')

Simple fix by adding a very small C_Timer delay to call UpdateBags after "BAG_UPDATE" event:

function Events:BAG_UPDATE(event, bag)
  self.queue[bag] = true
  C_Timer.After(0.001, function() self:UpdateBags() end) -- Temporary fix due to missing BAG_UPDATE_DELAYED event
end

Thank you very much for this!! I never knew how much Bagnon defined my game play until it was broken and this fix works! +1 credit!!