Broker_DurabilityInfo
About Broker_DurabilityInfo
Broker_DurabilityInfo is a broker plugin to display item durability and repair cost. You can also ask it to auto repair your gear.
You have the option to:
- show / hide detailed item information
- show / hide durability for the items in bags
- use auto repair (using guild money or your own)
- set minimum faction reputation to use for repair
- use repair dialog box (pops up at vendors, asking you how to repair)
- enable / disable update during combat
- enable / disable repair warning when entering a city
In order to use it you need a broker display addon like ButtonBin or Titan Panel.
How you can help
- Like it and add it to your favorites on Curse.com.
- Spread the word. Tell your friends about it.
- Translations: https://www.wowace.com/projects/broker_durabilityinfo/localization
- Bug reporting, either as a comment or a ticket: https://www.wowace.com/projects/broker_durabilityinfo/issues
- Donate through PayPal
Version
v1.29
The latest versions (including v1.29-2-gc14dc28) have the same problem:
Message: ...dOns/Broker_DurabilityInfo/Broker_DurabilityInfo.lua:506: attempt to call method 'SetInventoryItem' (a nil value)
Time: Fri Dec 2 19:48:24 2022
Count: 1
Stack: ...dOns/Broker_DurabilityInfo/Broker_DurabilityInfo.lua:506: attempt to call method 'SetInventoryItem' (a nil value)
[string "@Interface/AddOns/Broker_DurabilityInfo/Broker_DurabilityInfo.lua"]:506: in function `GetRepairData'
[string "@Interface/AddOns/Broker_DurabilityInfo/Broker_DurabilityInfo.lua"]:405: in function `?'
[string "@Interface/AddOns/Broker_DurabilityInfo/Libs/AceTimer-3.0/AceTimer-3.0.lua"]:55: in function <...er_DurabilityInfo/Libs/AceTimer-3.0/AceTimer-3.0.lua:50>
Locals: self = <table> {
SetDefaultModuleLibraries = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Libs/AceAddon-3.0/AceAddon-3.0.lua:363
optionsFrames = <table> {
}
Enable = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Libs/AceAddon-3.0/AceAddon-3.0.lua:290
UnregisterAllEvents = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:174
AutoRepair = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Broker_DurabilityInfo.lua:616
EnableModule = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Libs/AceAddon-3.0/AceAddon-3.0.lua:328
modules = <table> {
}
GetModule = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Libs/AceAddon-3.0/AceAddon-3.0.lua:206
IterateEmbeds = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Libs/AceAddon-3.0/AceAddon-3.0.lua:438
db = <table> {
}
baseName = "Broker_DurabilityInfo"
defaultModuleLibraries = <table> {
}
TimeLeft = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Libs/AceTimer-3.0/AceTimer-3.0.lua:172
obj = <table> {
}
WarnToRepair = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Broker_DurabilityInfo.lua:655
Disable = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Libs/AceAddon-3.0/AceAddon-3.0.lua:310
ScheduleRepeatingTimer = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Libs/AceTimer-3.0/AceTimer-3.0.lua:129
CancelAllTimers = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Libs/AceTimer-3.0/AceTimer-3.0.lua:160
AutoRepairFromBank = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Broker_DurabilityInfo.lua:626
OnProfileChanged = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Broker_DurabilityInfo.lua:458
SetDefaultModulePrototype = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Libs/AceAddon-3.0/AceAddon-3.0.lua:405
ShowDialog = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Broker_DurabilityInfo.lua:611
NewModule = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Libs/AceAddon-3.0/AceAddon-3.0.lua:231
MainUpdate = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Broker_DurabilityInfo.lua:397
name = "Broker_DurabilityInfo"
OnInitialize = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Broker_DurabilityInfo.lua:298
IsEnabled = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Libs/AceAddon-3.0/AceAddon-3.0.lua:447
orderedModules = <table> {
}
ScheduleTimer = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Libs/AceTimer-3.0/AceTimer-3.0.lua:94
DisableModule = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Libs/AceAddon-3.0/AceAddon-3.0.lua:346
AttemptToRepair = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Broker_DurabilityInfo.lua:577
UpdateIcon = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Broker_DurabilityInfo.lua:646
GetRepairData = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Broker_DurabilityInfo.lua:495
GetName = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Libs/AceAddon-3.0/AceAddon-3.0.lua:275
RegisterMessage = <function> defined @Interface/AddOns/Broker_DurabilityInfo/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:90
UnregisterMessage = <function> defined
Any way to fix this?
In reply to AlexL1118:
Let's try to fix this in file "Broker_DurabilityInfo.lua" (the idea is mostly taken from addon "XanDurability"):
1) Was (lines 506--507):
Now:
2) Was (lines 528--532):
Now:
3) If you have many addons, then after entering the game the addon icon can display "100%" even when some items are damaged. In this case add this at the end of function "OnInitialize()":
In reply to AlexL1118:
Thanks for looking into this. I pushed a new release
In reply to FulgerTunet:
Thanks.
But as I wrote in (3), I'm getting 100% durability after logging in even if there are damaged items on me or in bags. This is because I have many addons. In such case the game engine probably reduces time slots for servicing addons (in benefit of quicker entering the world), and thus "GetInventoryItem()" and "GetBagItem()" return almost empty table as "data", without field "repairCost".
Of course, registering on some event (something like "loading has finished and everything is visible") would be better than my variant in (3), but I don't know which events we have in WoW LUA. That's why I suggested re-issuing update in 5 seconds, to solve the problem of wrong durability display at start.
What shall we do with this problem?
Actually it works, but on my broker no interaction is possible (like display the actual durability %) Any chance of an update :)?
please update
cu cardo_
any chance for version update for 8.0 / BFA
Date: 2017-09-07 21:03:16
ID: 1
Error occured in: Global
Count: 1
Message: ..._DurabilityInfo\Libs\LibDialog-1.0\LibDialog-1.0.lua line 240:
Usage: PlaySound(soundKitID, optional["SFX","Music","Ambience", "Dialog" or "Master"], [forceNoDuplicates, runFinishCallback])
Debug:
(tail call): ?
[C]: PlaySound()
..._DurabilityInfo\Libs\LibDialog-1.0\LibDialog-1.0.lua:240:
..._DurabilityInfo\Libs\LibDialog-1.0\LibDialog-1.0.lua:233
..._DurabilityInfo\Libs\LibDialog-1.0\LibDialog-1.0.lua:849: Spawn()
...dOns\Broker_DurabilityInfo\Broker_DurabilityInfo.lua:612: ShowDialog()
...dOns\Broker_DurabilityInfo\Broker_DurabilityInfo.lua:592: DoRepair()
...dOns\Broker_DurabilityInfo\Broker_DurabilityInfo.lua:582: AttemptToRepair()
...dOns\Broker_DurabilityInfo\Broker_DurabilityInfo.lua:425: ?()
...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:145:
...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:145
[string "safecall Dispatcher[1]"]:4:
[string "safecall Dispatcher[1]"]:4
[C]: ?
[string "safecall Dispatcher[1]"]:13: ?()
...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:90: Fire()
Ace3\AceEvent-3.0\AceEvent-3.0.lua:120:
Ace3\AceEvent-3.0\AceEvent-3.0.lua:119
Locals:
None
AddOns:
Swatter, v7.4.5714 (TasmanianThylacine)
...
BrokerDurabilityInfo, vv1.26
....
I have also a screendump made as the popupwindow looks now:
https://prnt.sc/gid6q3
Regards
Longhorns ER
I was able to fix this by commenting out lines 240, 250, and 830 in Broker_DurabilityInfo\Libs\LibDialog-1.0\LibDialog-1.0.lua (i.e. any line with _G.PlaySound). It looks like iceeagle just needs to update his included libraries.
please update 7.3
1x ..._DurabilityInfo\Libs\LibDialog-1.0\LibDialog-1.0-7.lua:240: Usage: PlaySound(soundKitID, optional["SFX","Music","Ambience", "Dialog" or "Master"], [forceNoDuplicates, runFinishCallback])
[C]: in function `PlaySound'
..._DurabilityInfo\Libs\LibDialog-1.0\LibDialog-1.0-7.lua:240: in function <..._DurabilityInfo\Libs\LibDialog-1.0\LibDialog-1.0.lua:233>
..._DurabilityInfo\Libs\LibDialog-1.0\LibDialog-1.0-7.lua:849: in function `Spawn'
...dOns\Broker_DurabilityInfo\Broker_DurabilityInfo-v1.26.lua:606: in function `LowRepConfirmation'
...dOns\Broker_DurabilityInfo\Broker_DurabilityInfo-v1.26.lua:584: in function `AttemptToRepair'
...dOns\Broker_DurabilityInfo\Broker_DurabilityInfo-v1.26.lua:425: in function `?'
...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0-6.lua:145: in function <...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:145>
[string "safecall Dispatcher[1]"]:4: in function <[string "safecall Dispatcher[1]"]:4>
[C]: ?
[string "safecall Dispatcher[1]"]:13: in function `?'
...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0-6.lua:90: in function `Fire'
Ace3\AceEvent-3.0\AceEvent-3.0-4.lua:120: in function <Ace3\AceEvent-3.0\AceEvent-3.0.lua:119>
Local
Could you add the function sell gray items to this great add-on. I use this and another that does what this does but the display is horrid but it also auto sells gray items. So i'm forced to use both. I just only have this one display in the broker and turned of auto repair on the other one.
Imo selling items is a function for a bag management addon. I have this implemented in Broker BagInfo so I wouldn't like to copy the code over here.
i cant seem to find the 100% icon
Could you be more specific about the problem you encounter? A good way to approach a bug report is to describe what you expect and what is happening.
I've noticed if "use guild bank" is checked (and not "only use guild bank" or the other limiters) that if the bank doesn't have enough money to cover the costs, it won't use my own money. Is this intended? I had to uncheck allow guild repairs in the guild interface before it would use my own money.
I've just tested on the PTR and works as intended. 30g in bank, 180g repairs and it used my money. Check the chat output to see what the addon does.
[DurabilityInfo] Guild bank does not have enough money.
However I can manually click the guild repair option from the merchant window and it will repair with guild funds.
I had a similar issue, if you toggle guild repairs but leave UNCHECKED the "only use guild bank" it will repair using your own funds and give a chat error that insufficient guild funds exists even though I haven't even touched my nearly unlimited guild funds for the day.
Must have both items checked for the addon to function right now if you want to repair from guild funds, which I'm personally fine with since that's the ONLY way I repair but it's not working as intended.
@cleric670 Are you sure the guild bank actually had the amount of gold you needed? You could have a daily quota of 1000g but the guild bank only has 20g in it.
100% sure the guild bank has sufficient funds (nigh unlimited repairs) , in fact I can manually click the guild repair button from the vendor interface and it will use guild funds. Error message in the chat box from the addon saying insufficient guild funds however...