local col = { w = "|cffFFFFFF", g = "|cff55FF55", r = "|cffFF5555" } |
local kR = "|cff44CCFFk|cffFFFFAARestack"..col.w |
|
--[[ ldb plugin ]] |
local menu = { |
{ text = "= Restack =", isTitle = true }, |
{ text = "Backpack", func = function() kRestack("bags") end }, |
{ text = "Bank", disabled = true, func = function() kRestack("bank") end }, |
{ text = "Guild Vault", disabled = true, func = function() kRestack("guild") end }, |
{ disabled = true }, |
{ text = "= Set Auto =", isTitle = true }, |
{ text = "Backpack", checked = function() return (AutoRestack.bags and true or false) end, func = function() kRestack("auto bags") end }, |
{ text = "Bank", checked = function() return (AutoRestack.bank and true or false) end, func = function() kRestack("auto bank") end }, |
{ text = "Guild Vault", checked = function() return (AutoRestack.guild and true or false) end, func = function() kRestack("auto guild") end }, |
} |
local drop = CreateFrame("frame", "kRestack", nil, "UIDropDownMenuTemplate") |
LibStub:GetLibrary("LibDataBroker-1.1"):NewDataObject("kRestack", { |
type = "data source", |
text = "kRestack", |
icon = "Interface\\Icons\\INV_Crate_09", |
OnClick = function(self, button) |
if button == "RightButton" then |
GameTooltip:Hide() |
UIDropDownMenu_Initialize(drop, function() for _, opt in pairs(menu) do UIDropDownMenu_AddButton(opt, 1) end end, "MENU") |
return ToggleDropDownMenu(1, nil, drop, self, 0, 0) |
elseif button == "LeftButton" then |
kRestack("bags") |
end |
end, |
}) |
|
--[[ set user's container identifers ]] |
local container = { bags = { 0 }, bank = { -1 }, guild = { 42 } } |
for i = 1, NUM_BAG_SLOTS do table.insert(container.bags, i) end |
for i = NUM_BAG_SLOTS + 1, NUM_BAG_SLOTS + NUM_BANKBAGSLOTS do table.insert(container.bank, i) end |
|
--[[ watching some events ]] |
local atBank, atVault |
local f = CreateFrame("frame") |
local events = { "ADDON_LOADED", "BANKFRAME_OPENED", "BANKFRAME_CLOSED", "LOOT_OPENED", "TRADE_SHOW", "GUILDBANKFRAME_OPENED", "GUILDBANKFRAME_CLOSED" } |
for _, r in pairs(events) do f:RegisterEvent(r) end |
f:SetScript("OnEvent", function(_, e) |
--[[ ldb stuff ]] |
if e == events[2] then |
menu[3].disabled = false |
elseif e == events[3] then |
menu[3].disabled = true |
elseif e == events[6] then |
local _, _, isViewable, canDeposit = GetGuildBankTabInfo(GetCurrentGuildBankTab()) |
if IsGuildLeader() or (isViewable and canDeposit) then menu[4].disabled = false end |
elseif e == events[7] then |
menu[4].disabled = true |
end |
local frame = CreateFrame("FRAME") |
local events = { "ADDON_LOADED", "BANKFRAME_OPENED", "LOOT_OPENED", "TRADE_SHOW", "GUILDBANKFRAME_OPENED" } |
for _, r in pairs(events) do frame:RegisterEvent(r) end |
frame:SetScript("OnEvent", function(_, e) |
if e == events[1] then |
--[[ initialize saved variables ]] |
if type(AutoRestack) ~= "table" then AutoRestack = { } end |