1
0
Fork 0

Removed debug statements from potions and added a new slash command to print the queue

This commit is contained in:
pigmonkey 2011-07-03 03:12:00 -04:00
parent bb9266219d
commit a88cdb9693

View file

@ -16,9 +16,11 @@ local potList = {
["f"] = 57192, -- Mythical ["f"] = 57192, -- Mythical
} }
local mailQueue = {} -- used in /atlt pots local mailQueue = {} -- used in /atlt pots
local guildColors = {} -- for printing names in color
function mod:OnInitialize() function mod:OnInitialize()
self:RegisterSlashCommand("AddPotions", "pots") self:RegisterSlashCommand("AddPotions", "pots")
self:RegisterSlashCommand("PrintPotions", "pp")
end end
function mod:OnEnable() function mod:OnEnable()
@ -34,6 +36,7 @@ function mod:AddPotions(msg)
if rank == "Member" or rank == "Officer" or rank == "Guild Master" then if rank == "Member" or rank == "Officer" or rank == "Guild Master" then
if mailQueue[name] == nil then if mailQueue[name] == nil then
mailQueue[name] = {} mailQueue[name] = {}
guildColors[name] = RAID_CLASS_COLORS[select(11, GetGuildRosterInfo(i))]
end end
end end
end end
@ -46,7 +49,7 @@ function mod:AddPotions(msg)
for i,_ in pairs(mailQueue) do for i,_ in pairs(mailQueue) do
if i:match("^"..name) then if i:match("^"..name) then
mailQueue[i][typeRef] = ct mailQueue[i][typeRef] = ct
print(format("Queued %dx |Hitem:%d|h[%s]|h for %s", ct, typeRef, GetItemInfo("item:"..typeRef), i)) -- print(format("Queued %dx %s for %s", ct, self:Link(typeRef), i))
end end
end end
end end
@ -100,7 +103,7 @@ function mod:MailQueueCheck(caller, passData)
-- slight pause to allow for items to disappear -- slight pause to allow for items to disappear
mailQueueTimer = self:ScheduleTimer(function() mailQueueTimer = self:ScheduleTimer(function()
do do
self:Print(caller) -- self:Print(caller)
-- return -- return
end end
@ -117,7 +120,7 @@ function mod:MailQueueCheck(caller, passData)
local pushQueue = {} local pushQueue = {}
local checkItemLock = function(_, bagID, slotID) local checkItemLock = function(_, bagID, slotID)
local globalID = bagID*100+slotID local globalID = bagID*100+slotID
self:Print("ITEM_LOCK_CHANGED fired", globalID) -- self:Print("ITEM_LOCK_CHANGED fired", globalID)
if pushQueue[globalID] then if pushQueue[globalID] then
local _, _, locked = GetContainerItemInfo(bagID, slotID) local _, _, locked = GetContainerItemInfo(bagID, slotID)
if not locked then if not locked then
@ -128,14 +131,14 @@ function mod:MailQueueCheck(caller, passData)
-- if our queue is empty -- if our queue is empty
if not next(pushQueue) then if not next(pushQueue) then
self:UnregisterEvent("ITEM_LOCK_CHANGED") self:UnregisterEvent("ITEM_LOCK_CHANGED")
self:Print("Unregistering ITEM_LOCK_CHANGED") -- self:Print("Unregistering ITEM_LOCK_CHANGED")
end end
end end
end end
end end
local initializeQueue = function() local initializeQueue = function()
self:RegisterEvent("ITEM_LOCK_CHANGED", checkItemLock) self:RegisterEvent("ITEM_LOCK_CHANGED", checkItemLock)
self:Print("Registering ITEM_LOCK_CHANGED") -- self:Print("Registering ITEM_LOCK_CHANGED")
end end
-- swap tabs if we need to -- swap tabs if we need to
@ -149,13 +152,13 @@ function mod:MailQueueCheck(caller, passData)
-- fill out shit -- fill out shit
for item,ct in pairs(data) do for item,ct in pairs(data) do
print("--------- NEXT ITEM:", item) -- print("--------- NEXT ITEM:", item)
if ct > 0 then if ct > 0 then
local inv = GetItemCount(item) local inv = GetItemCount(item)
print("Checking item count:", inv, ct, inv<ct) -- print("Checking item count:", inv, ct, inv<ct)
if inv < ct then if inv < ct then
-- we don't have enough. abort. -- we don't have enough. abort.
self:Print(format("We don't have enough |Hitem:%d|h[%s]|h for %s. Needed %d; have %d.", item, GetItemInfo("item:"..item), name, ct, inv)) self:Print(format("We don't have enough %s for %s. Needed %d; have %d.", self:Link(item), name, ct, inv))
ClearSendMail() ClearSendMail()
return return
end end
@ -168,17 +171,17 @@ function mod:MailQueueCheck(caller, passData)
-- make sure the item we want is this slot -- make sure the item we want is this slot
if GetContainerItemID(bag, slot) == item then if GetContainerItemID(bag, slot) == item then
local _, slotCt, locked = GetContainerItemInfo(bag, slot) local _, slotCt, locked = GetContainerItemInfo(bag, slot)
print("LOOP", GetItemInfo("item:"..item), slotCt, "/", ct, locked) -- print("LOOP", GetItemInfo("item:"..item), slotCt, "/", ct, locked)
if locked then if locked then
-- the item is locked for whatever reason. abort? -- the item is locked for whatever reason. abort?
self:Message("|Hitem:%d|h[%s]|h in bag %d, slot %d is locked.", item, GetItemInfo("item:"..item), bag, slot) self:Message("%s in bag %d, slot %d is locked.", self:Link(item), bag, slot)
return return
else else
-- if item too many; find empty spot to dump extras -- if item too many; find empty spot to dump extras
if slotCt > ct then if slotCt > ct then
-- check to make sure we can split -- check to make sure we can split
if #emptySlots == 0 then if #emptySlots == 0 then
print("Not enough bag space to split. Aborting.") -- print("Not enough bag space to split. Aborting.")
ClearSendMail() ClearSendMail()
mod:CancelAllTimers() mod:CancelAllTimers()
return return
@ -187,9 +190,9 @@ function mod:MailQueueCheck(caller, passData)
local extraSpace = table.remove(emptySlots) local extraSpace = table.remove(emptySlots)
local extraBag, extraSlot = floor(extraSpace/100), extraSpace % 100 local extraBag, extraSlot = floor(extraSpace/100), extraSpace % 100
-- split and place -- split and place
print("splitting", bag, slot, slotCt-ct) -- print("splitting", bag, slot, slotCt-ct)
SplitContainerItem(bag, slot, slotCt-ct) SplitContainerItem(bag, slot, slotCt-ct)
print("extras at", extraBag, extraSlot) -- print("extras at", extraBag, extraSlot)
PickupContainerItem(extraBag, extraSlot) -- place PickupContainerItem(extraBag, extraSlot) -- place
-- check when lock is clear -- check when lock is clear
@ -201,11 +204,11 @@ function mod:MailQueueCheck(caller, passData)
break break
else else
-- item should have enough -- item should have enough
print("adding to mail", bag, slot, ct, slotCt, ct-slotCt) -- print("adding to mail", bag, slot, ct, slotCt, ct-slotCt)
PickupContainerItem(bag, slot) PickupContainerItem(bag, slot)
ClickSendMailItemButton() ClickSendMailItemButton()
ct = ct - slotCt ct = ct - slotCt
print("and after", ct) -- print("and after", ct)
if ct == 0 then if ct == 0 then
break break
end end
@ -230,3 +233,18 @@ function mod:MailQueueCheck(caller, passData)
end, delay) end, delay)
end end
function mod:PrintPotions()
for name,details in pairs(mailQueue) do
print(("|cff%02x%02x%02x%s|r:"):format(guildColors[name].r*255, guildColors[name].g*255, guildColors[name].b*255, name:gsub("^(.)(.*)$", function(f, rest)
return string.upper(f) .. rest
end)))
for pot,n in pairs(details) do
print((" %s: %d"):format(self:Link(pot, true), n))
end
end
end
function mod:Link(id, icon)
icon = icon and ("|T%s:0|t"):format((select(10, GetItemInfo(id)))) or ""
return ("%s|Hitem:%d|h[%s]|h"):format(icon, id, (GetItemInfo(id)))
end