Removed debug statements from potions and added a new slash command to print the queue
This commit is contained in:
parent
bb9266219d
commit
a88cdb9693
1 changed files with 33 additions and 15 deletions
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue