Mercurial > wow > itemauditor
comparison Core.lua @ 63:e7d287cc3b02
Replaced all instances of addon with ItemAuditor and I moved ItemAuditor out of the global namespace. The conversion was mostly a search/replace offering no new functionality. That will come in a later commit.
| author | Asa Ayers <Asa.Ayers@Gmail.com> |
|---|---|
| date | Tue, 27 Jul 2010 17:58:33 -0700 |
| parents | 4ec321eb0dfe |
| children | 32d53abee666 |
comparison
equal
deleted
inserted
replaced
| 62:70dc84df13b3 | 63:e7d287cc3b02 |
|---|---|
| 1 local addonName, addonTable = ...; | 1 local ItemAuditor = select(2, ...) |
| 2 _G[addonName] = LibStub("AceAddon-3.0"):NewAddon(addonName, "AceEvent-3.0", "AceBucket-3.0") | 2 ItemAuditor = LibStub("AceAddon-3.0"):NewAddon(ItemAuditor, "ItemAuditor", "AceEvent-3.0", "AceBucket-3.0") |
| 3 local addon = _G[addonName] | |
| 4 addonTable.ItemAuditor = addon | |
| 5 | 3 |
| 6 local WHITE = "|cFFFFFFFF" | 4 local WHITE = "|cFFFFFFFF" |
| 7 local RED = "|cFFFF0000" | 5 local RED = "|cFFFF0000" |
| 8 local GREEN = "|cFF00FF00" | 6 local GREEN = "|cFF00FF00" |
| 9 local YELLOW = "|cFFFFFF00" | 7 local YELLOW = "|cFFFFFF00" |
| 10 local ORANGE = "|cFFFF7F00" | 8 local ORANGE = "|cFFFF7F00" |
| 11 local TEAL = "|cFF00FF9A" | 9 local TEAL = "|cFF00FF9A" |
| 12 local GOLD = "|cFFFFD700" | 10 local GOLD = "|cFFFFD700" |
| 13 | 11 |
| 14 function addon:OnInitialize() | 12 function ItemAuditor:OnInitialize() |
| 15 local DB_defaults = { | 13 local DB_defaults = { |
| 16 char = { | 14 char = { |
| 17 ah = 1, | 15 ah = 1, |
| 18 use_quick_auctions = false, | 16 use_quick_auctions = false, |
| 19 crafting_threshold = 1, | 17 crafting_threshold = 1, |
| 23 profile = { | 21 profile = { |
| 24 messages = { | 22 messages = { |
| 25 cost_updates = true, | 23 cost_updates = true, |
| 26 queue_skip = false, | 24 queue_skip = false, |
| 27 }, | 25 }, |
| 28 addon_enabled = true, | 26 ItemAuditor_enabled = true, |
| 29 -- This is for development, so I have no plans to turn it into an option. | 27 -- This is for development, so I have no plans to turn it into an option. |
| 30 show_debug_frame_on_startup = false, | 28 show_debug_frame_on_startup = false, |
| 31 }, | 29 }, |
| 32 factionrealm = { | 30 factionrealm = { |
| 33 item_account = {}, | 31 item_account = {}, |
| 34 items = {}, | 32 items = {}, |
| 35 outbound_cod = {}, | 33 outbound_cod = {}, |
| 36 }, | 34 }, |
| 37 } | 35 } |
| 38 self.db = LibStub("AceDB-3.0"):New("ItemAuditorDB", DB_defaults, true) | 36 self.db = LibStub("AceDB-3.0"):New("ItemAuditorDB", DB_defaults, true) |
| 39 addonTable.db= self.db | |
| 40 self.items = self.db.factionrealm.items | 37 self.items = self.db.factionrealm.items |
| 41 | 38 |
| 42 self:RegisterOptions() | 39 self:RegisterOptions() |
| 43 ItemAuditor:RegisterFrame(ItemAuditor_DebugFrame) | 40 ItemAuditor:RegisterFrame(ItemAuditor_DebugFrame) |
| 44 | 41 |
| 51 end) | 48 end) |
| 52 end | 49 end |
| 53 end | 50 end |
| 54 | 51 |
| 55 local registeredEvents = {} | 52 local registeredEvents = {} |
| 56 local originalRegisterEvent = addon.RegisterEvent | 53 local originalRegisterEvent = ItemAuditor.RegisterEvent |
| 57 function addon:RegisterEvent(event, callback, arg) | 54 function ItemAuditor:RegisterEvent(event, callback, arg) |
| 58 registeredEvents[event] = true | 55 registeredEvents[event] = true |
| 59 if arg ~= nil then | 56 if arg ~= nil then |
| 60 return originalRegisterEvent(self, event, callback, arg) | 57 return originalRegisterEvent(self, event, callback, arg) |
| 61 elseif callback ~= nil then | 58 elseif callback ~= nil then |
| 62 return originalRegisterEvent(self, event, callback) | 59 return originalRegisterEvent(self, event, callback) |
| 63 else | 60 else |
| 64 return originalRegisterEvent(self, event) | 61 return originalRegisterEvent(self, event) |
| 65 end | 62 end |
| 66 end | 63 end |
| 67 | 64 |
| 68 local originalUnregisterEvent = addon.UnregisterEvent | 65 local originalUnregisterEvent = ItemAuditor.UnregisterEvent |
| 69 function addon:UnregisterEvent(event) | 66 function ItemAuditor:UnregisterEvent(event) |
| 70 registeredEvents[event] = nil | 67 registeredEvents[event] = nil |
| 71 return originalUnregisterEvent(self, event) | 68 return originalUnregisterEvent(self, event) |
| 72 end | 69 end |
| 73 | 70 |
| 74 function addon:UnregisterAllEvents() | 71 function ItemAuditor:UnregisterAllEvents() |
| 75 for event in pairs(registeredEvents) do | 72 for event in pairs(registeredEvents) do |
| 76 self:UnregisterEvent(event) | 73 self:UnregisterEvent(event) |
| 77 end | 74 end |
| 78 end | 75 end |
| 79 | 76 |
| 80 local registeredFrames = {} | 77 local registeredFrames = {} |
| 81 function addon:RegisterFrame(frame) | 78 function ItemAuditor:RegisterFrame(frame) |
| 82 tinsert(registeredFrames, frame) | 79 tinsert(registeredFrames, frame) |
| 83 end | 80 end |
| 84 | 81 |
| 85 function addon:HideAllFrames() | 82 function ItemAuditor:HideAllFrames() |
| 86 for key, frame in pairs(registeredFrames) do | 83 for key, frame in pairs(registeredFrames) do |
| 87 if frame then | 84 if frame then |
| 88 frame:Hide() | 85 frame:Hide() |
| 89 end | 86 end |
| 90 end | 87 end |
| 91 end | 88 end |
| 92 | 89 |
| 93 function addon:ConvertItems() | 90 function ItemAuditor:ConvertItems() |
| 94 for itemName, value in pairs(self.db.factionrealm.item_account) do | 91 for itemName, value in pairs(self.db.factionrealm.item_account) do |
| 95 local itemID = self:GetItemID(itemName) | 92 local itemID = self:GetItemID(itemName) |
| 96 if itemID ~= nil then | 93 if itemID ~= nil then |
| 97 self:GetItem('item:' .. itemID) | 94 self:GetItem('item:' .. itemID) |
| 98 end | 95 end |
| 109 | 106 |
| 110 self:RefreshQAGroups() | 107 self:RefreshQAGroups() |
| 111 end | 108 end |
| 112 | 109 |
| 113 local printPrefix = "|cFFA3CEFFItemAuditor|r: " | 110 local printPrefix = "|cFFA3CEFFItemAuditor|r: " |
| 114 function addon:Print(message, ...) | 111 function ItemAuditor:Print(message, ...) |
| 115 message = format(message, ...) | 112 message = format(message, ...) |
| 116 self:GetSelectedChatWindow():AddMessage( printPrefix .. tostring(message)) | 113 self:GetSelectedChatWindow():AddMessage( printPrefix .. tostring(message)) |
| 117 end | 114 end |
| 118 | 115 |
| 119 function addon:GetCurrentInventory() | 116 function ItemAuditor:GetCurrentInventory() |
| 120 local i = {} | 117 local i = {} |
| 121 local bagID | 118 local bagID |
| 122 local slotID | 119 local slotID |
| 123 | 120 |
| 124 for bagID = 0, NUM_BAG_SLOTS do | 121 for bagID = 0, NUM_BAG_SLOTS do |
| 134 | 131 |
| 135 end | 132 end |
| 136 return {items = i, money = GetMoney()} | 133 return {items = i, money = GetMoney()} |
| 137 end | 134 end |
| 138 | 135 |
| 139 function addon:GetInventoryDiff(pastInventory, current) | 136 function ItemAuditor:GetInventoryDiff(pastInventory, current) |
| 140 if current == nil then | 137 if current == nil then |
| 141 current = self:GetCurrentInventory() | 138 current = self:GetCurrentInventory() |
| 142 end | 139 end |
| 143 local diff = {} | 140 local diff = {} |
| 144 | 141 |
| 170 return {items = diff, money = moneyDiff} | 167 return {items = diff, money = moneyDiff} |
| 171 end | 168 end |
| 172 | 169 |
| 173 local inboundCOD = {} | 170 local inboundCOD = {} |
| 174 local skipMail = {} | 171 local skipMail = {} |
| 175 function addon:ScanMail() | 172 function ItemAuditor:ScanMail() |
| 176 local results = {} | 173 local results = {} |
| 177 local CODPaymentRegex = gsub(COD_PAYMENT, "%%s", "(.*)") | 174 local CODPaymentRegex = gsub(COD_PAYMENT, "%%s", "(.*)") |
| 178 | 175 |
| 179 for mailIndex = 1, GetInboxNumItems() or 0 do | 176 for mailIndex = 1, GetInboxNumItems() or 0 do |
| 180 local sender, msgSubject, msgMoney, msgCOD, daysLeft, msgItem, _, _, msgText, _, isGM = select(3, GetInboxHeaderInfo(mailIndex)) | 177 local sender, msgSubject, msgMoney, msgCOD, daysLeft, msgItem, _, _, msgText, _, isGM = select(3, GetInboxHeaderInfo(mailIndex)) |
| 277 end | 274 end |
| 278 | 275 |
| 279 return results | 276 return results |
| 280 end | 277 end |
| 281 | 278 |
| 282 function addon:GetItem(link, viewOnly) | 279 function ItemAuditor:GetItem(link, viewOnly) |
| 283 if viewOnly == nil then | 280 if viewOnly == nil then |
| 284 viewOnly = false | 281 viewOnly = false |
| 285 end | 282 end |
| 286 | 283 |
| 287 local itemName = nil | 284 local itemName = nil |
| 328 | 325 |
| 329 | 326 |
| 330 return self.items[link] | 327 return self.items[link] |
| 331 end | 328 end |
| 332 | 329 |
| 333 function addon:RemoveItem(link) | 330 function ItemAuditor:RemoveItem(link) |
| 334 self.db.factionrealm.item_account[link] = nil | 331 self.db.factionrealm.item_account[link] = nil |
| 335 link = self:GetSafeLink(link) | 332 link = self:GetSafeLink(link) |
| 336 if link ~= nil then | 333 if link ~= nil then |
| 337 local item = addon:GetItem(link) | 334 local item = ItemAuditor:GetItem(link) |
| 338 item.invested = 0 | 335 item.invested = 0 |
| 339 else | 336 else |
| 340 self:Debug('Failed to convert link' .. tostring(link)) | 337 self:Debug('Failed to convert link' .. tostring(link)) |
| 341 end | 338 end |
| 342 end | 339 end |
| 343 | 340 |
| 344 function addon:SaveValue(link, value, countChange) | 341 function ItemAuditor:SaveValue(link, value, countChange) |
| 345 self:Debug("SaveValue(%s, %s, %s)", tostring(link), value, (countChange or 'default')) | 342 self:Debug("SaveValue(%s, %s, %s)", tostring(link), value, (countChange or 'default')) |
| 346 countChange = countChange or 0 | 343 countChange = countChange or 0 |
| 347 local item = nil | 344 local item = nil |
| 348 local realLink = self:GetSafeLink(link) | 345 local realLink = self:GetSafeLink(link) |
| 349 local itemName = nil | 346 local itemName = nil |
| 384 end | 381 end |
| 385 end | 382 end |
| 386 end | 383 end |
| 387 | 384 |
| 388 if realLink ~= nil then | 385 if realLink ~= nil then |
| 389 addon:UpdateQAThreshold(realLink) | 386 ItemAuditor:UpdateQAThreshold(realLink) |
| 390 end | 387 end |
| 391 UpdateInvestedData() | 388 UpdateInvestedData() |
| 392 end | 389 end |
| 393 | 390 |
| 394 | 391 |
| 395 function addon:WatchBags() | 392 function ItemAuditor:WatchBags() |
| 396 if self.watch_handle == nil then | 393 if self.watch_handle == nil then |
| 397 addon:UpdateCurrentInventory() | 394 ItemAuditor:UpdateCurrentInventory() |
| 398 self.watch_handle = self:RegisterBucketEvent({"BAG_UPDATE", "PLAYER_MONEY"}, 0.3, "UpdateAudit") | 395 self.watch_handle = self:RegisterBucketEvent({"BAG_UPDATE", "PLAYER_MONEY"}, 0.3, "UpdateAudit") |
| 399 end | 396 end |
| 400 end | 397 end |
| 401 | 398 |
| 402 function addon:UnwatchBags() | 399 function ItemAuditor:UnwatchBags() |
| 403 if self.watch_handle ~= nil then | 400 if self.watch_handle ~= nil then |
| 404 self:UnregisterBucket(self.watch_handle) | 401 self:UnregisterBucket(self.watch_handle) |
| 405 self.watch_handle = nil | 402 self.watch_handle = nil |
| 406 end | 403 end |
| 407 end | 404 end |
| 408 | 405 |
| 409 | 406 |
| 410 function addon:GetSafeLink(link) | 407 function ItemAuditor:GetSafeLink(link) |
| 411 local newLink = nil | 408 local newLink = nil |
| 412 | 409 |
| 413 if link and link == string.match(link, '.-:[-0-9]+[:0-9]*') then | 410 if link and link == string.match(link, '.-:[-0-9]+[:0-9]*') then |
| 414 newLink = link | 411 newLink = link |
| 415 elseif link then | 412 elseif link then |
| 423 end | 420 end |
| 424 end | 421 end |
| 425 return newLink and string.gsub(newLink, ":0:0:0:0:0:0", "") | 422 return newLink and string.gsub(newLink, ":0:0:0:0:0:0", "") |
| 426 end | 423 end |
| 427 | 424 |
| 428 function addon:GetIDFromLink(link) | 425 function ItemAuditor:GetIDFromLink(link) |
| 429 local _, _, _, _, Id = string.find(link, "|?c?f?f?(%x*)|?H?([^:]*):?(%d+):?(%d*):?(%d*):?(%d*):?(%d*):?(%d*):?(%-?%d*):?(%-?%d*):?(%d*)|?h?%[?([^%[%]]*)%]?|?h?|?r?") | 426 local _, _, _, _, Id = string.find(link, "|?c?f?f?(%x*)|?H?([^:]*):?(%d+):?(%d*):?(%d*):?(%d*):?(%d*):?(%d*):?(%-?%d*):?(%-?%d*):?(%d*)|?h?%[?([^%[%]]*)%]?|?h?|?r?") |
| 430 return tonumber(Id) | 427 return tonumber(Id) |
| 431 end | 428 end |
| 432 | 429 |
| 433 function addon:GetItemCost(link, countModifier) | 430 function ItemAuditor:GetItemCost(link, countModifier) |
| 434 local item = self:GetItem(link, true) | 431 local item = self:GetItem(link, true) |
| 435 | 432 |
| 436 if item.invested > 0 then | 433 if item.invested > 0 then |
| 437 local count = item.count | 434 local count = item.count |
| 438 | 435 |
