From 865071c1733f9e7151c37c8a24ba9b4a115faf9e Mon Sep 17 00:00:00 2001 From: urnati Date: Sun, 15 Jan 2023 15:39:15 -0500 Subject: [PATCH] - TitanBag : Fix option to open bags --- TitanBag/TitanBag.lua | 67 ++++++++++++++++++++++++++----------------------- 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/TitanBag/TitanBag.lua b/TitanBag/TitanBag.lua index 49d4b82..0550232 100644 --- a/TitanBag/TitanBag.lua +++ b/TitanBag/TitanBag.lua @@ -95,15 +95,8 @@ local bag_data = {} -- to hold the user bag data local function ToggleBags() if TitanGetVar(TITAN_BAG_ID, "OpenBags") then - TitanPrint("" - .." "..tostring("Feature :").."" - .." "..tostring(OPENING or "Opening of").."" - .." "..tostring(INVTYPE_BAG or "Bags").."" - .." "..tostring(ADDON_DISABLED or "Disabled").."" - .." "..tostring("Until taint is fixed or work around found.").."" - , "warning") + ToggleAllBags() else - -- nop end end @@ -122,6 +115,21 @@ local function GetBagData(id) for bag_slot = MIN_BAGS, MAX_BAGS do -- assuming 0 (Backpack) will not be a profession bag local slots = C_Container.GetContainerNumSlots(bag_slot) + -- Ensure a blank structure exists +-- if bag_data[bag_slot] then + -- This has been processed at least once +-- else + bag_data[bag_slot] = { + has_bag = false, + name = "", + maxi_slots = 0, + free_slots = 0, + used_slots = 0, + style = "", + color = "", + } +-- end + if slots > 0 then bag_data[bag_slot].has_bag = true @@ -217,9 +225,6 @@ TitanDebug("T Bag: info" bagRichText = bagRichText --..bagRichTextProf[1]..bagRichTextProf[2]..bagRichTextProf[3]..bagRichTextProf[4]..bagRichTextProf[5]; ---[[ -TitanDebug("GetButtonText: <<<") ---]] return L["TITAN_BAG_BUTTON_LABEL"], bagRichText end @@ -259,6 +264,7 @@ function TitanPanelBagButton_OnLoad(self) }; self:RegisterEvent("PLAYER_ENTERING_WORLD"); + end --[[ plugin @@ -267,24 +273,25 @@ end -- DESC : Parse events registered to plugin and act on them -- ************************************************************************** --]] -function TitanPanelBagButton_OnEvent(self, event, ...) - if (event == "PLAYER_ENTERING_WORLD") and (not self:IsEventRegistered("BAG_UPDATE")) then - - -- init local structure to known values - for bag = MIN_BAGS, MAX_BAGS do - bag_data[bag] = { - has_bag = false, - name = "", - maxi_slots = 0, - free_slots = 0, - used_slots = 0, - style = "", - color = "", - } - end +function TitanPanelBagButton_OnEvent(self, event, a1, a2, ...) + if event == "PLAYER_ENTERING_WORLD" then + -- Register for bag updates and update the plugin text self:RegisterEvent("BAG_UPDATE") TitanPanelButton_UpdateButton(TITAN_BAG_ID); + + if a1 == true then + -- initial login + + TitanPrint("" + .." "..tostring("Feature :").."" + .." "..tostring(OPENING or "Opening of").."" + .." "..tostring(INVTYPE_BAG or "Bags").."" + .." "..tostring(ADDON_DISABLED or "Disabled").."" + .." "..tostring("Until taint is fixed or work around found.").."" + , "warning") + else + end end if event == "BAG_UPDATE" then @@ -309,11 +316,7 @@ end --]] function TitanPanelBagButton_OnClick(self, button) if (button == "LeftButton") then - if TitanGetVar(TITAN_BAG_ID, "OpenBags") then - ToggleBags(); - else - -- nop - end + ToggleBags(); end end @@ -355,7 +358,7 @@ TitanDebug("T Bag: TT" .." "..tostring(bag_data[bag].free_slots).."" ) --]] - if bag_data[bag].has_bag then + if bag_data[bag] and bag_data[bag].has_bag then if (TitanGetVar(TITAN_BAG_ID, "ShowUsedSlots")) then bagText = format(L["TITAN_BAG_FORMAT"], bag_data[bag].used_slots, bag_data[bag].maxi_slots); else -- 1.7.9.5