From e4841359c7d84658ffdcd84f9d60e0c28cc202ef Mon Sep 17 00:00:00 2001 From: Xruptor Date: Wed, 21 Sep 2016 09:34:57 -0400 Subject: [PATCH] Fixed a bug in the Currency Window where it would sometimes return nil if a person had not enabled Cross-Realms or Battle.Net accounts to display. --- BagSync.lua | 24 ++++++++++++++++++++---- modules/currency.lua | 7 +++---- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/BagSync.lua b/BagSync.lua index 8ae13e7..8994206 100644 --- a/BagSync.lua +++ b/BagSync.lua @@ -423,7 +423,15 @@ function BSYC:FilterDB(dbSelect) end end else - xIndex = dbObj[self.currentRealm] + --do only the current realm if they don't have anything else configured + for k, v in pairs(dbObj) do + if k == self.currentRealm then + for q, r in pairs(v) do + ----can't have multiple characters on same realm, but we need formatting anyways + xIndex[q.."^"..k] = r + end + end + end end return xIndex @@ -434,14 +442,16 @@ function BSYC:GetRealmTags(srcName, srcRealm, isGuild) local fullRealmName = srcRealm --default to shortened realm first if not isGuild then + --check just in case! we only want the name not the realm local yName, yRealm = strsplit("^", srcName) + srcName = yName local ReadyCheck = [[|TInterface\RaidFrame\ReadyCheck-Ready:0|t]] --local NotReadyCheck = [[|TInterface\RaidFrame\ReadyCheck-NotReady:0|t]] --put a green check next to the currently logged in character name - if yName == self.currentPlayer and self.options.enableTooltipGreenCheck then + if srcName == self.currentPlayer and self.options.enableTooltipGreenCheck then srcName = srcName.." "..ReadyCheck end end @@ -899,9 +909,9 @@ function BSYC:AddCurrencyTooltip(frame, currencyName, addHeader) for k, v in pairs(xDB) do local yName, yRealm = strsplit("^", k) local playerName = BSYC:GetRealmTags(yName, yRealm) - + playerName = self:GetClassColor(playerName or "Unknown", self.db.global[yRealm][yName].class) - + for q, r in pairs(v) do if q == currencyName then --we only really want to list the currency once for display @@ -925,6 +935,7 @@ function BSYC:AddCurrencyTooltip(frame, currencyName, addHeader) end end + frame:Show() end function BSYC:AddItemToTooltip(frame, link) --workaround @@ -933,6 +944,7 @@ function BSYC:AddItemToTooltip(frame, link) --workaround --if we can't convert the item link then lets just ignore it altogether local itemLink = ParseItemLink(link) if not itemLink then + frame:Show() return end @@ -941,6 +953,7 @@ function BSYC:AddItemToTooltip(frame, link) --workaround --only show tooltips in search frame if the option is enabled if self.options.tooltipOnlySearch and frame:GetOwner() and frame:GetOwner():GetName() and string.sub(frame:GetOwner():GetName(), 1, 16) ~= "BagSyncSearchRow" then + frame:Show() return end @@ -954,6 +967,7 @@ function BSYC:AddItemToTooltip(frame, link) --workaround --ignore the hearthstone and blacklisted items if shortItemID and tonumber(shortItemID) then if permIgnore[tonumber(shortItemID)] or self.db.blacklist[self.currentRealm][tonumber(shortItemID)] then + frame:Show() return end end @@ -972,6 +986,7 @@ function BSYC:AddItemToTooltip(frame, link) --workaround end end end + frame:Show() return end @@ -1112,6 +1127,7 @@ function BSYC:AddItemToTooltip(frame, link) --workaround end end + frame:Show() end function BSYC:HookTooltip(tooltip) diff --git a/modules/currency.lua b/modules/currency.lua index b424930..8c30b55 100644 --- a/modules/currency.lua +++ b/modules/currency.lua @@ -91,10 +91,10 @@ function Currency:DisplayList() local xDB = BSYC:FilterDB(2) --dbSelect 2 - --loop through our characters - --k = player, v = stored data for player + --loop through our database and collect the currenry headers for k, v in pairs(xDB) do - + --no need to split to get playername and realm as it's not important, we let AddCurrencyTooltip() handle that + --loop through each player table and grab only the headers and insert it into a temp table if it doesn't already exist for q, r in pairs(v) do if not tempList[q] then --we only really want to list the currency once for display @@ -103,7 +103,6 @@ function Currency:DisplayList() count = count + 1 end end - end --show or hide the scrolling frame depending on count -- 1.7.9.5