Mercurial > wow > askmrrobot
comparison ui/ShoppingListTab.lua @ 17:e77e01abce98
Warlords of Draenor pre-patch
author | Adam tegen <adam.tegen@gmail.com> |
---|---|
date | Mon, 13 Oct 2014 21:28:32 -0500 |
parents | ece9167c0d1c |
children | a400b906acca |
comparison
equal
deleted
inserted
replaced
16:9793e8b683d2 | 17:e77e01abce98 |
---|---|
50 tab.sendButton:SetScript("OnClick", function() | 50 tab.sendButton:SetScript("OnClick", function() |
51 tab:Send() | 51 tab:Send() |
52 end) | 52 end) |
53 | 53 |
54 tab.enchantMaterialsCheckbox = CreateFrame("CheckButton", "AmrEnchantMaterialsCheckbox", tab.shoppingPanel, "ChatConfigCheckButtonTemplate"); | 54 tab.enchantMaterialsCheckbox = CreateFrame("CheckButton", "AmrEnchantMaterialsCheckbox", tab.shoppingPanel, "ChatConfigCheckButtonTemplate"); |
55 tab.enchantMaterialsCheckbox:SetChecked(AmrSendSettings.SendEnchantMaterials) | 55 tab.enchantMaterialsCheckbox:SetChecked(AmrDb.SendSettings.SendEnchantMaterials) |
56 tab.enchantMaterialsCheckbox:SetScript("OnClick", function () AmrSendSettings.SendEnchantMaterials = tab.enchantMaterialsCheckbox:GetChecked() end) | 56 tab.enchantMaterialsCheckbox:SetScript("OnClick", function () AmrDb.SendSettings.SendEnchantMaterials = tab.enchantMaterialsCheckbox:GetChecked() end) |
57 tab.enchantMaterialsCheckbox:SetPoint("TOPLEFT", tab.sendButton, "TOPLEFT", 0, 25) | 57 tab.enchantMaterialsCheckbox:SetPoint("TOPLEFT", tab.sendButton, "TOPLEFT", 0, 25) |
58 local text3 = getglobal(tab.enchantMaterialsCheckbox:GetName() .. 'Text') | 58 local text3 = getglobal(tab.enchantMaterialsCheckbox:GetName() .. 'Text') |
59 text3:SetFontObject("GameFontHighlightLarge") | 59 text3:SetFontObject("GameFontHighlightLarge") |
60 text3:SetText(L.AMR_SHOPPINGLISTTAB_ENCHANT_MATERIALS) | 60 text3:SetText(L.AMR_SHOPPINGLISTTAB_ENCHANT_MATERIALS) |
61 text3:SetWidth(150) | 61 text3:SetWidth(150) |
62 text3:SetPoint("TOPLEFT", tab.enchantMaterialsCheckbox, "TOPRIGHT", 2, -4) | 62 text3:SetPoint("TOPLEFT", tab.enchantMaterialsCheckbox, "TOPRIGHT", 2, -4) |
63 | 63 |
64 | 64 |
65 tab.enchantsCheckbox = CreateFrame("CheckButton", "AmrEnchantsCheckbox", tab.shoppingPanel, "ChatConfigCheckButtonTemplate"); | 65 tab.enchantsCheckbox = CreateFrame("CheckButton", "AmrEnchantsCheckbox", tab.shoppingPanel, "ChatConfigCheckButtonTemplate"); |
66 tab.enchantsCheckbox:SetChecked(AmrSendSettings.SendEnchants) | 66 tab.enchantsCheckbox:SetChecked(AmrDb.SendSettings.SendEnchants) |
67 tab.enchantsCheckbox:SetScript("OnClick", function () AmrSendSettings.SendEnchants = tab.enchantsCheckbox:GetChecked() end) | 67 tab.enchantsCheckbox:SetScript("OnClick", function () AmrDb.SendSettings.SendEnchants = tab.enchantsCheckbox:GetChecked() end) |
68 tab.enchantsCheckbox:SetPoint("TOPLEFT", tab.sendButton, "TOPLEFT", 0, 50) | 68 tab.enchantsCheckbox:SetPoint("TOPLEFT", tab.sendButton, "TOPLEFT", 0, 50) |
69 local text2 = getglobal(tab.enchantsCheckbox:GetName() .. 'Text') | 69 local text2 = getglobal(tab.enchantsCheckbox:GetName() .. 'Text') |
70 text2:SetFontObject("GameFontHighlightLarge") | 70 text2:SetFontObject("GameFontHighlightLarge") |
71 text2:SetText(L.AMR_SHOPPINGLISTTAB_ENCHANTS) | 71 text2:SetText(L.AMR_SHOPPINGLISTTAB_ENCHANTS) |
72 text2:SetWidth(150) | 72 text2:SetWidth(150) |
74 | 74 |
75 | 75 |
76 | 76 |
77 tab.gemsCheckbox = CreateFrame("CheckButton", "AmrGemsCheckbox", tab.shoppingPanel, "ChatConfigCheckButtonTemplate"); | 77 tab.gemsCheckbox = CreateFrame("CheckButton", "AmrGemsCheckbox", tab.shoppingPanel, "ChatConfigCheckButtonTemplate"); |
78 tab.gemsCheckbox:SetPoint("TOPLEFT", tab.sendButton, "TOPLEFT", 0, 75) | 78 tab.gemsCheckbox:SetPoint("TOPLEFT", tab.sendButton, "TOPLEFT", 0, 75) |
79 tab.gemsCheckbox:SetChecked(AmrSendSettings.SendGems) | 79 tab.gemsCheckbox:SetChecked(AmrDb.SendSettings.SendGems) |
80 tab.gemsCheckbox:SetScript("OnClick", function () AmrSendSettings.SendGems = tab.gemsCheckbox:GetChecked() end) | 80 tab.gemsCheckbox:SetScript("OnClick", function () AmrDb.SendSettings.SendGems = tab.gemsCheckbox:GetChecked() end) |
81 local text = getglobal(tab.gemsCheckbox:GetName() .. 'Text') | 81 local text = getglobal(tab.gemsCheckbox:GetName() .. 'Text') |
82 text:SetFontObject("GameFontHighlightLarge") | 82 text:SetFontObject("GameFontHighlightLarge") |
83 text:SetText(L.AMR_SHOPPINGLISTTAB_GEMS) | 83 text:SetText(L.AMR_SHOPPINGLISTTAB_GEMS) |
84 text:SetWidth(150) | 84 text:SetWidth(150) |
85 text:SetPoint("TOPLEFT", tab.gemsCheckbox, "TOPRIGHT", 2, -4) | 85 text:SetPoint("TOPLEFT", tab.gemsCheckbox, "TOPRIGHT", 2, -4) |
165 | 165 |
166 -- Create the dropdown, and configure its appearance | 166 -- Create the dropdown, and configure its appearance |
167 tab.dropDown = CreateFrame("FRAME", "AmrSendType", tab.shoppingPanel, "UIDropDownMenuTemplate") | 167 tab.dropDown = CreateFrame("FRAME", "AmrSendType", tab.shoppingPanel, "UIDropDownMenuTemplate") |
168 tab.dropDown:SetPoint("TOPLEFT", tab.sendMessage3, "TOPRIGHT", 0, 5) | 168 tab.dropDown:SetPoint("TOPLEFT", tab.sendMessage3, "TOPRIGHT", 0, 5) |
169 UIDropDownMenu_SetWidth(tab.dropDown, 140) | 169 UIDropDownMenu_SetWidth(tab.dropDown, 140) |
170 UIDropDownMenu_SetText(tab.dropDown, AmrSendSettings.SendToType) | 170 UIDropDownMenu_SetText(tab.dropDown, AmrDb.SendSettings.SendToType) |
171 | 171 |
172 local text = getglobal(tab.dropDown:GetName() .. 'Text') | 172 local text = getglobal(tab.dropDown:GetName() .. 'Text') |
173 text:SetFontObject("GameFontHighlightLarge") | 173 text:SetFontObject("GameFontHighlightLarge") |
174 | 174 |
175 local AddButton = function(list, optionText) | 175 local AddButton = function(list, optionText) |
176 local info = UIDropDownMenu_CreateInfo() | 176 local info = UIDropDownMenu_CreateInfo() |
177 info.justifyH = "RIGHT" | 177 info.justifyH = "RIGHT" |
178 info.text = optionText | 178 info.text = optionText |
179 info.checked = AmrSendSettings.SendToType == optionText | 179 info.checked = AmrDb.SendSettings.SendToType == optionText |
180 info.arg1 = optionText | 180 info.arg1 = optionText |
181 info.func = list.SetValue | 181 info.func = list.SetValue |
182 info.owner = list | 182 info.owner = list |
183 info.fontObject = "GameFontHighlightLarge" | 183 info.fontObject = "GameFontHighlightLarge" |
184 info.minWidth = 140 | 184 info.minWidth = 140 |
194 UIDropDownMenu_AddButton(AddButton(self, L.AMR_SHOPPINGLISTTAB_DROPDOWN_CHANNEL)) | 194 UIDropDownMenu_AddButton(AddButton(self, L.AMR_SHOPPINGLISTTAB_DROPDOWN_CHANNEL)) |
195 UIDropDownMenu_AddButton(AddButton(self, L.AMR_SHOPPINGLISTTAB_DROPDOWN_MAIL)) | 195 UIDropDownMenu_AddButton(AddButton(self, L.AMR_SHOPPINGLISTTAB_DROPDOWN_MAIL)) |
196 end) | 196 end) |
197 | 197 |
198 function tab.dropDown:SetValue(newValue) | 198 function tab.dropDown:SetValue(newValue) |
199 AmrSendSettings.SendToType = newValue | 199 AmrDb.SendSettings.SendToType = newValue |
200 -- Update the text; if we merely wanted it to display newValue, we would not need to do this | 200 -- Update the text; if we merely wanted it to display newValue, we would not need to do this |
201 UIDropDownMenu_SetText(tab.dropDown, AmrSendSettings.SendToType) | 201 UIDropDownMenu_SetText(tab.dropDown, AmrDb.SendSettings.SendToType) |
202 -- Because this is called from a sub-menu, only that menu level is closed by default. | 202 -- Because this is called from a sub-menu, only that menu level is closed by default. |
203 -- Close the entire menu with this next call | 203 -- Close the entire menu with this next call |
204 CloseDropDownMenus() | 204 CloseDropDownMenus() |
205 end | 205 end |
206 | 206 |
207 tab.sendTo = CreateFrame("EditBox", "AmrSendTo", tab.shoppingPanel, "InputBoxTemplate" ) | 207 tab.sendTo = CreateFrame("EditBox", "AmrSendTo", tab.shoppingPanel, "InputBoxTemplate" ) |
208 tab.sendTo:SetPoint("TOPLEFT", tab.dropDown, "TOPRIGHT", 0, 0) | 208 tab.sendTo:SetPoint("TOPLEFT", tab.dropDown, "TOPRIGHT", 0, 0) |
209 tab.sendTo:SetPoint("RIGHT", 0, 0) | 209 tab.sendTo:SetPoint("RIGHT", 0, 0) |
210 tab.sendTo:SetHeight(30) | 210 tab.sendTo:SetHeight(30) |
211 tab.sendTo:SetText(AmrSendSettings.SendTo or "") | 211 tab.sendTo:SetText(AmrDb.SendSettings.SendTo or "") |
212 tab.sendTo:SetFontObject("GameFontHighlightLarge") | 212 tab.sendTo:SetFontObject("GameFontHighlightLarge") |
213 tab.sendTo:SetAutoFocus(false) | 213 tab.sendTo:SetAutoFocus(false) |
214 tab.sendTo:SetScript("OnChar", function() | 214 tab.sendTo:SetScript("OnChar", function() |
215 AmrSendSettings.SendTo = tab.sendTo:GetText() | 215 AmrDb.SendSettings.SendTo = tab.sendTo:GetText() |
216 end) | 216 end) |
217 | 217 |
218 tab.messageQueue = {} | 218 tab.messageQueue = {} |
219 return tab | 219 return tab |
220 end | 220 end |
254 -- make a link for the optimized gem | 254 -- make a link for the optimized gem |
255 gemLink = select(2, GetItemInfo(gemInfo.id)) | 255 gemLink = select(2, GetItemInfo(gemInfo.id)) |
256 | 256 |
257 -- set the link (tooltip + icon) | 257 -- set the link (tooltip + icon) |
258 gemIcon:SetItemLink(gemLink) | 258 gemIcon:SetItemLink(gemLink) |
259 gemIcon:SetGemColor(gemInfo.color) | 259 --gemIcon:SetGemColor(gemInfo.color) |
260 gemIcon:SetGemColor('Prismatic') | |
260 | 261 |
261 -- if we didn't get one, its because WoW is slow | 262 -- if we didn't get one, its because WoW is slow |
262 if not gemLink and gemInfo.id then | 263 if not gemLink and gemInfo.id then |
263 -- when WoW finally returns the link, set the icon / tooltip | 264 -- when WoW finally returns the link, set the icon / tooltip |
264 AskMrRobot.RegisterItemInfoCallback(gemInfo.id, function(name, link) | 265 AskMrRobot.RegisterItemInfoCallback(gemInfo.id, function(name, link) |
550 | 551 |
551 return count > 0 | 552 return count > 0 |
552 end | 553 end |
553 | 554 |
554 function AskMrRobot.ShoppingListTab:CalculateItems() | 555 function AskMrRobot.ShoppingListTab:CalculateItems() |
555 -- build a map of missing gem-ids -> {id, color, enchantid, count, total} | 556 -- build a map of missing gem-enchant-ids -> {id, enchantid, count, total} |
556 local gemList = {} | 557 local gemList = {} |
557 for slotNum, badGems in pairs(AskMrRobot.itemDiffs.gems) do | 558 |
558 --badGems: {current: array of enchant ids, optimized: (array of {id, color, enchantId}) | 559 -- for each piece of gear that needs at least 1 gem changed |
559 for i = 1, #badGems.optimized do | 560 for _, badGems in pairs(AskMrRobot.ComparisonResult.gems) do |
560 if badGems.badGems[i] then | 561 -- for each specified gem |
561 local goodGem = badGems.optimized[i] | 562 for g = 1, #badGems.optimized do |
562 if goodGem.id ~= 0 then | 563 local goodGemEnchantId = badGems.optimized[g] |
563 local gem = gemList[goodGem.id] | 564 -- if AMR says to optimized this gem AND it does *NOT* match matches the current gem |
564 if gem == nil then | 565 if goodGemEnchantId ~= 0 and not AskMrRobot.AreGemsCompatible(goodGemEnchantId, badGems.current[g]) then |
565 gemList[goodGem.id] = {id = goodGem.id, enchantId = goodGem.enchantId, color = goodGem.color, count = 0, total = 1} | 566 -- see if this gem is in our list of gems to optimize |
566 else | 567 local gem = gemList[goodGemEnchantId] |
567 gem.total = gem.total + 1 | 568 if gem == nil then |
568 end | 569 -- if not, add it |
570 gemList[goodGemEnchantId] = {id = AskMrRobot.ExtraGemData[goodGemEnchantId].id, enchantId = goodGemEnchantId, count = 0, total = 1, compatibleGemIds = AskMrRobot.ExtraGemData[goodGemEnchantId].identicalItemGroup} | |
571 else | |
572 -- if so, increase the total requested for this | |
573 gem.total = gem.total + 1 | |
569 end | 574 end |
570 end | 575 end |
571 end | 576 end |
572 end | 577 end |
573 | 578 |
574 local enchantList = {} | 579 local enchantList = {} |
575 for slot, enchantData in AskMrRobot.sortSlots(AskMrRobot.itemDiffs.enchants) do | 580 for slot, enchantData in AskMrRobot.sortSlots(AskMrRobot.ComparisonResult.enchants) do |
576 local id = AskMrRobot.getEnchantItemId(enchantData.optimized) or enchantData.optimized | 581 local extraData = AskMrRobot.ExtraEnchantData[enchantData.optimized] |
582 local id = extraData and extraData.itemId or enchantData.optimized | |
577 local qty = enchantList[id] | 583 local qty = enchantList[id] |
578 if qty then | 584 if qty then |
579 qty.total = qty.total + 1 | 585 qty.total = qty.total + 1 |
580 else | 586 else |
581 qty = { count = 0, total = 1, optimized = enchantData.optimized } | 587 qty = { count = 0, total = 1, optimized = enchantData.optimized } |
582 enchantList[id] = qty | 588 enchantList[id] = qty |
583 end | 589 end |
584 end | 590 end |
585 | 591 |
586 local enchantMaterials = {} | 592 local enchantMaterials = {} |
587 for slot, enchantData in pairs(AskMrRobot.itemDiffs.enchants) do | 593 for slot, enchantData in pairs(AskMrRobot.ComparisonResult.enchants) do |
588 AskMrRobot.addEnchantMaterials(enchantMaterials, enchantData.optimized) | 594 local extraData = AskMrRobot.ExtraEnchantData[enchantData.optimized] |
589 end | 595 if extraData and extraData.materials then |
590 | 596 local itemId |
591 --substract any inventory we already have in the bank | 597 local count |
592 for i = 1, #AmrBankItemsAndCounts do | 598 for itemId, count in pairs(extraData.materials) do |
593 local itemId = AskMrRobot.getItemIdFromLink(AmrBankItemsAndCounts[i].link) | 599 if enchantMaterials[itemId] then |
594 if itemId then | 600 enchantMaterials[itemId].total = enchantMaterials[itemId].total + count |
595 local gem = gemList[itemId] | 601 else |
596 if gem then | 602 enchantMaterials[itemId] = { count = 0, total = count } |
597 gem.count = gem.count + AmrBankItemsAndCounts[i].count | |
598 else | |
599 local alternateGemId = AskMrRobot.gemDuplicates[itemId] | |
600 if alternateGemId then | |
601 gem = gemList[alternateGemId] | |
602 if gem then | |
603 gem.count = gem.count + AmrBankItemsAndCounts[i].count | |
604 end | |
605 end | 603 end |
606 end | 604 end |
607 local material = enchantMaterials[itemId] | 605 end |
608 if material then | 606 |
609 material.count = material.count + AmrBankItemsAndCounts[i].count | 607 end |
610 end | 608 |
611 local enchant = enchantList[itemId] | 609 local bagItemsWithCounts = {} |
612 if enchant then | 610 -- copy the bank items into a new table so we don't alter them |
613 enchant.count = enchant.count + AmrBankItemsAndCounts[i].count | 611 if (AmrDb.BankItemsAndCounts) then |
614 end | 612 for id, count in pairs(AmrDb.BankItemsAndCounts) do |
615 end | 613 bagItemsWithCounts[id] = count |
616 end | 614 end |
617 | 615 end |
618 local _ , bagItemsWithCount = AskMrRobot.ScanBags() | 616 |
619 | 617 -- add the items from the players bags |
620 --substract any inventory we already have in bags | 618 AskMrRobot.ScanBags(bagItemsWithCounts) |
621 for i = 1, #bagItemsWithCount do | 619 |
622 local itemId = AskMrRobot.getItemIdFromLink(bagItemsWithCount[i].link) | 620 --substract any inventory we already have in bags/bank |
623 if itemId then | 621 for itemId, count in pairs(bagItemsWithCounts) do |
624 local gem = gemList[itemId] | 622 for _, gem in pairs(gemList) do |
625 if gem then | 623 if gem.compatibleGemIds[itemId] and gem.count < gem.total then |
626 gem.count = gem.count + bagItemsWithCount[i].count | 624 local needed = gem.total - gem.count |
627 else | 625 if count > needed then |
628 local alternateGemId = AskMrRobot.gemDuplicates[itemId] | 626 gem.count = gem.total |
629 if alternateGemId then | 627 -- only consume the number needed (subtract in case this is compatible with a different gem) |
630 gem = gemList[alternateGemId] | 628 count = count - needed |
631 if gem then | 629 else |
632 gem.count = gem.count + bagItemsWithCount[i].count | 630 gem.count = gem.count + count |
633 end | 631 count = 0 |
634 end | 632 end |
635 end | 633 end |
636 local material = enchantMaterials[itemId] | 634 end |
637 if material then | 635 local material = enchantMaterials[itemId] |
638 material.count = material.count + bagItemsWithCount[i].count | 636 if material then |
639 end | 637 material.count = material.count + count |
640 local enchant = enchantList[itemId] | 638 end |
641 if enchant then | 639 local enchant = enchantList[itemId] |
642 enchant.count = enchant.count + bagItemsWithCount[i].count | 640 if enchant then |
643 end | 641 enchant.count = enchant.count + count |
644 end | 642 end |
645 end | 643 end |
646 | 644 |
647 return gemList, enchantList, enchantMaterials | 645 return gemList, enchantList, enchantMaterials |
648 end | 646 end |
781 | 779 |
782 local message = L.AMR_SHOPPINGLISTTAB_MAIL_ROBOT_MESSAGE | 780 local message = L.AMR_SHOPPINGLISTTAB_MAIL_ROBOT_MESSAGE |
783 | 781 |
784 local gemList, enchantList, enchantMaterials = self:CalculateItems() | 782 local gemList, enchantList, enchantMaterials = self:CalculateItems() |
785 | 783 |
786 if AmrSendSettings.SendGems then | 784 if AmrDb.SendSettings.SendGems then |
787 for k,v in pairs(gemList) do | 785 for k,v in pairs(gemList) do |
788 --exclude jewelcrafter gems | 786 --exclude jewelcrafter gems |
789 if not AskMrRobot.JewelcrafterGems[k] then | 787 --if not AskMrRobot.JewelcrafterGems[k] then |
790 local needed = v.total - v.count | 788 local needed = v.total - v.count |
791 if needed > 0 then | 789 if needed > 0 then |
792 local itemName = GetItemInfo(k) | 790 local itemName = GetItemInfo(v.id) |
793 if itemName then | 791 if itemName then |
794 message = message .. "\n" .. needed .. "x " .. itemName | 792 message = message .. "\n" .. needed .. "x " .. itemName |
795 end | 793 end |
796 end | 794 end |
797 end | 795 --end |
798 end | 796 end |
799 end | 797 end |
800 | 798 |
801 if AmrSendSettings.SendEnchants then | 799 if AmrDb.SendSettings.SendEnchants then |
802 for k,v in pairs(enchantList) do | 800 for k,v in pairs(enchantList) do |
803 local needed = v.total - v.count | 801 local needed = v.total - v.count |
804 if needed > 0 then | 802 if needed > 0 then |
805 local itemName = GetItemInfo(k) | 803 local itemName = GetItemInfo(k) |
806 if itemName then | 804 if itemName then |
808 end | 806 end |
809 end | 807 end |
810 end | 808 end |
811 end | 809 end |
812 | 810 |
813 if AmrSendSettings.SendEnchantMaterials then | 811 if AmrDb.SendSettings.SendEnchantMaterials then |
814 for k,v in pairs(enchantMaterials) do | 812 for k,v in pairs(enchantMaterials) do |
815 local needed = v.total - v.count | 813 local needed = v.total - v.count |
816 if needed > 0 then | 814 if needed > 0 then |
817 local itemName = GetItemInfo(k) | 815 local itemName = GetItemInfo(k) |
818 if itemName then | 816 if itemName then |
821 end | 819 end |
822 end | 820 end |
823 end | 821 end |
824 | 822 |
825 MailFrameTab_OnClick(nil, 2) | 823 MailFrameTab_OnClick(nil, 2) |
826 if AmrSendSettings.SendGems then | 824 if AmrDb.SendSettings.SendGems then |
827 if AmrSendSettings.SendEnchants then | 825 if AmrDb.SendSettings.SendEnchants then |
828 SendMailSubjectEditBox:SetText(L.AMR_SHOPPINGLISTTAB_MAIL_SUBJECT_GE) | 826 SendMailSubjectEditBox:SetText(L.AMR_SHOPPINGLISTTAB_MAIL_SUBJECT_GE) |
829 else | 827 else |
830 SendMailSubjectEditBox:SetText(L.AMR_SHOPPINGLISTTAB_MAIL_SUBJECT_G) | 828 SendMailSubjectEditBox:SetText(L.AMR_SHOPPINGLISTTAB_MAIL_SUBJECT_G) |
831 end | 829 end |
832 else | 830 else |
833 SendMailSubjectEditBox:SetText(L.AMR_SHOPPINGLISTTAB_MAIL_SUBJECT_E) | 831 SendMailSubjectEditBox:SetText(L.AMR_SHOPPINGLISTTAB_MAIL_SUBJECT_E) |
834 end | 832 end |
835 SendMailNameEditBox:SetText(AmrSendSettings.SendTo) | 833 SendMailNameEditBox:SetText(AmrDb.SendSettings.SendTo) |
836 SendMailBodyEditBox:SetText(message) | 834 SendMailBodyEditBox:SetText(message) |
837 end | 835 end |
838 | 836 |
839 function AskMrRobot.ShoppingListTab:Send() | 837 function AskMrRobot.ShoppingListTab:Send() |
840 local chatType = nil | 838 local chatType = nil |
841 if AmrSendSettings.SendToType == L.AMR_SHOPPINGLISTTAB_DROPDOWN_PARTY then | 839 if AmrDb.SendSettings.SendToType == L.AMR_SHOPPINGLISTTAB_DROPDOWN_PARTY then |
842 chatType = "PARTY" | 840 chatType = "PARTY" |
843 elseif AmrSendSettings.SendToType == L.AMR_SHOPPINGLISTTAB_DROPDOWN_GUILD then | 841 elseif AmrDb.SendSettings.SendToType == L.AMR_SHOPPINGLISTTAB_DROPDOWN_GUILD then |
844 chatType = "GUILD" | 842 chatType = "GUILD" |
845 elseif AmrSendSettings.SendToType == L.AMR_SHOPPINGLISTTAB_DROPDOWN_RAID then | 843 elseif AmrDb.SendSettings.SendToType == L.AMR_SHOPPINGLISTTAB_DROPDOWN_RAID then |
846 chatType = "RAID" | 844 chatType = "RAID" |
847 elseif AmrSendSettings.SendToType == L.AMR_SHOPPINGLISTTAB_DROPDOWN_CHANNEL then | 845 elseif AmrDb.SendSettings.SendToType == L.AMR_SHOPPINGLISTTAB_DROPDOWN_CHANNEL then |
848 chatType = "CHANNEL" | 846 chatType = "CHANNEL" |
849 elseif AmrSendSettings.SendToType == L.AMR_SHOPPINGLISTTAB_DROPDOWN_MAIL then | 847 elseif AmrDb.SendSettings.SendToType == L.AMR_SHOPPINGLISTTAB_DROPDOWN_MAIL then |
850 self:sendMail() | 848 self:sendMail() |
851 return | 849 return |
852 else | 850 else |
853 chatType = "WHISPER" | 851 chatType = "WHISPER" |
854 end | 852 end |
858 | 856 |
859 | 857 |
860 local gemList, enchantList, enchantMaterials = self:CalculateItems() | 858 local gemList, enchantList, enchantMaterials = self:CalculateItems() |
861 | 859 |
862 local items = {} | 860 local items = {} |
863 if AmrSendSettings.SendGems then | 861 if AmrDb.SendSettings.SendGems then |
864 for k,v in pairs(gemList) do | 862 for k,v in pairs(gemList) do |
865 if not AskMrRobot.JewelcrafterGems[k] then | 863 --if not AskMrRobot.JewelcrafterGems[k] then |
866 local needed = v.total - v.count | 864 local needed = v.total - v.count |
867 if needed > 0 then | 865 if needed > 0 then |
868 tinsert(items, {id = k, needed = needed}) | 866 tinsert(items, {id = v.id, needed = needed}) |
869 end | 867 end |
870 end | 868 --end |
871 end | 869 end |
872 end | 870 end |
873 | 871 |
874 if AmrSendSettings.SendEnchants then | 872 if AmrDb.SendSettings.SendEnchants then |
875 for k,v in pairs(enchantList) do | 873 for k,v in pairs(enchantList) do |
876 local needed = v.total - v.count | 874 local needed = v.total - v.count |
877 if needed > 0 then | 875 if needed > 0 then |
878 tinsert(items, {id = k, needed = needed}) | 876 tinsert(items, {id = k, needed = needed}) |
879 end | 877 end |
880 end | 878 end |
881 end | 879 end |
882 | 880 |
883 if AmrSendSettings.SendEnchantMaterials then | 881 if AmrDb.SendSettings.SendEnchantMaterials then |
884 for k,v in pairs(enchantMaterials) do | 882 for k,v in pairs(enchantMaterials) do |
885 local needed = v.total - v.count | 883 local needed = v.total - v.count |
886 if needed > 0 then | 884 if needed > 0 then |
887 tinsert(items, {id = k, needed = needed}) | 885 tinsert(items, {id = k, needed = needed}) |
888 end | 886 end |
893 local _, link = GetItemInfo(entry.id) | 891 local _, link = GetItemInfo(entry.id) |
894 if link then | 892 if link then |
895 message = message .. " " .. entry.needed .. "x " .. link | 893 message = message .. " " .. entry.needed .. "x " .. link |
896 count = count + 1 | 894 count = count + 1 |
897 if count == 2 then | 895 if count == 2 then |
898 tinsert(self.messageQueue, {message = message, chatType = chatType, chatChannel = AmrSendSettings.SendTo}) | 896 tinsert(self.messageQueue, {message = message, chatType = chatType, chatChannel = AmrDb.SendSettings.SendTo}) |
899 count = 0 | 897 count = 0 |
900 message = L.AMR_SHOPPINGLISTTAB_CHAT_ROBOT_MESSAGE | 898 message = L.AMR_SHOPPINGLISTTAB_CHAT_ROBOT_MESSAGE |
901 end | 899 end |
902 end | 900 end |
903 end | 901 end |
904 | 902 |
905 if count > 0 then | 903 if count > 0 then |
906 tinsert(self.messageQueue, {message = message, chatType = chatType, chatChannel = AmrSendSettings.SendTo}) | 904 tinsert(self.messageQueue, {message = message, chatType = chatType, chatChannel = AmrDb.SendSettings.SendTo}) |
907 end | 905 end |
908 | 906 |
909 self:SendNextMessage() | 907 self:SendNextMessage() |
910 end | 908 end |
911 | 909 |