From 9be8a1b720cf58bf2f1a4055fb254405f7b66cdf Mon Sep 17 00:00:00 2001 From: shagu Date: Sat, 19 Nov 2022 13:27:02 +0100 Subject: [PATCH] item-colors: only add borders to existing buttons --- mods/item-colors.lua | 60 +++++++++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/mods/item-colors.lua b/mods/item-colors.lua index 87d7026..4a32387 100644 --- a/mods/item-colors.lua +++ b/mods/item-colors.lua @@ -44,22 +44,24 @@ module.enable = function(self) local refresh_paperdoll = function() for i, slot in pairs(paperdoll_slots) do local button = _G["Character"..slot] - local border = button.ShaguTweaks_border + if button then + local border = button.ShaguTweaks_border - if not border then - border = AddBorder(button, 3, { r = .5, g = .5, b = .5 }) - end + if not border then + border = AddBorder(button, 3, { r = .5, g = .5, b = .5 }) + end - if not defcolor["paperdoll"] then - defcolor["paperdoll"] = { border:GetBackdropBorderColor() } - end + if not defcolor["paperdoll"] then + defcolor["paperdoll"] = { border:GetBackdropBorderColor() } + end - local quality = GetInventoryItemQuality("player", i) - if quality then - local r, g, b = GetItemQualityColor(quality) - border:SetBackdropBorderColor(r, g, b, 1) - else - border:SetBackdropBorderColor(defcolor["paperdoll"][1], defcolor["paperdoll"][2], defcolor["paperdoll"][3], 1) + local quality = GetInventoryItemQuality("player", i) + if quality then + local r, g, b = GetItemQualityColor(quality) + border:SetBackdropBorderColor(r, g, b, 1) + else + border:SetBackdropBorderColor(defcolor["paperdoll"][1], defcolor["paperdoll"][2], defcolor["paperdoll"][3], 1) + end end end end @@ -122,24 +124,26 @@ module.enable = function(self) local refresh_bags = function() for i = 1, 12 do local frame = _G["ContainerFrame"..i] - local name = frame:GetName() - local id = frame:GetID() - for i = 1, MAX_CONTAINER_ITEMS do - local button = _G[name.."Item"..i] + if frame then + local name = frame:GetName() + local id = frame:GetID() + for i = 1, MAX_CONTAINER_ITEMS do + local button = _G[name.."Item"..i] - if not defcolor["bag"] then - defcolor["bag"] = { button.ShaguTweaks_border:GetBackdropBorderColor() } - end + if not defcolor["bag"] then + defcolor["bag"] = { button.ShaguTweaks_border:GetBackdropBorderColor() } + end - button.ShaguTweaks_border:SetBackdropBorderColor(defcolor["bag"][1], defcolor["bag"][2], defcolor["bag"][3], 1) + button.ShaguTweaks_border:SetBackdropBorderColor(defcolor["bag"][1], defcolor["bag"][2], defcolor["bag"][3], 1) - local link = GetContainerItemLink(id, button:GetID()) - if button and button:IsShown() and link then - local _, _, istring = string.find(link, "|H(.+)|h") - local _, _, quality = GetItemInfo(istring) - if quality then - local r, g, b = GetItemQualityColor(quality) - button.ShaguTweaks_border:SetBackdropBorderColor(r,g,b) + local link = GetContainerItemLink(id, button:GetID()) + if button and button:IsShown() and link then + local _, _, istring = string.find(link, "|H(.+)|h") + local _, _, quality = GetItemInfo(istring) + if quality then + local r, g, b = GetItemQualityColor(quality) + button.ShaguTweaks_border:SetBackdropBorderColor(r,g,b) + end end end end