Broker Durability Info
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/brokerdurabilityinfo/localization
- Bug reporting, either as a comment or a ticket: https://www.wowace.com/projects/brokerdurabilityinfo/issues
- Donate through PayPal
Version
v1.29
Error showing up in BugSack saying missing Ace3 LibCrayon-3.0.
355x ...dOns/Broker_DurabilityInfo/Broker_DurabilityInfo.lua:14: Cannot find a library instance of "LibCrayon-3.0".
[string "=[C]"]: in function `error'
[string "@Ace3/LibStub/LibStub.lua"]:23: in function `GetLibrary'
[string "@Broker_DurabilityInfo/Broker_DurabilityInfo.lua"]:14: in main chunk
Locals:
(*temporary) = "Cannot find a library instance of "LibCrayon-3.0"."
In reply to news330:
It works well on retail with version1.31. Could you provide more details about your setup? Which wow version, which version of Broker Durability Info, what broker display you use.
In reply to Fulger: Hi Fulger, thanks for getting back to me. I'm on a Windows PC running Wow Retail version. I am running the latest version of Broker Durability Info v1.31 from what I can see in the .TOC file. I run this with Chocolate Bar.
anyone this fix please
In reply to unrealcrom96:
Based on the addon's current version (v1.30), you need to change 3 lines in the file "Broker_DurabilityInfo.lua":
1) line 354:
old:
tooltip:AddLine(MODNAME.." "..GetAddOnMetadata(MODNAME, "Version"))
new:
tooltip:AddLine(MODNAME.." "..C_AddOns.GetAddOnMetadata(MODNAME, "Version"))
2) line 509:
old:
TooltipUtil.SurfaceArgs(data)
new:
--TooltipUtil.SurfaceArgs(data)
2) line 539:
old:
TooltipUtil.SurfaceArgs(data)
new:
--TooltipUtil.SurfaceArgs(data)
That should do the trick.
Greetings, Spielstein
In reply to Spielstein: That works! Thanks!
In reply to Spielstein: Thanks! I am one of those still using this little gem and it's working again with the above changes.
Am I the only one still using this?? It's broken with the latest patch. Is there an alternative broker display for Durability?
In reply to Madwand: Aside from the provided fix, RepairBroker is a very similar addon that is still being maintained
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.